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

GPIOTE IRQ loss when too fast....how to use latch?

Hello everyone,

I am working on a project where I need to interface an NFC reader (trf7970a from TI) to an NRF52840.

I got everything working fine, but I have a major issue in reading a tag, essentially because from what I see on the logic analyzer, the NRF52840 "misses" the RX interrupt because it happens too shortly after the TX done interrupt. This is pretty clear from the logic analyzer screenshot below

The IRQ line (blue, channel 14) is well managed when there is only a TX done event (first IRQ), but when a tag is close to the device, it causes a second interrupt that is not managed, most probably because it happen while the NRF is servicing the previous interrupt in nrfx_gpiote_irq_handler function...

I read in some discussion that a LATCH register is available to check if there are pending interrupts, but I was not able to understand how to use it to generate another IRQ....can someone point me to the right direction? Should I poll it periodically, or can I set it somewhere in the gpiote configuration?

Also, is there any way to speed-up the irq management? The two interrupts happen at an interval of 84us, is there a way to speed up the gpiote_irq_handler function to correctly serve the second interrupt?

Thanks a lot!

Parents Reply Children
No Data
Related