I'm running FreeRTOS with SDK version 15.0 on nrf52 custom board.
I have two sensors, say A and B, on two separate SPIM bus instances. Sensor B utilizes PPI to trigger data transfer on Low-to-High transition of its interrupt pin. The PPI is also forked to increment a timer module working as counter to keep track of received samples. The counter is configured for a compare interrupt to know if all samples are received.
Sensor A does the Data transfer on the GPIOTE handler for Low-to-High transition of its respective interrupt pin.
Both sensors' data acquisition happens simultaneously.
When both sensors are working in low frequencies, things are working fine. But when they are working on high and nearly equal frequencies, the controller fails to process the data ready event from sensor B. i.e. the counter is not getting incremented and thus the compare event is not happening.
To debug, I provided a callback for the sensor B's nrf_drv_gpiote_in_init function and the function gets called only once even though the pin's state transitions continuously.
I went through examples and threads to see if the PPI configurations are correct and everything looks OK.
What could be the problem???