20.7.5 Miscellaneous States
Existen dos códigos de estado que no corresponden a la definición del estado
TWI, ver tabla 20-6. Los Estados 0xF8 indican que la información no relevante
es disponible porque la bandera TWINT no esta habilitada. Esto ocurre entres
otros estados, y cuando el TWI no esta involucrado en la transferencia serial.
Los estados 0x00 indican que el error del bus ocurre durante transferencia en el
bus serial de 2-hilos (2-wire). El error del bus ocurre cuando una condición de
INICIO o PARADA ocurre en una posición ilegal en el formato de trama.
Ejemplos de cómo las posiciones ilegales son durante la transferencia serial de
los byte de dirección, byte de datos, o bits reconocidos. Cuando un error de bus
ocurre, TWINT es habilitado. Para recuperar desde el error de bus, la bandera
TWSTO seria habitada y TWINT seria limpiada por escritura de uno lógico.
Esto causa que TWI no entre al modo de direccionamiento Esclavo y limpiar la
bandera TWSTO (los otros bits en TWCR no son afectados). Las líneas SDA y
SCL son soltadas, y las condiciones de PARADA son transmitidas.
20.7.6 Combinando varios Modos TWI
En algunos casos, varios modos TWI serian combinados para completar la
acción deseada. Considerar para los datos de los ejemplos leídos desde la
EEPROM serial. Típicamente, una transferencia involucra los siguientes pasos:
1. La transferencia debe ser inicializada.
2. La EEPROM debe ser instruida que tipo de localidad debe ser leída.
3. La lectura debe ser realizada.
4. La transferencia debe ser finalizada.
Note que el dato es transmitido para ambos desde el Maestro al Esclavo o
viceversa. El maestro instruye al Esclavo para que sepa que localidad quiere
que lea, requiriendo el uso del modo MT. Subsecuentemente, el dato seria leído
desde el Esclavo, empleando el uso del modo MR. La dirección de transferencia
seria cambiada. El Maestro guardaría el control del bus durante todos estos
pasos, y los pasos deberían ser llevados a cabo como una operación automática.
Si este principio es violado en un sistema multimaestro, otro Maestro puede
alterar el puntero del dato en la EEPROM entre los pasos 2 y 3, y el Maestro
leería la localidad del dato erróneo. Como el cambio en la dirección de
transferencia es completado transmitiendo a INICIO REPETITIVO entre la
transmisión del byte de direcciones y recepción de los datos. Después del
INICIO REPETITIVO, el Maestro guarda sus propiedades del bus. La siguiente
figura muestra el flujo en esta transferencia: