This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

how to set nRF24 PTX with ack payload

Hi,Nordic now, nRF52 as PRX, nRX24 as PTX.

App process

  1. PTX send data via ESB, PRX can receive

    But nRF24 can not receive event HAL_NRF_TX_DS, why?

  2. Then nRF52 send payload, but nRF24 can not receive

If nRF52 as PTX, nRF24 as PRX, it's OK.

Could you tell me how to set nRF24?

Thanks.

nrf52_esb_prx.rar

nRF24_usb_hid_rf.rar

Parents
  • Hi Chaw,

    We are suspecting it was the bug with the inverted NO_ACK bit on the nRF5 ESB library.

    Could you try this workaround file to replace the original one and let me know if it fixed. Two modification been made on line 482 and 694.

    nrf_esb_NOACK_Fix.c

    [update] Here is an example of using nRF24LU1 as PTX and nRF52 as PRX with ACK payload.

    ptx - Copy.zip

    esb_prx - NoAckFix - Legacy.zip

  • @Chaw: thanks, but could you let me know exactly in which mode do you have the issue ? What I can see in the code is that the NRF52 is in PRX mode, this is the mode you said works fine:

    1. nRF24 as PTX, nRF52 as PRX 2. nRF24 send data to nRF52, it work well.

    Why should I look at the code ?

    Please be aware, you don't have to switch the PTX to PRX mode to be able to receive ack payload ! You simply enable ACK payload in the configuration and you should be able to receive ack payload. Please check out the Figure 11 in nRF24LU1P Product Spec you can find the mode switching is done automatically, you only have to wait for the TX_DS and RX_DR IRQ return when there is Ack payload return.

    Note that you need to prepare data in the TX buffer on the PRX side so that the PRX can send something back in the ack payload. I don't see that in your code in the application, which data you are expecting from the NRF5 to send back to the nRF24 ?

Reply
  • @Chaw: thanks, but could you let me know exactly in which mode do you have the issue ? What I can see in the code is that the NRF52 is in PRX mode, this is the mode you said works fine:

    1. nRF24 as PTX, nRF52 as PRX 2. nRF24 send data to nRF52, it work well.

    Why should I look at the code ?

    Please be aware, you don't have to switch the PTX to PRX mode to be able to receive ack payload ! You simply enable ACK payload in the configuration and you should be able to receive ack payload. Please check out the Figure 11 in nRF24LU1P Product Spec you can find the mode switching is done automatically, you only have to wait for the TX_DS and RX_DR IRQ return when there is Ack payload return.

    Note that you need to prepare data in the TX buffer on the PRX side so that the PRX can send something back in the ack payload. I don't see that in your code in the application, which data you are expecting from the NRF5 to send back to the nRF24 ?

Children
No Data
Related