R01UH0822EJ0100 Rev.1.00
Page 787 of 1041
Jul 31, 2019
RX13T Group
24. I
2
C-bus Interface (RIICa)
24.9.2
Function to Detect Loss of Arbitration during NACK Transmission (NALE Bit)
The RIIC has a function to cause arbitration to be lost if the internal SDA output level does not match the level on the
SDA0 line (the high output as the internal SDA output; i.e. the SDA0 pin is in the high-impedance state) and the low
level is detected on the SDA0 line during transmission of NACK in receive mode. Arbitration is lost due to a conflict of
NACK transmission and ACK transmission when two or more master devices receive data from the same slave device
simultaneously in a multi-master system. Such conflict occurs when multiple master devices send/receive the same
information through a single slave device.
shows an example of arbitration-lost detection during
transmission of NACK.
Figure 24.35
Example of Arbitration-Lost Detection during Transmission of NACK (NALE = 1)
The following explains arbitration-lost detection using an example where two master devices (master A and master B)
and a single slave device are connected through the bus. In this example, master A receives 2 bytes of data from the slave
device, and master B receives 4 bytes of data from the slave device.
If master A and master B access the slave device simultaneously, because the slave address is identical, arbitration is not
lost in both master A and master B during access to the slave device. Therefore, both master A and master B recognize
that they have obtained the bus mastership and operate as such. Here, master A sends NACK when it has received 2 final
bytes of data from the slave device. Meanwhile, master B sends ACK because it has not received necessary 4 bytes of
data. At this time, the NACK transmission from master A and the ACK transmission from master B conflict. In general,
if a conflict like this occurs, master A cannot detect ACK transmitted by master B and issues a stop condition. Therefore,
the issuance of the stop condition conflicts with the SCL clock output of master B, which disturbs communication.
When the RIIC receives ACK during transmission of NACK, it detects a defeat in conflict with other master devices and
causes arbitration to be lost.
If arbitration is lost during transmission of NACK, the RIIC immediately cancels the slave match condition and enters
slave receive mode. This prevents a stop condition from being issued, preventing a communication failure on the bus.
Similarly, in the ARP command processing of SMBus, the function to detect loss of arbitration during transmission of
NACK is also available for eliminating the extra clock cycle processing (such as FFh transmission processing) necessary
if the UDID (Unique Device Identifier) of assign address does not match in the Get UDID (general) processing after the
Assign address command.
The RIIC detects arbitration-lost during transmission of NACK when the following condition is met with the
ICFER.NALE bit set to 1 (arbitration-lost detection during NACK transmission enabled).
8
2
3
4
5
6
7
Data
8
2
3
4
5
6
Data
8
2
3
4
5
6
7
Data
2
3
4
5
6
7
Data
9
9
1
1
1
9
9
2
3
4
5
Data
Read ICDRR register
Write 1 to ACKBT bit
Clear AL flag to 0
NACK transmission mismatch
(Arbitration lost)
Release SCL/SDA
TRS
AL
MST
BBSY
RDRFS
RDRF
ACKBT
[Conflict during transmission of NACK (ACK received)]
ACK
NACK
ACK
ACK
Write 1 to RDRFS bit Read ICDRR register
7
8
Receive data
Receive data
SCL0
SDA0
SCL0
SDA0