LS_I2C controller
RM0082
610/844
Doc ID 018672 Rev 1
Transmitting and receiving protocol
All data is transmitted in byte format, with no limits on the number of bytes transferred per
data transfer. After the master sends the slave address and the data direction bit, or the
master transmits a byte of data to the slave, the slave-receiver must respond with the
acknowledge signal after every byte of data is received. When a slave-receiver does not
respond with an acknowledge pulse, the master aborts the transfer by issuing a STOP
condition. The slave shall leave the SDA line high so the master can abort the transfer.
If the master is receiving data, then the master-receiver responds to the slave-transmitter
with an acknowledge pulse after a byte of data has been received, except for the last byte.
This is the way the master-receiver notifies the slave-transmitter that this is the last byte.
The slave-transmitter relinquishes the SDA line after detecting the no acknowledge so that
the master-receiver can issue a STOP condition.
When the master does not want to relinquish the bus with a STOP condition, the master can
issue a repeated start condition. This is identical to a START condition except it occurs after
the acknowledge pulse. The master can then communicate with the same slave or with a
different slave.
START byte transfer protocol
The “START byte’ transfer protocol is set up for systems that do not have an on-board
dedicated I
2
C hardware module. In this case, the systems can’t be only interrupted by
requests from the I
2
C bus, but it must constantly monitor the bus (software polling).
When the I
2
C controller is addressed as a slave it always samples the I
2
C bus at the highest
speed supported, so that it never requires START byte transfer. However, when the I
2
C
controller is a master, it supports the generation of START byte transfer at the beginning of
every transfer in case a slave device requires it.
As depicted in, the start procedure is as follows:
●
Master generates a start condition (as explained above),
●
Master transmits the start byte (constant 8’b0000 0001),
●
Master transmits an acknowledge clock pulse,
●
No slave sets the acknowledge signal to 1‘b0,
●
Master generates a repeated START (Sr) condition.
Figure 63.
START byte procedure [from I
2
C-bus specification]
The START byte protocol consist of seven zeros being transmitted followed by a ‘b1 (the
start byte). This allows the system processor that is polling the bus to under-sample the
address phase until ‘b0 (low level on SDA) is detected. Once the system processor detects
a low level on SDA, it switches to a higher sampling rate to find the Sr condition of the
master (which is the used for synchronization).
Dummy
Acknowledge HIGH
9
1
2
7
8
SCL
Start byte 00000001
ACK
S
Sr
SDA