
Inter-IC Bus
IIC Register Descriptions
68HC(9)12DG128 Rev 1.0
MOTOROLA
Inter-IC Bus
259
9-iicbus
IBC5–IBC0 — IIC Bus Clock Rate 5–0
This field is used to prescale the clock for bit rate selection. The bit
clock generator is implemented as a prescaled shift register - IBC5-3
select the prescaler divider and IBC2-0 select the shift register tap
point. The IBC bits are decoded to give the Tap and Prescale values
as shown in
Table 36
.
The number of clocks from the falling edge of SCL to the first tap
(Tap[1]) is defined by the values shown in the scl2tap column of
Table 36
, all subsequent tap points are separated by 2
IBC5-3
as
shown in the tap2tap column in
Table 36
. The SCL Tap is used to
generated the SCL period and the SDA Tap is used to determine the
delay from the falling edge of SCL to SDA changing, the SDA hold
time.
The serial bit clock frequency is equal to the CPU clock frequency
divided by the divider shown in
Table 37
. The equation used to
generate the divider values from the IBFD bits is:
SCL Divider = 2 x ( scl2tap + [ ( SCL_Tap -1 ) x tap2tap ] + 2 )
The SDA hold delay is equal to the CPU clock period multiplied by the
SDA Hold value shown in
Figure 37
. The equation used to generate
the SDA Hold value from the IBFD bits is:
SDA Hold = scl2tap + [ ( SDA_Tap - 1 ) x tap2tap ] + 3
Table 36 IIC Tap and Prescale Values
IBC2-0
(bin)
SCL Tap
(clocks)
SDA Tap
(clocks)
IBC5-3
(bin)
scl2tap
(clocks)
tap2tap
(clocks)
000
5
1
000
4
1
001
6
1
001
4
2
010
7
2
010
6
4
011
8
2
011
6
8
100
9
3
100
14
16
101
10
3
101
30
32
110
12
4
110
62
64
111
15
4
111
126
128