Rev. 1.00, 05/04, page 282 of 544
13.3.1 I
2
C Bus Data Register (ICDR)
ICDR is an 8-bit readable/writable register that is used as a transmit data register when
transmitting and a receive data register when receiving. ICDR is internally divided into a shift
register (ICDRS), receive buffer (ICDRR), and transmit buffer (ICDRT). Data transfers among
these three registers are performed automatically in accordance with changes in the bus state, and
they affect the status of internal flags such as ICDRE and ICDRF.
In master transmit mode with the I
2
C bus format, writing transmit data to ICDR should be
performed after start condition detection. When the start condition is detected, previous write data
is ignored. In slave transmit mode, writing should be performed after the slave addresses match
and the TRS bit is automatically changed to 1.
If the IIC is in transmit mode (TRS = 1) and ICDRT has the next transmit data (the ICDRE flag
is 0) after successful transmission/reception of one frame of data using ICDRS, data is transferred
automatically from ICDRT to ICDRS.
If the IIC is in transmit mode (TRS = 1) and ICDRT has the next data (the ICDRE flag is 0), data
is transferred automatically from ICDRT to ICDRS, following transmission of one frame of data
using ICDRS. When the ICDRE flag is 1 and the next transmit data writing is waited, data is
transferred automatically from ICDRT to ICDRS by writing to ICDR. If I
2
C is in receive mode
(TRS = 0), no data is transferred from ICDRT to ICDRS. Note that data should not be written to
ICDR in receive mode.
Reading receive data from ICDR is performed after data is transferred from ICDRS to ICDRR.
If I
2
C is in receive mode and no previous data remains in ICDRR (the ICDRF flag is 0), data is
transferred automatically from ICDRS to ICDRR, following reception of one frame of data using
ICDRS. If additional data is received while the ICDRF flag is 1, data is transferred automatically
from ICDRS to ICDRR by reading from ICDR. In transmit mode, no data is transferred from
ICDRS to ICDRR. Always set I
2
C to receive mode before reading from ICDR.
If the number of bits in a frame, excluding the acknowledge bit, is less than eight, transmit data
and receive data are stored differently. Transmit data should be written justified toward the MSB
side when MLS = 0 in ICMR, and toward the LSB side when MLS = 1. Receive data bits should
be read from the LSB side when MLS = 0, and from the MSB side when MLS = 1.
ICDR can be written to and read from only when the ICE bit is set to 1 in ICCR. The initial value
of ICDR is undefined.
Summary of Contents for H8S/2111B
Page 2: ...Rev 1 00 05 04 page ii of xxxiv...
Page 8: ...Rev 1 00 05 04 page viii of xxxiv...
Page 22: ...Rev 1 00 05 04 page xxii of xxxiv...
Page 30: ...Rev 1 00 05 04 page xxx of xxxiv...
Page 84: ...Rev 1 00 05 04 page 50 of 544...
Page 100: ...Rev 1 00 05 04 page 66 of 544...
Page 126: ...Rev 1 00 05 04 page 92 of 544...
Page 180: ...Rev 1 00 05 04 page 146 of 544...
Page 216: ...Rev 1 00 05 04 page 182 of 544...
Page 254: ...Rev 1 00 05 04 page 220 of 544...
Page 268: ...Rev 1 00 05 04 page 234 of 544...
Page 382: ...Rev 1 00 05 04 page 348 of 544...
Page 462: ...Rev 1 00 05 04 page 428 of 544...
Page 464: ...Rev 1 00 05 04 page 430 of 544...
Page 488: ...Rev 1 00 05 04 page 454 of 544...
Page 496: ...Rev 1 00 05 04 page 462 of 544...
Page 574: ...Rev 1 00 05 04 page 540 of 544...
Page 581: ......
Page 582: ...H8S 2111B Hardware Manual...