[Bus I2C] Formatos de transferencia

A continuación se muestran las posibles combinaciones de lectura y escritura dentro de una misma transferencia de datos.

En ellas debemos tener presentes las siguientes notas:

Se pueden combinar diversos formatos de direccionamiento.

Las decisiones para el mayor o menor acceso a las posiciones de las memorias debe ser tomada por el diseñador del dispositivo.

Durante el primer byte de datos la posición de la memoria interna debe de ser escrita.

Después de la condición Start si la dirección del esclavo es repetida los datos pueden ser transferidos.

Cada byte es seguido por un reconocimiento-bit como indica los bloques en la secuencia.

Una condición de Start inmediatamente seguida por una condición de Stop es un formato ilegal.

Los dispositivos compatibles con el bus I2C deben poder reajustar su bus lógico a la recepción de una o más condiciones de Start.

Master transmite al esclavo-receptor. No cambia el bit de dirección

A: Reconocimiento ACK / A#: No reconocimiento, No ACK.

S: Condición de inicio START / P: Condición de parada STOP.

R: Modo lectura (1) / W#: Modo escritura (0).

Master lee a un esclavo inmediatamente después del primer byte

En el momento del primer reconocimiento el master-transmisor se convierte en un master-receptor y el esclavo-receptor en un esclavo-transmisor.

El primer reconocimiento es aun generado por el esclavo.

La condición de stop es generada por el Master, el cual ha enviado previamente un no reconocimiento.

Formato combinado

Durante un cambio de dirección dentro de una transferencia, la condición de Start y la dirección del esclavo son ambos repetidos, pero con el bit R/W invertido. En el ejemplo lee un dato y luego escribe un dato.

La segunda S es una condición de Inicio repetida. Si un Master-receptor envía una condición repetida de Start, previamente ha enviado un no reconocimiento.