ISD91200 Series Technical Reference Manual
Release Date: Sep 16, 2019
- 163 -
Revision 2.4
with any clock frequency up to 1M Hz from master I2C device.
Data Baud Rate of I2C = PCLK /(4x(I2C_CLKDIV[7:0]+1)). If PCLK=16MHz, the I2C_CLKDIV[7:0] = 40
(28H), data baud rate of I2C = 16MHz/(4x(40 +1)) = 97.5Kbits/sec.
5.6.4.6
The I2C Time-out Counter Register (I2C_TOCTL)
There is a 14-bit time-out counter which can be configured to deal with an I2C bus hang-up. If the time-
out counter is enabled, the counter starts up-counting until it overflows (TOIF=1) and generates I2C
interrupt to CPU or stops counting by clearing TOCEN to 0. When time-out counter is enabled, setting
flag SI to high will reset counter. Counter will re-start after SI is cleared. If the I2C bus hangs up,
counter will overflow and generate a CPU interrupt. Refer to Figure 5-23 I2C Time-out Count Block
Diagram for the 14-bit time-out counter. User can clear TOIF by writing one to this bit.
1
0
Pclk
1/4
14-bit Counter
TOIF
Clear Counter
TOCEN
SI
DIV4
I2CEN
To I2C Interrupt
Enabl
e
SI
Figure 5-23 I2C Time-out Count Block Diagram