RM0440 Rev 4 1865/2126
RM0440 Inter-integrated circuit (I2C) interface
1928
I2C timings
The timings must be configured in order to guarantee a correct data hold and setup time, 
used in master and slave modes. This is done by programming the PRESC[3:0], 
SCLDEL[3:0] and SDADEL[3:0] bits in the I2C_TIMINGR register.
The STM32CubeMX tool calculates and provides the I2C_TIMINGR content in the I2C 
configuration window
Figure 631. Setup and hold timings
MSv40108V1
t
SYNC1
SCL falling edge internal 
detection
SDADEL: SCL stretched low by the I2C  
SDA output delay
SCL
SDA
DATA HOLD TIME
t
HD;DAT
SCLDEL
SCL stretched low by the I2C
SCL
SDA
DATA SETUP TIME
t
SU;STA
Data hold time: in case of transmission, the data is sent on SDA output after 
the SDADEL delay, if it is already available in I2C_TXDR.
Data setup time: in case of transmission, the SCLDEL counter starts 
when the data  is sent on SDA output.  
MS49608V1
t
SYNC1
SCL falling edge internal 
detection
SDADEL: SCL stretched low by the I2C  
SDA output delay
SCL
SDA
DATA HOLD TIME
t
HD;DAT
SCLDEL
SCL stretched low by the I2C
SCL
SDA
DATA SETUP TIME
t
SU;DAT
Data hold time: in case of transmission, the data is sent on SDA output after 
the SDADEL delay, if it is already available in I2C_TXDR.
Data setup time: in case of transmission, the SCLDEL counter starts 
when the data  is sent on SDA output.