Table 14-2. Operating Modes of the I2C Module
Operating Mode
Description
The I2C module is a slave and receives data from a master.
All slaves begin in this mode. In this mode, serial data bits received on SDA are shifted in with the clock
pulses that are generated by the master. As a slave, the I2C module does not generate the clock signal,
but it can hold SCL low while the intervention of the device is required (RSFULL = 1 in I2CSTR) after a
byte has been received. See
for more details.
The I2C module is a slave and transmits data to a master.
This mode can be entered only from the slave-receiver mode; the I2C module must first receive a
command from the master. When you are using any of the 7-bit/10-bit addressing formats, the I2C module
enters its slave-transmitter mode if the slave address byte is the same as its own address (in I2COAR)
and the master has transmitted R/ W = 1. As a slave-transmitter, the I2C module then shifts the serial
data out on SDA with the clock pulses that are generated by the master. While a slave, the I2C module
does not generate the clock signal, but it can hold SCL low while the intervention of the device is required
(XSMT = 0 in I2CSTR) after a byte has been transmitted. See
for more details.
The I2C module is a master and receives data from a slave.
This mode can be entered only from the master-transmitter mode; the I2C module must first transmit a
command to the slave. When you are using any of the 7-bit/10-bit addressing formats, the I2C module
enters its master-receiver mode after transmitting the slave address byte and R/ W = 1. Serial data bits on
SDA are shifted into the I2C module with the clock pulses generated by the I2C module on SCL. The clock
pulses are inhibited and SCL is held low when the intervention of the device is required (RSFULL = 1 in
I2CSTR) after a byte has been received.
The I2C module is a master and transmits control information and data to a slave.
All masters begin in this mode. In this mode, data assembled in any of the 7-bit/10-bit addressing formats
is shifted out on SDA. The bit shifting is synchronized with the clock pulses generated by the I2C module
on SCL. The clock pulses are inhibited and SCL is held low when the intervention of the device is required
(XSMT = 0 in I2CSTR) after a byte has been transmitted.
To summarize, SCL will be held low in the following conditions:
• When an overrun condition is detected (RSFULL = 1), in Slave-receiver mode.
• When an underflow condition is detected (XSMT = 0), in Slave-transmitter mode.
I2C slave nodes have to accept and provide data when the I2C master node requests it.
• To release SCL in slave-receiver mode, read data from I2CDRR.
• To release SCL in slave-transmitter mode, write data to I2CDXR.
• To force a release without handling the data, reset the module using the I2CMDR.IRS bit.
Table 14-3. Master-Transmitter/Receiver Bus Activity Defined by the RM, STT, and STP Bits of I2CMDR
RM
STT
STP
Bus Activity
Description
0
0
0
None
No activity
0
0
1
P
STOP condition
0
1
0
S-A-D..(n)..D.
START condition, slave address, n data bytes (n = value in I2CCNT)
0
1
1
S-A-D..(n)..D-P
START condition, slave address, n data bytes, STOP condition (n = value in
I2CCNT)
1
0
0
None
No activity
1
0
1
P
STOP condition
1
1
0
S-A-D-D-D.
Repeat mode transfer: START condition, slave address, continuous data
transfers until STOP condition or next START condition
1
1
1
None
Reserved bit combination (No activity)
(1)
S = START condition; A = Address; D = Data byte; P = STOP condition;
Inter-Integrated Circuit Module (I2C)
840
TMS320x2806x Microcontrollers
SPRUH18I – JANUARY 2011 – REVISED JUNE 2022
Copyright © 2022 Texas Instruments Incorporated
Summary of Contents for TMS320 2806 Series
Page 2: ......