Pull-ups I2C con múltiples fuentes de alimentación

2

Si tengo un maestro I2C con varios esclavos I2C, todos en líneas 3V3 separadas (es decir, 3v3_Master, 3V3_Slave1, 3V3_Slave2 ... etc.) ¿importa a qué línea 3V3 se conectan las resistencias pull-up en la línea?

He revisado el Manual de I2C aquí pero no pude encontrar la respuesta.

    
pregunta Gonzik007

1 respuesta

3

No, no importa. Funcionará siempre que el micro y los pullups tengan potencia. No importa el origen de la tensión: ambos lados verán 3.3V cuando ningún dispositivo esté bajando las líneas.

Con varios rieles, el orden en que se encienden los rieles de alimentación en el encendido puede ser problemático. Pero la buena noticia es que, de acuerdo con la especificación I2C, se requiere que los dispositivos y maestros I2C usen verdaderas salidas de drenaje abierto, para que no se dañen o afecten las comunicaciones cuando no tienen energía. Por ejemplo, hay 3 estados posibles de los rieles de alimentación micro + pull-up en cualquier momento para su circuito:

  1. El micro tiene poder, los pullups no: Obviamente, esto significa que tu micro no podrá comunicarse con ningún esclavo.
  2. El micro no tiene energía, las flexiones sí: su micro no solo no debería estar dañado por este estado, sino que tampoco debería tirar hacia abajo en las líneas, por lo que potencialmente otro maestro podría comunicarse en el bus.
  3. Tanto el micro como los pull-ups tienen poder: obviamente esto significa que el micro puede comunicarse con cualquier esclavo que tenga poder, pero la especificación I2C establece que los esclavos I2C sin alimentación no deberían afectar al bus.

(Todo esto supone el cumplimiento de I2C, que no siempre está completo, por lo que las pruebas lo asegurarán)

    
respondido por el Nathan Wiebe

Lea otras preguntas en las etiquetas