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

  • sorry, my upload project has some problem. nRF24 as PTX, nRF52 as PRX. It's right. My app step is this:

    1. PTX(nRF24) send data to PRX(nRF52), PRX(nRF52) can receive data, it's OK
    2. Then PRX(nRF52) send ACK payload to PTX(nRF24), it's not OK. after step 1, I change nRF24 from PTX mode to PRX mode, you said, I do not need, I will try. But it still do not work. Maybe when PRX(nRF52) send ACK payload, I use wrong method, now I use

    tx_payload.noack = true; nrf_esb_write_payload(&tx_payload);

    from PRX(nRF52), I see TX success log, but same time, PTX(nRF24) do not receive this ACK.

    Could you check?

Reply
  • sorry, my upload project has some problem. nRF24 as PTX, nRF52 as PRX. It's right. My app step is this:

    1. PTX(nRF24) send data to PRX(nRF52), PRX(nRF52) can receive data, it's OK
    2. Then PRX(nRF52) send ACK payload to PTX(nRF24), it's not OK. after step 1, I change nRF24 from PTX mode to PRX mode, you said, I do not need, I will try. But it still do not work. Maybe when PRX(nRF52) send ACK payload, I use wrong method, now I use

    tx_payload.noack = true; nrf_esb_write_payload(&tx_payload);

    from PRX(nRF52), I see TX success log, but same time, PTX(nRF24) do not receive this ACK.

    Could you check?

Children
No Data
Related