Datasheet
26.3.2 START and STOP Conditions
The master initiates and terminates a data transmission. The transmission is initiated when the master
issues a START condition on the bus, and it is terminated when the master issues a STOP condition.
Between a START and a STOP condition, the bus is considered busy, and no other master should try to
seize control of the bus. A special case occurs when a new START condition is issued between a START
and STOP condition. This is referred to as a REPEATED START condition and is used when the master
wishes to initiate a new transfer without relinquishing control of the bus. After a REPEATED START, the
bus is considered busy until the next STOP. This is identical to the START behavior, and therefore START
is used to describe both START and REPEATED START for the remainder of this data sheet unless
otherwise noted. As depicted below, START and STOP conditions are signaled by changing the level of
the SDA line when the SCL line is high.
Figure 26-3. START, REPEATED START, and STOP Conditions
SDA
SCL
START STOPREPEATED STARTSTOP START
26.3.3 Address Packet Format
All address packets transmitted on the TWI bus are nine bits long, consisting of seven address bits, one
READ/WRITE control bit, and an acknowledge bit. If the READ/WRITE bit is set, a read operation is to be
performed, otherwise, a write operation should be performed. When a slave recognizes that it is being
addressed, it should acknowledge by pulling SDA low in the ninth SCL (ACK) cycle. If the addressed
slave is busy, or for some other reason cannot service the master’s request, the SDA line should be left
high in the ACK clock cycle. The master can then transmit a STOP condition, or a REPEATED START
condition to initiate a new transmission. An address packet consisting of a slave address and a READ or
a WRITE bit is called SLA+R or SLA+W, respectively.
The MSB of the address byte is transmitted first. Slave addresses can freely be allocated by the designer,
but the address '0000 000' is reserved for a general call.
When a general call is issued, all slaves should respond by pulling the SDA line low in the ACK cycle. A
general call is used when a master wishes to transmit the same message to several slaves in the system.
When the general call address followed by a Write bit is transmitted on the bus, all slaves set up to
acknowledge the general call will pull the SDA line low in the ACK cycle. The following data packets will
then be received by all the slaves that acknowledged the general call. Note that transmitting the general
call address followed by a Read bit is meaningless as this would cause contention if several slaves
started transmitting different data.
All addresses of the format '1111 xxx' should be reserved for future purposes.
ATmega48PA/88PA/168PA
Two-Wire Serial Interface (TWI)
© 2018 Microchip Technology Inc.
Datasheet Complete
DS40002011A-page 273