¿I2C en realidad envía datos invertidos a través de la línea?

4

Me parece que I2C en realidad está transfiriendo bits invertidos, lo que suena un poco extraño, así que estoy buscando una aclaración.

Diagrama I2C de aquí .

Digamos que estamos escribiendo al esclavo. Un cero (0) llega a SDA out , lo que significa que nMOS está en HiZ y el receptor obtiene un 1 debido a un Pull-up. Y si un 1 llega a SDA out , entonces nMOS se conectará con tierra, lo que significa que el receptor obtiene un 0.

Me parece que I2C en realidad está enviando datos invertidos a través del SDL. Esto realmente no tiene ningún sentido para mí, así que ... ¿hay un inversor en el extremo del receptor que no se muestra en el diagrama que hace que los datos sean correctos? ¿O malentendí cómo funciona en primer lugar?

    
pregunta cen

1 respuesta

7

No debes tomar ese diagrama tan literal como lo haces. Muestra cómo los tipos eléctricos suelen implementar la interfaz de hardware y qué resistencias explícitas e implícitas desempeñan un papel en la configuración de las formas de onda.

El estándar I2C indica cómo un poco se transfirió a través de I2C, esa es la última palabra en él. Indica que un 1 se transmite tan alto en la línea SDA. El 'envío de FET' debe ser de alta impedancia para hacer que la línea sea alta, por lo tanto, debemos enviar la señal invertida a lo que se llama 'SDA out' en el diagrama (para cumplir con el estándar I2C).

Si el autor de ese diagrama se hubiera preocupado por la polaridad de la señal, lo habría llamado * SDA_out (el * significa invertido) o su equivalente en otra convención.

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas