ISD94100 Series Technical Reference Manual
Sep 9, 2019
Page
640
of 928
Rev1.09
IS
D
9
410
0
S
ER
IE
S
T
E
C
HN
ICA
L
RE
F
E
RE
NCE
M
AN
U
AL
I2C Controller
Slave
Host
I2Cn_SMBAL
ARA Command
Figure 6.13-21 Bus Management ALERT function
Packet error checking
A packet error checking mechanism has been introduced in the SMBus specification to improve
reliability and communication robustness. Packet Error Checking is implemented by appending a
Packet Error Code (PEC) at the end of each message transfer. The PEC is calculated by using the
C(x) = x
8
+ x
2
+ x + 1 CRC-8 polynomial on all the message bytes (including addresses and
read/write bits).
The peripheral embeds a hardware PEC calculator when the PECEN bit (I2C_BUSCTL[1]) is set
and allows to send a Not Acknowledge automatically when the received byte does not match with
the hardware calculated PEC. The calculated value of PEC also can be read back on I2C_PKTCRC.
Time-out
This peripheral embeds hardware timers in order to be compliant with the 3 time-outs defined in
SMBus specification ver. 2.0.
Bus management time-out:
1.
The SCLK low time-out condition when bus no IDLE
T
Time-out
= BUSTO(I2C_BUSTOUT[7:0]) x 16x1024 (14-bit) x T
PCLK
(if TOCDIV4 = 0).
= BUSTO(I2C_BUSTOUT[7:0] x 16x1024 (14-bit) x 4 x T
PCLK
(if TOCDIV4 = 1)
2.
The bus idle condition (both SCLK and SDA high) when bus IDLE
T
Time-out
= BUSTO(I2C_BUSTOUT[7:0]) x 4 x T
PCLK
.