ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
可以使用 I2C 控制器计时器周期 (I2CMTPR) 寄存器中的值来选择标准、快速和快速+ 模式,从而得到最高的 SCL 频率如下:
I2C 频率 I2C_FREQ 由 I2C_CLK 频率以及位字段 TPR、SCL_LP 和 SCL_HP 确定,其中:
I2C 频率的计算公式如下:
例如,如果 I2C 功能时钟频率为 32MHz,目标 SCL 频率为 400kHz:
I2C_CLK = 32MHz
I2C_FREQ = 400kHz
SCL_LP = 6,SCL_HP = 4
TPR = (I2C_CLK / (I2C_FREQ * (4 + 6))) - 1
TPR = 7 (0x07)
| 功能时钟 | TPR 位 标准模式 100kHz SCL |
TPR 位 快速模式 400kHz SCL |
TPR 位 快速+ 模式 1000kHz SCL |
|---|---|---|---|
| 4MHz | 0x03 | - | - |
| 8MHz | 0x07 | 0x01 | - |
| 20MHz | 0x13 | 0x04 | 0x01 |
| 32MHz | 0x1F | 0x07 | 0x02(1) |
| 40MHz | 0x27 | 0x09 | 0x03 |
I2C 功能时钟必须大于或等于 SCL 频率的 20 倍,即 I2C_CLK ≥ 20 × I2C_FREQ。
以特定的 I2C 时钟速度运行时,需要以下最低功能时钟频率: