The following section describes the sequence of events that occur when the module is transmitting data in 10-bit Addressing mode:
0
), the address buffers, I2CxADB0 and I2CxADB1, are enabled. In this case, the address high
byte is loaded into I2CxADB1 with the R/W bit
clear, while the address low byte is loaded into I2CxADB0. I2CxCNT is loaded with the total number of data
bytes to transmit, and the first data byte is loaded into I2CxTXB. After these registers are loaded, software
must set the Start bit to begin communication.1
),
the address buffers are disabled. In this case, I2CxCNT must be loaded with the total number of bytes
to transmit prior to loading I2CxTXB with the address high byte and
R/W bit. A write to I2CxTXB forces module
hardware to issue a Start condition automatically; software writes to the
S bit are ignored.If the host receives a NACK, it issues a Stop condition.
If the host receives and ACK and:
1
), I2CxCNT is
nonzero (I2CxCNT != 0
), and the Clock Stretching Disable (CSD) bit is clear (CSD = 0
):
0
), host
hardware issues a Stop condition, or sets MDR if the Restart Enable (RSEN) bit is set and waits for software to set the
Start bit to issue a Restart condition. CNTIF is set.1
), host
hardware issues a Stop condition, or sets MDR if RSEN is set and waits for software to load I2CxTXB with a new client address. CNTIF is set.1
), I2CxCNT is
nonzero (I2CxCNT != 0
), and CSD is clear (CSD = 0
):