Function To Detect Loss Of Arbitration During Nack Transmission (Nale Bit) - Renesas RX100 Series User Manual

32-bit mcu
Hide thumbs Also See for RX100 Series:
Table of Contents

Advertisement

RX13T Group
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. Figure 24.35 shows an example of arbitration-lost detection during
transmission of NACK.
[Conflict during transmission of NACK (ACK received)]
2
3
4
5
SCL0
SDA0
Data
2
3
4
5
SCL0
SDA0
Data
BBSY
MST
TRS
AL
RDRFS
RDRF
ACKBT
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).
R01UH0822EJ0100 Rev.1.00
Jul 31, 2019
6
7
8
9
1
2
ACK
6
7
8
9
1
2
ACK
Receive data
Write 1 to RDRFS bit Read ICDRR register
NACK transmission mismatch
(Arbitration lost)
3
4
5
6
7
8
Data
3
4
5
6
7
8
Data
Receive data
Read ICDRR register
2
24. I
C-bus Interface (RIICa)
Release SCL/SDA
9
NACK
9
1
2
3
4
ACK
Write 1 to ACKBT bit
Clear AL flag to 0
Page 787 of 1041
5
Data

Advertisement

Table of Contents
loading

Table of Contents