We notice that the I2C bus (SDA at least) is pulled high by the L96 after sending a hot, warm or cold reset command (and also after powering VCC to exit backup mode). Measuring with an oscilloscope, the pull occurs about 30 ms after the reset command is sent, and lasts 85 ms. For power-on VCC, the pull occurs a bit later, after 133 ms. This is unfortunate as it prohibits the use of the the bus during this time period. We use VCC to enter and exit.backup mode periodically.
Could you please advise if this is to be expected and if it is possible to avoid? We are using firmware L96NR01A03SC.
Indeed, but the problem is that L96 pulls the bus high so that no other devices can pull it down. To reproduce:
Have I2C bus with L96 in backup mode and another I2C device
Poll the I2C device every 25 ms successfully
Power on L96 VCC to exit backup mode
Polling of I2C device fails about 130 ms after step 3. Failures lasts about 85 ms, before operating normally again. Note that the bus is always high during the failures.
Note the same behavior when using any reset-command
Below is a voltage measurement of SDA during a warm-reset via command. The bus is at 3.3 V so that the pulling of the bus is visible. The first dips in the voltage is the warm-reset-command. About 35 ms later, the bus is pulled to 2.8 V. During this period, the bus is not usable. After 130 ms, the pull is released and bus can be used normally.
Hi arurke
I2C communication requires a startup time each time it is started. This time is not clearly defined, but it will be around 100ms. It is recommended to delay for a while after each module startup before processing I2C communication.
I will send you the agreement document via message.