Datasheet
1. Flush and disable the TX FIFO
2. Clear and mask the TXFE interrupt by clearing the TXFEIM bit in the I2CMIMR register.
Once the bus is IDLE, the TXFIFO can be filled and enabled, the TXFE bit can be unmasked and
a new BURST transaction can be initiated.
21.3.1.9 Glitch Suppression in Multi-Master Configuration
When a multi-master configuration is being used, the PULSEL bit in the I2CMTPR register can be
programmed to provide glitch suppression on the SCL and SDA lines and assure proper signal
values. The glitch suppression value is in terms of buffered system clocks. Note that all signals will
be delayed internally when glitch suppression is nonzero. For example, if PULSEL is set to 0x7, 31
clocks should be added onto the calculation for the expected transaction time.
21.3.1.10 SMBus Operation
The SMBus interface is based on the I
2
C protocol; however, some differences exist between the
two. These differences must be handled through software in order to make sure the SMBus protocol,
including timing specifications, is met. Note that the SMBus 2.0 specification limits the maximum
frequency of the interface to 100 KHz, as a result, I
2
C Standard speed operation is used for SMBus.
The SMBus/ I
2
C slave can extend the transaction if it is not ready by pulling the clock low. The
SMbus specification allows the maximum timeout for such elongated transaction to be between 25
to 35 ms. The I
2
C specification does not have this requirement. The I
2
C module supports a
programmable count to support clock-low timeout for the master to error out and take appropriate
action as required. This feature is explained in “Clock Low Timeout (CLTO)” on page 1430. Note that
if transactions are extended, a timeout period should be programmed in the I2CMCLKOCNT register,
and the CLKRIS bit in the I2CMRIS register should not be masked.
Unlike the I
2
C slave, the SMBus slave must respond with an ACK response to its address regardless
of whether it is ready or not. As a result, the I
2
C slave sends an ACK response to its address and
a NACK response on the data byte if it is not ready. The ARBLST bit in the I2CMCS register is set
if there were any issues with the transfer. In addition, the slave can send a NACK at any time to
force the master to stop sending additional bytes.
The I
2
C Interface supports µDMA for efficient data handling. The µDMA operation needs FIFOs to
be enabled for appropriate transfer type to perform I
2
C Master for burst transfers and all types of
Slave transfers. The I
2
C interface is supported by two channels, one for Rx (I
2
C to Memory) and
one for Tx (Memory to I
2
C) transfers.. See“FIFO and µDMA Operation” on page 1436 for more
information.
Quick Command
Quick Command is a simple, compact SMBus protocol that sends an address and 1-bit of data in
the R/S bit of the I
2
C header byte to communicate a command to the slave, typically a "turn off" or
"turn on". The I
2
C master peripheral has the ability to send a Quick Command by writing the target
address and R/S value into the I2CMSA register followed by a write to I2CMCS with a value of
0x27. SMBus requires the slave to be able to accept and process commands and the master to
generate the Quick Command transactions. The master also has the capability to stop the transaction
after acknowledgement from a slave.
The I
2
C slave peripheral requires special handling when a Quick Command is sent. In the case
where a master sends a Quick Command with the R/S (data) bit cleared, the QCMDST bit in I2CSCSR
is set, and the QCMDRW bit shows the data value (which in this case is 0) when the STOPRIS bit is
set in I2CSRIS and the STOP interrupt is asserted. In this scenario, a DATARIS interrupt bit is not
December 13, 20131432
Texas Instruments-Advance Information
Inter-Integrated Circuit (I
2
C) Interface