
M0A21/M0A23 Series
May 06, 2022
Page
584
of 746
Rev 1.02
M0
A21
/M
0
A
2
3
SE
RIES
TEC
H
NICAL
RE
FEREN
C
E
M
ANUAL
48 MHz
480
240
120
60
40
72 MHz
720
360
180
90
60
Table 6.15-1 Relationship between I
2
C Baud Rate and PCLK
For setup time wrong adjustment example, assuming one SCL cycle contains ten PCLKs and set STCTL
(UI2C_TMCTL[8:0]) to 3 that stretch three PCLKs for setup time setting. The setup time setting limitation:
ST
limit
= (UI2C_BRGEN[25:16]+1) - 6.
SCL_OUT
PCLK
Only two PCLKs
. . . . . .
. . . . . .
Two PCLKs can not sample for SCL
Figure 6.15-20 Setup Time Wrong Adjustment
For hold time wrong adjustment example, use I
2
C Baud Rate = 1200k and PCLK = 72 MHz, the SCL
high/low duty = 60 PCLK. When HTCTL (UI2C_TMCTL[24:16]) is set to 63 and STCTL
(UI2C_TMCTL[8:0]) is set to 0, then SDA output delay will over SCL high duty and cause bus error. The
hold time setting limitation:
HT
limit
= (UI2C_BRGEN[25:16]+1) - 9.
Note:
Hold time adjust function can only work in master mode, when slave mode, the USCI-I
2
C HTCTL
(UI2C_TMCTL[24:16]) should set as 0.
SCL
SDA
SDA delay over SCL low duty
Bus error
Figure 6.15-21 Hold Time Wrong Adjustment
I
2
C Time-out Function
There is a 10 bits time-out counter TOCNT (UI2C_PROTCTL [25:16]) which can be used to deal with
the I
2
C bus hang-up. If the time-out counter is enabled, the counter starts up counting until it equals
TOCNT (UI2C_PROTCTL [25:16]) and generates I
2
C interrupt to CPU or stops counting by clearing
TOIEN (UI2C_PROTIEN [0]) to 0 or setting all I
2
C interrupt signal (ACKIF, ERRIF, ARBLOIF, NACKIF,