Hi,
How to control the delay between START condition and the first word in an I2C controller’s write operation?
In the figure above, the upper part was the waveform captured by oscilloscope for a “driving board” that could successfully communicate with an OV sensor, and the below is the waveform when I am communicating with an OV sensor of the same type soldered on my customized board using DM6437’s I2C controller.
The most prominent difference is the delay time:
1. In the “good" waveform, there is a 60 µs delay between the START condition and the slave address (0x42 for OV sensor).
2. In DM6437’s I2C controller waveform, there is no such delay, and the START condition is immediately followed by the 0x42 device address.
The I2C clock speeds in both cases are 200K bits/s, which has been proven to be working by the “driving board”. It is also within the 100K (standard mode) – 400K (fast mode) bits/s range.
Since the “driving board” could make the sensor work (video can be seen), its waveform thus is guaranteed to be correct and I am attempting to mimic the waveform using DM6437’s I2C controller. So the problem is: How should I add the 60 µs delay between START condition and the slave address?
Does I2C controller allow such tuning? Could anyone help on this?
Zheng