■ Communication Error that Causes No Error
If an incorrect clock is generated on the SCL line due to noise or some other reason during transmission
in master mode, the transmission bit counter of the I
hang while the "L" level appears on the SDA line in the ACK cycle. An error (AL = 1, BER = 1) does not
occur for such an incorrect clock.
If this situation occurs, perform the following error processing:
1. Determine that when MSS = 1, TRX = 1, INT = 1, and LRB = 1, there is a communication error.
2. Set EN to "0", and then set EN to "1" to cause SCL to generate one clock on a pseudo basis. This
action causes the slave to release the bus. The period from when EN is set to "0" until EN is set to "1"
must be long enough for the slave to recognize it as a clock (about as long as the H period of a
3. Since IBSR and IBCR are cleared when EN is set to "0", perform retransmission processing from the
START condition. At this time, a STOP condition cannot be generated even if BSS is set to "0".
Insert an interval equal to or longer than n x 7 x tCPP between the point where EN is set to "1" and the
point where MSS is set to "1" (START condition).
High-speed mode: 6 x 7 x 40 = about 1.680 µs
Standard mode: 27 x 7 x 40 = about 7.560 µs
(When CLKP = 25 MHz)
When BER is set, it is not cleared even if EN is set to "0". Clear BER, and then retransmit it.
■ Other Items
1. After arbitration lost occurs, check whether or not the local device is addressed using software. When
arbitration lost occurs, the device becomes a slave in terms of hardware. However, after one-byte transfer
is completed, both the CLK and DATA lines are pulled to "L". Thus, if the device is not addressed,
immediately open the CLK and DATA lines. If the device is addressed, open the CLK and DATA lines
after preparing for slave transmission or reception. (All of these things must be processed using software.)
2. Since the I
completed or when an interrupt condition is met. Since multiple interrupt conditions must be checked
using one interrupt, each of the flags must be checked by the interrupt routine. The following lists the
interrupt conditions used when one-byte transfer is completed:
The device is a bus master.
The device is an addressed slave.
A general call address is received.
Arbitration lost occurs.
3. When arbitration lost is detected, an interrupt source is generated, not immediately but after one-byte
transfer is completed. When arbitration lost is detected, the device becomes a slave in terms of hardware.
However, in slave mode, a total of nine clocks must be outputted before an interrupt source can be
generated. Thus, since an interrupt source is not immediately generated, no processing can be performed
after arbitration lost occurs.
C bus has only one interrupt, an interrupt source is generated when one-byte transfer is
15.4 Operation Flowcharts
C interface may run quickly, causing the slave to