1. El primer paso en la transmisión TWI es transmitir una condición de INICIO.
Esto es hecho escribiendo un valor especifico en TWCR, instruyendo el
hardware TWI a transmitir en la condición de INICIO. Con lo cual el valor a
escribir es descrito luego. Sin embargo, es importante que el bit TWINT sea
puesto en el valor escrito. Escribiendo uno en TWINT las banderas son
limpiadas. El TWI no empezará ninguna operación mientras el bit TWINT en
TWCR es uno. Inmediatamente después la aplicación ha sido limpiada TWINT,
el TWI iniciaría la transmisión de la condición de INICIO.
2. Cuando la condición de INICIO ha sido transmitida, la bandera TWINT en
TWCR es uno, y TWSR es actualizada con códigos de estado indicando que la
condición de INICIO ha sido enviada satisfactoriamente.
3. El software de aplicación debería ahora examinar el valor de TWSR, para
asegurarse que la condición de INICIO fue transmitida satisfactoriamente. Si
TWSR indica por otra parte, el software de aplicación podría tomar una acción
en especial, llamando una rutina de error. Asumiendo que el código de estado
es esperado, la aplicación cargaría SLA+W dentro de TWDR. Recordando que
TWDR es usado ambos para direccionar el dato. Después TWDR ha sido
cargado con el SLA+W deseado, un valor especifico seria escrito a TWCR,
instruyendo el TWI hardware a transmisión del SLA+W presente en TWDR.
Cuyo valor a escribirse es descrito después. Sin embargo, es importante que el
bit TWINT sea puesto en el valor escrito. Escribiendo uno en TWINT se limpian
las banderas. El TWI no empezaría ninguna operación mientras el bit de
TWINT en TWCR sea uno. Inmediatamente después que la aplicación ha sido
limpiada TWINT, el TWI iniciaría la transmisión del paquete de direcciones.
4. Cuando el paquete de direcciones ha sido transmitido, la bandera TWINT en
TWCR es uno, y TWSR es actualizada con el código de estado indicando que el
paquete de direcciones ha sido enviada satisfactoriamente. El código de estado
también refleja si el esclavo desconoce o no el paquete.