Conexión del AVR a 3.3V a un bus I2C de 2.8V

1

Quiero conectar un AVR (ATmega48PA) a un bus I2C cuyos pullups están conectados a 2.8V, que es el voltaje operativo para otros dispositivos en el bus. El AVR se está ejecutando a 3.3V.

Dado que los pines SDA y SCL tienen un drenaje abierto, el AVR, si está conectado, no va a "empujar" 3.3V en el bus, por lo que otros dispositivos en el bus son seguros. Además, según la sección de características eléctricas de la hoja de datos, el umbral para alta lógica es de 0.6 * Vcc, que llega a 1.98V para cuando Vcc es 3.3V. El voltaje del bus I2C está muy por encima de este umbral, así que supongo que puedo conectar el AVR directamente al bus sin ningún cambio de nivel. ¿Es eso correcto?

Hoja de datos Página 383, Tabla 33-2: Características comunes de DC

    
pregunta Dojo

1 respuesta

1

Las salidas de drenaje abiertas de un sistema de 3.3V compartirán las líneas con otros dispositivos en líneas compartidas con 2.8V. Si tiras las cosas hacia abajo, el voltaje estará cerca del suelo. Eso está bien para todos. Si no tira hacia abajo, entonces el voltaje de la línea estará cerca de 2.8V. Como señala, es la pregunta de alta entrada lógica de aproximadamente 2V para su sistema de 3.3V lo que lo hace pensar.

Creo que debería funcionar bien. Si el pin de su dispositivo actúa como una entrada, y algún otro dispositivo actúa también como una salida utilizando un drenaje abierto, entonces, si emiten un '1', estarán en un estado de alta impedancia, dejando la línea completa. tirado a 2.8V por el pull-up. Siempre que todas las corrientes de fuga combinadas de todos los dispositivos no causen colectivamente que la resistencia de pull-up caiga más de medio voltio, debería estar bien. Y es difícil imaginar que eso suceda. Por supuesto, no sé el valor del pull-up, cuántos dispositivos están conectados o cuáles podrían ser sus fugas. Así que ... es difícil estar absolutamente seguro. Pero creo que está bien.

    
respondido por el jonk

Lea otras preguntas en las etiquetas