DocID024597 Rev 3 1147/1693
RM0351 Inter-integrated circuit (I2C) interface
1177
• Configuring the maximum duration of t
IDLE
to 50 µs
35.4.13 SMBus slave mode
This section is relevant only when SMBus feature is supported. Please refer to Section 35.3:
I2C implementation.
In addition to 2C slave transfer management (refer to Section 35.4.7: I2C slave mode) some
additional software flowcharts are provided to support SMBus.
SMBus Slave transmitter
When the IP is used in SMBus, SBC must be programmed to ‘1’ in order to allow the PEC
transmission at the end of the programmed number of data bytes. When the PECBYTE bit
is set, the number of bytes programmed in NBYTES[7:0] includes the PEC transmission. In
that case the total number of TXIS interrupts will be NBYTES-1 and the content of the
I2C_PECR register is automatically transmitted if the master requests an extra byte after the
NBYTES-1 data transfer.
Caution: The PECBYTE bit has no effect when the RELOAD bit is set.
Table 186. Examples of TIMEOUTB settings for various I2CCLK
frequencies
f
I2CCLK
TIMEOUTB[11:0]
bits
TEXTEN bit
t
LOW:EXT
8 MHz 0x1F 1 32 x 2048 x 125 ns = 8 ms
16 MHz 0x3F 1 64 x 2048 x 62.5 ns = 8 ms
48 MHz 0xBB 1 188 x 2048 x 20.08 ns = 8 ms
Table 187. Examples of TIMEOUTA settings for various I2CCLK frequencies
(max t
IDLE
= 50 µs)
f
I2CCLK
TIMEOUTA[11:0]
bits
TIDLE bit
TIMEOUTEN
bit
t
TIDLE
8 MHz 0x63 1 1 100 x 4 x 125 ns = 50 µs
16 MHz 0xC7 1 1 200 x 4 x 62.5 ns = 50 µs
48 MHz 0x257 1 1 600 x 4 x 20.08 ns = 50 µs