BLE transmission errors when i2c sensors read in interrupt

Hi, we have a device that reads two sensors on separate i2c buses consecutively and transmits these using ble_nus_data_send().

The i2c sensors are read on an interrupt timer 100 readings a second.

The problem is we are dropping a lot of packets especially at the beginning of the transmission.

When we switch off the i2c sensors reading and just transmit dummy packetst he problem goes away.

We use ble_nus_data_send() to send data which is called from main and polls for sensor data.

How can the interrupt routines interfere with BLE transmissions? Are they not on higher interrupt priority?

Is there anything we can do to stop the i2c reading in interrupt interfering with BLE transmissions?

Thanks

Parents Reply
  • Hi,

    Are you already in a connection when you start the first I2C transfers to retrieve the data, or does it retrieve the data while the device is advertising/establishing a connection? On a second thought, this question doesn't make sense. Nvm this point. 

    The ble_nus_data_send() should be able to handle this and I don't see any issues with your method. Could you share a minimal example that reproduces this issue?

    If you only use one I2C, do you still observe dropped packets? 

    Yano said:

    I don't know if the ISP1507AX uses a die or a WLCSP.

    How can we tell what pins of the ISP can cause a radio interference problem?

    The module manufacturer should specify what kind of package they are using in their documentation. 

    regards

    Jared

Children
No Data
Related