322
CHAPTER 17 SERIAL INTERFACE IIC0 (
µ
PD780344Y, 780354Y SUBSERIES ONLY)
User’s Manual U15798EJ2V0UD
17.5.4 Acknowledge (ACK) signal
The acknowledge (ACK) signal is used by the transmitting and receiving devices to confirm serial data reception.
The receiving device returns one ACK signal for each 8 bits of data it receives. The transmitting device normally
receives an ACK signal after transmitting 8 bits of data. However, when the master device is the receiving device,
it does not output an ACK signal after receiving the final data to be transmitted. The transmitting device detects whether
or not an ACK signal is returned after it transmits 8 bits of data. When an ACK signal is returned, the reception is
judged as normal and processing continues. If the slave device does not return an ACK signal, the master device
outputs either a stop condition or a restart condition and then stops the current transmission. Failure to return an
ACK signal may be caused by the following two factors.
(a) Reception was not performed normally.
(b) The final data was received.
When the receiving device sets the SDA0 line to low level during the ninth clock, the ACK signal becomes active
(normal receive response).
When bit 2 (ACKE0) of IIC control register 0 (IICC0) is set to 1, automatic ACK signal generation is enabled.
Transmission of the eighth bit following the 7 address data bits causes bit 3 (TRC0) of the IIC status register
0 (IICS0) to be set. When this TRC0 bit’s value is “0”, it indicates receive mode. Therefore, ACKE0 should be set
to 1.
When the slave device is receiving (when TRC0 = 0), if the slave device does not need to receive any more data
after receiving several bytes, setting ACKE0 to 0 will prevent the master device from starting transmission of the
subsequent data.
Similarly, when the master device is receiving (when TRC0 = 0) and the subsequent data is not needed and when
either a restart condition or a stop condition should therefore be output, setting ACKE0 to 0 will prevent the ACK signal
from being returned. This prevents the MSB data from being output via the SDA0 line (i.e., stops transmission) during
transmission from the slave device.
Figure 17-12. ACK Signal
SCL0
1
SDA0
2
3
4
5
6
7
8
9
A6
A5
A4
A3
A2
A1
A0
R/W ACK
When the local address is received, an ACK signal is automatically output in synchronization with the falling edge
of the SCL0’s eighth clock regardless of the ACKE0 value. No ACK signal is output if the received address is not
a local address.
The ACK signal output method during data reception is based on the wait timing setting, as described below.
• When 8-clock wait is selected: ACK signal is output when ACKE0 is set to “1” before wait cancellation.
• When 9-clock wait is selected: ACK signal is automatically output at the falling edge of the SCL0’s eighth clock
if ACKE0 has already been set to “1”.