16. Inter Integrated Circuit (I2C) MC97F6108A User’s manual
I2CSCLLR (SCL Low Period Register): DCH
This register defines the LOW period of SCL when I2C operates in
master mode. The base clock is SCLK, the system clock, and the
period is calculated by the formula : tSCLK× (4 × SCLL + 1) where
tSCLK is the period of SCLK
I2CSCLHR (SCL High Period Register): DDH
This register defines the HIGH period of SCL when I2C operates in master
mode. The base clock is SCLK, the system clock, and the period is
calculated by the formula: tSCLK× (4 × SCLH + 3) where tSCLK is the
period of SCLK.
So, the operating frequency of I2C master mode is calculated by the following equation.
fI2C =
1
tSCLK × (4(SCLL + SCLH) + 4)
I2CSDAHR (SDA Hold Time Register): DEH
This register is used to control SDA output timing from the falling edge of
SCL. Note that SDA is changed after tSCLK× SDAH. In master mode, load
half the value of SCLL to this register to make SDA change in the middle of
SCL. In slave mode, configure this register regarding the frequency of SCL
from master. The SDA is changed after tSCLK× (SDAH + 4). So, to insure
normal operation in slave mode, the value tSCLK× (SDAH + 4) must be
smaller than the period of SCL.
I2CDR (I2C Data Register): DFH
When I2C is configured as a transmitter, load this register with data to
be transmitted. When I2C is a receiver, the received data is stored into
this register.