1
1
8
8
1
8
1
1
S
Data
ACK
P
Data
Data
ACK
ACK
I2C Module Operation
1773
SPNU563A – March 2018
Copyright © 2018, Texas Instruments Incorporated
Inter-Integrated Circuit (I2C) Module
31.2.5.4 Free Data Format
In this format (
), the first byte after a START condition is a data byte. The ACK bit is inserted
after each byte, followed by another 8 bits of data. No address or data direction bit is sent. Therefore, the
transmitter and receiver must both support the free data format. The direction of data transmission
(transmit or receive) remains constant throughout the transfer.
To select the free data format, write a 1 to the free data format (FDF) bit of the I2CMDR. The free data
format is not supported in the digital loop back mode.
Figure 31-10. I2C Module in Free Data Format
31.2.6 NACK Bit Generation
When the I2C module is a receiver (master or slave), it can acknowledge or ignore bits sent by the
transmitter. To ignore any new bits, the I2C module must send a no-acknowledge (NACK) bit during the
acknowledge cycle on the bus.
summarizes the various ways a NACK can be generated.
Table 31-1. Ways to Generate a NACK Bit
I2C Module Condition
Basic NACK Bit Generation Options
Additional Option
Slave receiver mode
Disable data transfers (STT = 0)
Allow an overrun condition (RSFULL = 1)
Reset the module (IRS = 0)
Set the NACKMOD bit before the rising
edge of the last data bit you intend to
receive.
Master receiver mode and repeat
mode (RM = 1)
Generate a STOP condition (STP = 1)
Reset the module (IRS = 0)
Set the NACKMOD bit before the rising
edge of the last data bit you intend to
receive.
Master receiver mode with non-repeat
mode (RM = 0)
If STP = 1, allow the internal data counter to
count down to 0 and thus force a STOP
condition.
If STP = 0, make STP = 1 to generate a
STOP condition.
Reset the module (IRS = 0)
Set the NACKMOD bit before the rising
edge of the last data bit you intend to
receive.
In some applications, the slave cannot generate the ACK signal. If the IGNACK bit is set in the I2CEMDR
register, the resulting NACK will be ignored and the I2C block will continue the data transfer.