SWRU626 December 2025 CC3501E , CC3551E
Standard, Fast, and Fast Plus modes are selected using a value in the I2C Controller Timer Period (I2Cx.CTPR) register that results in an SCL frequency of:
The I2C clock rate is determined by the parameters INT_CLK_PRD, TPR, SCL_LP, and SCL_HP where:
| I2Cx.CTPR Value | Division factor | I2C_CLK (SOC_CLK(1)/ division factor) |
|---|---|---|
| 0000 | 1 | 80 |
| 0001 | 2 | 40 |
| 0010 | 4 | 20 |
| 0011 | 5 | 16 |
| 0100 | 8 | 10 |
| 0101 | 10 | 8 |
| 0110 | 16 | 5 |
| 0111 | 20 | 4 |
| 1000 | 25 | 3.2 |
| 1001 | 32 | 2/5 |
| 1010 | 40 | 2 |
| 1011 | 80 | 1 |
| Reserved | - | - |
I2C clock period can be calculated as follows:
For example:
INT_CLK_PRD = 1/20 MHz = 50 ns
TPR = 19 (0x13)
SCL_LP = 6
SCL_HP = 4
yields a SCL frequency of:
1/SCL_PERIOD = 100 kHz
Some more examples:
| Functional Clock | Timer Period | Standard Mode | Timer Period | Fast Mode | Timer Period | Fast Mode Plus |
|---|---|---|---|---|---|---|
| 4 MHz | 0x03 | 100 kHz | - | - | - | - |
| 8 MHz | 0x07 | 100 kHz | 0x01 | 400 kHz | - | - |
| 20 MHz | 0x13 | 100 kHz | 0x04 | 400 kHz | 0x01 | 1 MHz |
| 40 MHz | 0x27 | 100 kHz | 0x09 | 400 kHz | 0x03 | 1 MHz |
| 80 MHz | 0x4F | 100 kHz | 0x13 | 400 kHz | 0x07 | 1 MHz |
The IP has a 20x clock frequency requirement both in Controller and Target modes. Therefore, the following minimum functional clock frequencies are required in different modes:
Functional Clock >= 2MHz when working with I2C speed 0-100KHz,
Functional Clock >= 8MHz when working with I2C speed 100KHz-400KHz,
Functional Clock >= 20MHz when working with I2C speed 400KHz-1MHz