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. This is because 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.