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

Problem reading the RPD bit correctly when Auto-Ack is turned ON.

Using NRF2401+, I have two units running side by side on the bench.

With Auto-Ack turned OFF I can successfully read the RPD register (bit 0) and get the expected readings of 1 or 0 depending on the distance between the two modules.

However, when I turn Auto-Ack ON, RPD only ever reads zero even at very short range.

I am certain the issue is down to my code, and the point at which RPD is read. It is being read when the RX_DR interupt occurs. Any help will be most appreciated thank you!

Parents
  • Hi,

    The RPD is latched at the end of a received packet and kept until you start a new receive window. In Auto ack mode, a new receive window will begin after sending an ACK as response to a received packet. This means that you'll have a short window from RX_DR gets set until RPD is cleared.

    Please review the timing for when you actually read RPD to see if this can be the case.

    Best regards,

    Jon Gunnar

  • Hello Jan,

    Just to wrap this quesiton up from my side:

    You were absolutely correct (a) about the timing of reading RPD with AutoAck ON and (b) it being possible at the HIGHER air data rates.

    I have tried it on my development units at 2Mbps and 1Mbps air-rates, and it is possible to correctly read the RPD bit (with AutoAck turned ON). With no other variables, it continued to be impossible to read RPD at the lowest air-data rate of 250kbps.

    So while I wish to use the lowest air-data rate in my application (for best range/reliability), I now have the option of testing the RPD bit either by having the firmware switch up to a higher data rate or by temporarily disabling AutoAck.

    Thank you for all your help,

    Andrew

Reply
  • Hello Jan,

    Just to wrap this quesiton up from my side:

    You were absolutely correct (a) about the timing of reading RPD with AutoAck ON and (b) it being possible at the HIGHER air data rates.

    I have tried it on my development units at 2Mbps and 1Mbps air-rates, and it is possible to correctly read the RPD bit (with AutoAck turned ON). With no other variables, it continued to be impossible to read RPD at the lowest air-data rate of 250kbps.

    So while I wish to use the lowest air-data rate in my application (for best range/reliability), I now have the option of testing the RPD bit either by having the firmware switch up to a higher data rate or by temporarily disabling AutoAck.

    Thank you for all your help,

    Andrew

Children
No Data
Related