Information

I
2
C Interface
MPC8308 PowerQUICC II Pro Processor Reference Manual, Rev. 1
Freescale Semiconductor 17-11
Figure 17-8 shows the interaction of these four parts with the calling address, data byte, and new calling
address components of the I
2
C protocol. The details of the protocol are described in the following
subsections.
Figure 17-8. I
2
C Interface Transaction Protocol
17.4.1.1 START Condition
When the I
2
C bus is not engaged (both SDA and SCL lines are at logic high), a master can initiate a transfer
by sending a START condition. As shown in Figure 17-8, a START condition is defined as a high-to-low
transition of SDA while SCL is high. This condition denotes the beginning of a new data transfer. Each
data transfer can contain several bytes and awakens all slaves. The START condition is initiated by a
software write that sets I2CCR[MSTA].
17.4.1.2 Slave Address Transmission
The first byte of data transferred by the master immediately after the START condition is the slave address.
This is a seven-bit calling address followed by a R/W
bit, which indicates the direction of the data
transferred to the slave. Each slave in the system has a unique address. When the I
2
C module is operating
as a master, it must not transmit an address that is the same as its slave address. An I
2
C device cannot be
master and slave at the same time.
Only the slave with a calling address that matches the one transmitted by the master responds by returning
an acknowledge bit (negating the SDA signal at the 9th clock), as shown in Figure 17-8. If no slave
acknowledges the address, the master should generate a STOP condition or a repeated START condition.
When slave addressing is successful (and SCL returns to zero), the data transfer can proceed on a
byte-to-byte basis in the direction specified by the R/W
bit sent by the calling master.
The I
2
C module responds to a general call (broadcast) command when I2CCR[BCST] is set. A broadcast
address is always zero; however, the I
2
C module does not check the R/W bit. The second byte of the
123456789
123456789
A0 A1 A2 A3 A4 A5 A6 R/W
A0 A1 A2 A3 A4 A5 A6 R/W
D0 D1 D2 D3 D4 D5 D6 D7XXXX
SCL
SDA
START STOPACK
No
ACK
Read/
Write
Calling Address Data Byte
123456789
123456789
A0 A1 A2 A3 A4 A5 A6 R/W
SCL
SDA
START STOPACK
No
ACK
Read/
Write
Calling Address New Calling Address
Repeated
START