Hello, I am struggling to find resources or up-to-date information on how to implement the above with NRF54DK (specifically Ezurio BL54L15 DK). Reference material I have found seems to have become outdated over time due to new SDK versions, etc. Similarly, I'm struggling with many of the concepts as I'm relatively new to Nordic and Zephyr.
I am interfacing with the DATA pin on a MAX41470 RF receiver, which is toggling high & low based on RF data received from (in this case) TPMS sensors of a car.
There are multiple types of sensors I am using - one of which transmits data in 167us pulses. Using an interrupt handler on the DATA pin, I have been able to decode the data no problem. The timing seems well within the realms of what could be handled using a normal ISR.
Another type of sensor is transmitting at 25us, and this is causing problems. The ISR is missing bit changes, and the data isn't being received in full, thus I can't decode it properly. Similarly, the ISR is triggering so fast and often that any other computations are slow - the core is basically hogged by the ISR (I believe).
Again, new to this, but this is my understanding at the moment. To try and fix this, I've been researching moving to using GPIOTE and a Timer + PPI to avoid using the CPU and get accurate timing data for the highs and lows, and thus computing the data in the loop. I'm not sure if this is the ultimate solution, as the toggling is happening so quickly, but I've been trying to attempt it (any advice here is appreciated).
What I can't figure out is how to actually do this in code. I understand that I need to use NRFX as this is NRF-specific functionality outside of Zephyr's abstractions. What I can't figure out is how to get the various functions loaded and how to write code to do this. Any pointing in the right direction would be really helpful. I've just about grasped the Zephyr abstractions, so it's hard to now wrap my head around the nrfx_ versions of similar functions.
Can anyone point me in the right direction to some reference material that could be relevant to me here?