37.3.13.1 7-Bit Host Transmission
When address buffers are enabled (ABD =
0
), I2CxADB1 is loaded with the
client address, and I2CxCNT is loaded with a count value. At this point, I2CxTXB does not contain
data and the Transmit Buffer Empty (TXBE)
bit is set (TXBE = 1
). The I2CxTXIF bit is not set since it can only be
set when the Host Mode Active (MMA)
and TXBE bits are set. Once software sets the Start (S) bit,
the MMA bit is set, and hardware transmits the client address. Upon the 8th falling SCL
edge, since TXBE = 1
, the Host Data Request (MDR)
and I2CxTXIF bits are set, and hardware stretches the clock while the DMA loads I2CxTXB
with data. Once the DMA loads I2CxTXB, the TXBE, MDR and I2CxTXIF bits are cleared by
hardware, and the DMA waits for the next occurrence of I2CxTXIF being set. When address buffers are disabled (ABD = 1
), software must load I2CxTXB with the client
address to begin transmission. Therefore, I2CxTXIF can only be set when MMA = 1
, and since a Start has not occurred, MMA =
0
. Once the address has been transmitted, I2CxTXIF will be set,
triggering the DMA to load I2CxTXB with data.