Rev.1.02 Jul 01, 2005 page 156 of 314
REJ09B0126-0102
M16C/6N Group (M16C/6NL, M16C/6NN) 14. Serial I/O
Under development
This document is under development and its contents are subject to change.
Table 14.13 STSPSEL Bit Functions
Figure 14.26 STSPSEL Bit Functions
14.1.3.3 Arbitration
Unmatching of the transmit data and SDAi pin input data is checked synchronously with the rising edge
of SCLi. Use the ABC bit in the UiSMR register to select the timing at which the ABT bit in the UiRB
register is updated. If the ABC bit = 0 (updated per bit), the ABT bit is set to “1” at the same time
unmatching is detected during check, and is set to “0” when not detected. In cases when the ABC bit is
set to “1”, if unmatching is detected even once during check, the ABT bit is set to “1” (unmatching
detected) at the falling edge of the clock pulse of 9th bit. If the ABT bit needs to be updated per byte, set
the ABT bit to “0” (undetected) after detecting acknowledge in the first byte, before transferring the next
byte.
Setting the ALS bit in the UiSMR2 register to “1” (SDA output stop enabled) causes arbitration-lost to
occur, in which case the SDAi pin is placed in the high-impedance state at the same time the ABT bit is
set to “1” (unmatching detected).
Function
Output of SCLi and SDAi Pins
Start/Stop Condition Interrupt
Request Generation Timing
STSPSEL Bit = 0
Output of transfer clock and
data
Output of start/stop condition is
accomplished by a program
using ports (not automatically
generated in hardware)
Start/stop condition detection
STSPSEL Bit = 1
Output of a start/stop condition
according to the STAREQ,
RSTAREQ and STPREQ bits
Finish generating start/stop condition
Start condition
detection interrupt
Stop condition
detection interrupt
(1) When slave
CKDIR bit = 1 (external clock)
Start condition
detection interrupt
Stop condition
detection interrupt
(2) When master
CKDIR bit = 0 (internal clock), CKPH bit = 1 (clock delayed)
SDAi
SCLi
Set STAREQ bit
= 1 (start)
Set STPREQ bit
= 1 (start)
STSPSEL bit
0
SDAi
SCLi
STSPSEL bit
Set to "1" in
a program
Set to "0" in
a program
Set to "1" in
a program
Set to "0" in
a program
1st 2nd 3rd 4th 5th 6th 7th 8th 9th bit
1st 2nd 3rd 4th 5th 6th 7th 8th 9th bit