MC96F6432
June 22, 2018 Ver. 2.9 261
USI1DR (USI1 Data Register: For UART, SPI, and I2C mode) : F5H
Initial value : 00H
The USI1 transmit buffer and receive buffer share the same I/O
address with this DATA register. The transmit data buffer is the
destination for data written to the USI1DR register. Reading the
USI1DR register returns the contents of the receive buffer.
Write to this register only when the DRE1 flag is set. In SPI master
mode, the SCK1 clock is generated when data are written to this
register.
USI1SDHR (USI1 SDA Hold Time Register: For I2C mode) : F4H
Initial value : 01H
The register is used to control SDA1 output timing from the falling
edge of SCL1 in I2C mode.
NOTE) That SDA1 is changed after t
SCLK
X (USI1SDHR+2), in
master SDA1 change in the middle of SCL1.
In slave mode, configure this register regarding the frequency of
SCL1 from master.
The SDA1 is changed after tsclk X (USI1SDHR+2) in master
mode. So, to insure operation in slave mode, the value
t
SCLK
X (USI1SDHR +2) must be smaller than the period of SCL1.
USI1SCHR (USI1 SCL High Period Register: For I2C mode) : F7H
Initial value : 3FH
This register defines the high period of SCL1 when it operates in
I2C master mode.
The base clock is SCLK, the system clock, and the period is
calculated by the formula: t
SCLK
X (4 X USI1SCHR +2) where
t
SCLK
is the period of SCLK.
So, the operating frequency of I2C master mode is calculated by the following equation.
t
SCLK
X (4 X (USI1SCLR + USI1SCHR) + 4)