Skip to main content
Knowledgebase
Home
Renesas Singapore - Knowledgebase

Why Using ACKD0 Loop Is Not Good When Transmitted Address Is Not Acknowledged

Last Updated:05/25/2018

Question:

Why is it not OK to use the ACKD0 loop when a transmitted address is not acknowledged?

Answer:

In the I2C bus, it is specified that an address must come immediately after the start condition. Therefore, even if an address sent immediately after the start condition is not acknowledged, resending the address will not make the slave interpret it as an address.
To make the slave recognize it as an address, you must reissue the start condition and resend the address.
Alternatively, issue the stop condition to release the path once, wait for a while, and then try reissuing the start condition and resending the address.

Remarks
If the sent address is not acknowledged even though it specifies a slave that clearly exists, the slave might be busy with some sort of processing and unable to respond. Since the situation likely differs depending on the individual device, please check the manual for the device.

Suitable Products
RL78/G10
RL78/G11
RL78/G12
RL78/G13
RL78/G14
RL78/G1A
RL78/G1C
RL78/G1D
RL78/G1E
RL78/G1F
RL78/G1G
RL78/G1H
RL78/I1A
RL78/I1C
RL78/I1D
RL78/I1E
RL78/L12
RL78/L13
RL78/L1A
RL78/L1C
78K Family