This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF52 DK does not run GPIOTE interrupt handler after some time with SoftDevice 132 present

Hi All,

I'm having a problem with my application which involves regularly sampling I2C slave data and sending it over Bluetooth. The I2C slave generates an active high interrupt when new data is available, which signals my application to read the data as well as write to some registers to clear the interrupt to prepare it for the next sampling interval. This active high interrupt is mapped to a GPIOTE interrupt which looks for the low to high transition and calls the event handler I just described

This seems to work well at least initially, but after some time (which varies anywhere from 30 seconds - 10 mins) my NRF52 stops servicing the interrupt. In other words, the slave fires an interrupt, but afterwards the NRF52 does not issue the I2C start condition to begin reading the new data and writing to the required registers to clear the new data interrupt.

The part that is puzzling to me, is that the time which elapses before the "timeout" happens is not very consistent. At times, the application will run for 10+ minutes with no problems, while at others this condition will occur in under a minute.

I've attached a trace of my I2C data lines, as well the interrupt on Channel 2 (not SCL as noted in the screen) to better illustrate my problem.

I'm using the nrf52 DK PC10036, with SD 1.0.0.3 alpha, with Software Packs nrf_drivers version 3.1.0 and nrf_libraries version 4.0.0.2.

Any thoughts or recommendations would be appreciated!

Thanks

image description

Related