====== [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.