====== [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 =====
{{ doc:tec:lab:bus_i2c:0_formatos:i2c_04.png?nolink |}}
* ''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 =====
{{ doc:tec:lab:bus_i2c:0_formatos:i2c_05.png?nolink |}}
* 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 =====
{{ doc:tec:lab:bus_i2c:0_formatos:i2c_06.png?nolink |}}
* 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.