SPRUIU1C July 2020 – February 2024 DRA821U , DRA821U-Q1
Figure 12-128 shows the I2C clock generation of the I2C controllers.
Each multimaster I2C controller uses the SYS_CLK functional clock in the Device Configuration section. The internal sampling clock INTERNAL_CLK is generated by dividing the functional clock by the I2C_PSC[7-0] PSC bit field value + 1 in F/S mode, or in the first phase of HS mode; or by directly using the functional clock in the second phase of HS mode (prescaler is bypassed).
The low time of the SCLL signal is determined by the I2C_SCLL[7-0] SCLL bit field in F/S mode and in the first phase of HS mode; or by the I2C_SCLL[15-8] HSSCLL bit field in the second phase of HS mode.
The high time of the SCLH signal is determined by the I2C_SCLH[7-0] SCLH bit field in F/S mode and in the first phase of HS mode; or by the I2C_SCLH[15-8] HSSCLH bit field in the second phase of HS mode.
Table 12-244 lists the tLOW and thigh values in master mode only (in slave mode, the I2C controller does not generate the I2C clock).
Mode | Clock | tLOW | thigh |
---|---|---|---|
F/S or HS first phase | INTERNAL_CLK = SYS_CLK / (I2C_PSC[7-0] PSC bit field + 1) | (I2C_SCLL[7-0] SCLL bit field value + 7) × INTERNAL_CLK period | (I2C_SCLH [7-0] SCLH bit field value + 5) × I2Ci_INTERNAL_CLK period |
HS second phase | SYS_CLK | (I2C_SCLL[15-8] HSSCLL bit field value + 7) × SYS_CLK period | (I2CSCLL [15-8] HSSCLH bit field value + 5) × I2Ci_SYS_CLK period |
For HS mode, the I2C_SCLL[15-8] HSSCLL and I2C_SCLL[7-0] SCLL bit fields must be programmed (the first phase of an HS transaction is performed at F/S speed).
For HS mode, the I2C_SCLH[15-8] HSSCLH and I2C_SCLH[7-0] SCLH bit fields must be programmed (the first phase of an HS transaction is performed at F/S speed).
The equations in Table 12-244 give the SCLL timing values for SCLL/SCLH/HSSCLL/HSSCLH at I2C controller outputs. Actual tlow and thigh periods may vary depending on the board (the load capacitance on the SCLL signal). If necessary, any adjustments to the SCLL/SCLH/HSSCLL/HSSCLH values must be determined by measurements of actual SCL signal on the board.
During active mode (the I2C_CON[15] I2C_EN bit is set to 1), make no changes to the I2C_SCLL and I2C_SCLH registers. Changes may result in unpredictable behavior.
Table 12-245 lists the register values for obtaining the maximum I2C bit rates and the maximum period of the filtered spikes in F/S mode and HS mode.
I2C Mode for | Description | |||
---|---|---|---|---|
Standard Mode | Fast Mode | High-Speed Mode | ||
SYS_CLK frequency (MHz) | 96 | |||
OCP_CLK frequency (MHz) | 133 | |||
I2C_PSC[7-0] PSC | 23 | 9 | 1 | Prescaler value for F/S and HS modes |
INTERNAL_CLK frequency (MHz) | 4 | 9.6 | 96 | |
I2C_SCLL[7-0] SCLL | 13 | 7 | 115 | Value for F/S mode and first phase of HS mode |
I2C_SCLH[7-0] SCLH | 15 | 5 | 113 | Value for F/S mode and first phase of HS mode |
Maximum bit rate (Mbps) | 0.1 | 0.4 | 0.4 | F/S mode and first phase in HS mode maximum bit rate |
Maximum filter period (ns) | 250 | 104.2 | 10 | |
I2C_SCLL[15-8] HSSCLL | 12 | Values for second phase of HS mode | ||
I2C_SCLH[15-8] HSSCLH | 5 | Values for second phase of HS mode | ||
HS mode maximum bit rate (Mbps) | 3.31 | HS mode maximum bit rate | ||
Maximum filter period (ns) | 10 |
This table presents informative values only for the configuration parameters and the I2C bus performance obtained according to these values. The delays added by the analog pads are not considered in these figures.
For WKUP_I2C0
For MCU_I2C[0-1]
For I2C[0-6]
I2Ci_INTERNAL_CLK freq = I2Ci_SYS_CLK / (PSC +1)
F/S filter period = 1 / I2Ci_INTERNAL_CLK
HS filter period = 1 / I2Ci_SYS_CLK freq
HS bit rate = I2Ci_SYS_CLK freq / (HSSCLL+ 7 + HSSCLH + 5)
FS bit rate = I2Ci_INTERNAL_CLK / (SCLL+ 7 + SCLH + 5)