I2C issue with update over the air

Hi,

We are using a TMD2636 proximity sensor on our board, connected via I²C on pins P0.18 (SDA) and P0.30 (SCL). The same I²C bus also contains a TMP117 temperature sensor and another device.

Before enabling OTA updates, all sensors work correctly. However, after enabling:

CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y

The proximity sensor (TMD2636) stops responding, while the TMP117 and the other sensor continue to operate normally on the same bus.

I checked the I²C pulses with a logic analyzer and confirmed that the TMD2636 no longer sends an ACK after OTA support is enabled.

These are two screenshots from Digital Analyzer, when I enable CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y, as you see, the proximity sensor doesn't send ACK:

But when I disable the CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=n, the proximity sensor starts to send ack,

Could you please advise on what might cause this issue or how I can resolve it?

Thanks,

Alireza

Parents
  • Hi again,

     

    I am using a very simple program that repeatedly reads the proximity sensor’s device ID. During testing, I noticed that when OTA is enabled, there are two unexpected pulses on the I²C lines during the boot sequence. These pulses appear before my application starts and may be causing the proximity sensor to enter a bad state. When OTA is disabled, these pulses do not appear at all.

    I have attached the .sal file from the logic analyzer for reference.

    My question is: How can I prevent or eliminate these pulses during the boot phase when OTA is enabled?

    OTA enabled boot.salOTA disabled boot.sal

Reply
  • Hi again,

     

    I am using a very simple program that repeatedly reads the proximity sensor’s device ID. During testing, I noticed that when OTA is enabled, there are two unexpected pulses on the I²C lines during the boot sequence. These pulses appear before my application starts and may be causing the proximity sensor to enter a bad state. When OTA is disabled, these pulses do not appear at all.

    I have attached the .sal file from the logic analyzer for reference.

    My question is: How can I prevent or eliminate these pulses during the boot phase when OTA is enabled?

    OTA enabled boot.salOTA disabled boot.sal

Children
Related