I2c SCLDEL and SDADEL settings
I am using STM32CubeMx to calculate the i2C timing for i2C master. The i2C kernel clock is 200MHz. I2C speed frequency is 400KHz. Coefficient of digital filter 0, Analog Filter Enabled.
If Rise time and Fall time were set to 0, TimingR = 0x109035B7. With this setting, Tpresc = 10ns, Tsclh = 1840ns, Tscll = 540ns, Tscldel = 100ns, Tsdadel = 10ns, Tsclh + Tscll + Tscldel +Tsdadel = 2490ns. Actual SCL clock is measured ~2500ns.
If Rise time and Fall time are set to 300ns( I2C Fast mode max tr and tf), TimingR = 0x40FA1531. With this setting, Tpresc = 25ns, Tsclh = 1250ns, Tscll = 550ns, Tscldel = 400ns, Tsdadel = 275ns, Tsclh + Tscll + Tscldel +Tsdadel = 2475ns. Actual SCL clock period is measured only ~2000ns (Tsclh ~650ns, Tscll ~1350ns).
Why is SCL clock period too low in the latter case? Should SCL be stretching low for Tscldel +Tsdadel?
