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

show me a right config setting of nRF24L01+ with ACK payload ?

I try to ACK payload mode by nRF24L01+,but not work well. show me a typical config register setting. My target is transmit 10bytes and ACK payload 5bytes, as soon as possible. current configuration reg. settig is as followed. PTX:data pipe5: DPL_P0, EN_ACK_PAY, EN_DPL, EN_AA_P0, are ON. PRX:data pipe0: DPL_P5, EN_ACK_PAY, EN_DPL, EN_AA_P5, are ON. sequece step:

  1. PTX: payload(10bytes) TX
  2. PRX: payload(10bytes) RX(STATUS=0x4A), and clear IRQ.
  3. PTX: ACK payload(5bytes) RX(STATUS=0x60), but W_ACK_PL_WID is 0x60(not 0x05).
  4. PRX: waiting until IRQ active(figure21 on Product specification v1.0), but inactive(high level) for ever. please help me by easy english. thank you.
Parents
  • Hi,

    It seems that your configuration is OK as you are able to send and receive ACK payload. On the PTX side, you receive the payload, but the payload length is wrong?

    ACK payloads should be read out as a normal PRX reads out payloads. The "R_RX_PL_WID" command byte is "0x60", but this does not mean that the returned length this value. I believe that you are not reading the register "R_RX_PL_WID" correctly. Do you see the same issue on PRX when reading "R_RX_PL_WID" ?

    Best regards Håkon

Reply
  • Hi,

    It seems that your configuration is OK as you are able to send and receive ACK payload. On the PTX side, you receive the payload, but the payload length is wrong?

    ACK payloads should be read out as a normal PRX reads out payloads. The "R_RX_PL_WID" command byte is "0x60", but this does not mean that the returned length this value. I believe that you are not reading the register "R_RX_PL_WID" correctly. Do you see the same issue on PRX when reading "R_RX_PL_WID" ?

    Best regards Håkon

Children
No Data
Related