S2-LP PERS_RX - what does it do?
The function of the PERS_RX flag in PROTOCOL 0 is described as: '1: enable the persistent RX mode.' What does that actually mean/do? I couldn't see any explanations in the rev. 13 data sheet for the S2-LP.
The function of the PERS_RX flag in PROTOCOL 0 is described as: '1: enable the persistent RX mode.' What does that actually mean/do? I couldn't see any explanations in the rev. 13 data sheet for the S2-LP.
Your interpretation and measurements are both correct – PERS_RX does not override the RX timeout:
A finite RX timeout (your TIMERS5/TIMERS4 = 0x10 / 0x80) will always stop RX when it expires, regardless of PERS_RX. When the timer elapses with no valid packet, the S2‑LP asserts the RX timeout interrupt, discards the data and goes back to READY. This is exactly what you observed and it is expected behaviour.
PERS_RX only affects what happens after a packet event:
So your persistent RX with TIMERS5/TIMERS4 = 0x01/0x00 comes simply from the infinite RX timeout; RX is never stopped by the timer, and it stays active until a packet or a command terminates it. PERS_RX does not extend RX beyond a finite timeout; it only prevents the protocol state machine from leaving RX after a packet event in situations where it would normally move to another state (e.g. READY or TX‑ACK), especially in STack protocol mode.
Regards
/Peter
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.