Guia paso a paso‎ > ‎Sensores‎ > ‎

Protocolo I2C / TWI

¿Qué es I2C?
I2C es un protocolo de comunicación serie diseñado por Philips que se utiliza esencialmente entre dispositivos que pertenecen al mismo circuito, por ejemplo, sensores con un microcontrolador.

¿Qué es TWI?
Aunque las patentes de I2C ya han expirado, algunos vendedores utilizan los nombres TWI y TWSI para referirse a I2C. Es exactamente lo mismo.


Características del protocolo:
  • Velocidad standard de 100Kbit/s (100kbaudios). Se puede cambiar al modo de alta velocidad (400Kbit/s)
  • Configuración maestro/esclavo. La direccion del esclavo se configura con software
  • Solo se necesitan dos lineas:
    • SDA (Serial Data Line): Linea de datos.
    • SCL/CLK (Serial Clock Line): Linea de reloj, será el que marque el tiempo de RW (Lectura/Escritura)
    • Nota: Suponemos que todos los dispositivos tienen masa común, si no fuera así hay que uncluir una linea de masa.
  • Los comunicación siempre tiene la estructura siguiente:
    • Transmisor: Byte de datos (8 Bits)
    • Receptor: Bit llamado ACK de confirmación.

¿Cómo se realizan las conexiones?
SDA y SCL van a su pin correspondiente en cada dispositivo, de manera que todos quedan en paralelo.

Las lineas SDA y SCL estan independientemente conectadas a dos resistores Pull-Up que se encargaran de que el valor logico siempre sea alto a no ser que un dispositivo lo ponga a valor lógico bajo.


¿Qué tipo de comunicación es?
Es una comunicación de tipo half duplex. Comunicación bidireccional por la misma linea pero no simultáneamente bidireccional.


¿Cual es la estructura de la comunicación?
La estructura de la comunicación básica es la siguiente:
  1. START condition  (Master)
  2. 7 Bits de direccion de esclavo  (Master)
  3. 1 Bit de RW, 0 es Leer y 1 Escribir.  (Master)
  4. 1 Bit de Acknowledge  (Slave)
  5. Byte de dirección de memoria  (Master)
  6. 1 Bit de Acknowledge  (Slave)
  7. Byte de datos  (Master/Slave (Escritura/Lectura))
  8. 1 Bit de Acknowledge  (Slave/Master (Escritura/Lectura))
  9. STOP condition  (Master)
Esta es la base de la comunicación pero para leer o escribir, según el dispositivo con el que se comunica el Master la comunicación tendrá una estructura específica.

¿Qué es el bit de Acknowledge (ACK)?

Este bit es una respuesta del receptor al transmisor. Es una parte básica de la comunicación y tiene diferentes sentidos según el contexto.

Se utiliza principalmente con dos propósitos:
  1. Conocer si el transmisor ha sido escuchado
  2. Lecturas multidatos:
    Cuando se esta leyendo de un esclavo, si el master realiza un ACK, es decir, que responde; el esclavo pasa al siguiente valor de registro y lo envía también, hasta recibir un NACK (Not Acknowledge), es decir, ninguna respuesta del master. Esto sirve para hacer múltiples lecturas. Por ejemplo, nuestro acelerómetro o giroscopio, que tienen valores de X, Y y Z.


En esencia este es el funcionamiento del protocolo de comunicación con el que nos comunicaremos con múltiples sensores.

Comments