> TIMER capture + PPI enables you to get exact times of radio events. Without > this you probably cannot handle TIFS or window widening properly. > There is hardware support for TFIS but it is usable only for RX -> TX > transition. For TX -> RX you have to use TIMER capture to know how long > you should wait in RX state.
I was not aware of the limitation of TFIS only working for RX -> TX. Where is that documented? On nRF52832 PS I see: TIFS is only enforced if END_DISABLE and DISABLED_TXEN or END_DISABLE and DISABLED_RXEN shortcuts are enabled. TIFS is only qualified for use in BLE_1MBIT mode, and default ramp-up mode. Which would seem to work for for both TX and RX. Anyway, I understand now there may be some subtle timings I have not yet encountered for which TIMER may be needed. In any case, I see now that TIMER/RTC can be interlinked with RADIO via PPI so that appears the way to go. > > I looked a bit at Zephyr's stack, and in the process found this video > which cleared some questions about the code (which is quite complex): > https://www.youtube.com/watch?v=rIicvcriWR8 > > The code in Zephyr is complex and completely unreadable :) Yes, I was a bit shocked when looking at the code from inside.