Conexión de una interfaz I2C de 9V IC a 3.3v Arduino DUE

3

Necesito conectar un TDA7312 a la interfaz I2C de Arduino DUE a través de SDA / SCL.

TDA7312 opera en 9V, Arduino DUE es 3.3v. ¿Es posible conectarlo de forma segura, sin quemarlo? O ¿qué debo usar (cambio de nivel tal vez?), ¿Cuál es la forma correcta de hacerlo?

Vi algunos esquemas para 5V < - > 3.3V, pero nada para voltajes más altos.

    
pregunta kkazakov

4 respuestas

5

Las dos entradas I2C 'BUS' / salidas de drenaje abiertas tienen \ $ V_ {IH} \ $ de 3V mínimo, por lo que deberían funcionar correctamente desde una salida lógica de 3.3V (I2C pullup a 3.3V). Esas deben ser las únicas conexiones entre los dos dispositivos (aparte de tierra).

    
respondido por el Spehro Pefhany
3

Recuerde que el bus I2C se especifica como colector abierto vea el enlace de wikipedia para obtener más información . Esto significa que no hay un controlador de lado alto real interno para ningún dispositivo I2C. Su placa debe elevar las líneas de bus hasta el voltaje que sea compatible con sus dispositivos a través de resistencias, cada dispositivo puede configurar las líneas a alta impedancia (para leer el valor de la línea o escribir un '1') o tierra. La línea (para escribir un '0'). El mínimo de \ $ V_ {IH} \ $ es aparentemente de 3 V para el TDA7312, lo que significa que cualquier voltaje por encima de 3.0 V debe leerse como '1'. Desde 3.3 V > 3.0 V, y su Duo puede tolerar entradas de 3.3 V, una resistencia pull-up al riel de alimentación de 3.3 V debería hacer que el bus sea compatible con ambos dispositivos sin necesidad de una traducción de nivel lógico.

    
respondido por el Zuofu
0

Desde el sitio web de NXP:

AN10441 - Técnicas de cambio de nivel en el diseño de bus I2C .

Usó el circuito para conectar un Arduino de 5V a un Nunchuck Wii de 3.3V. Trabajó como un encanto.

    
respondido por el Seawolf
-1

cambio de nivel bidireccional como el que se muestra en el esquema de Sparkfun debería funcionar para tu aplicación, porque la alta tensión está limitada por la tensión nominal máxima del MOSFET.

    
respondido por el Kvegaoro

Lea otras preguntas en las etiquetas