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

NRF24L01+ ACK with payload issues

Hello,

I am trying to implement a star network with more than one datapipes enabled, where (between other tasks) the PTXs devices have to synchronize their clocks (real time clocks) from the PRX device clock. So I want to pass the current time information from the PRX to the PTXs using the payload in acknowledgment packet.

I am using Enchanced Shockburst mode with dynamic payloads and acknowledgment with payload enabled.

I would like some confirmation in the following questions: On the PRX side,

  1. Is the payload always deleted from Tx FIFO after it is trasmitted with the acknowledgment packet?

  2. Assume there is not a payload in Tx FIFO for the corresponding datapipe of the received packet. In this case, the ack packet will be transmitted without payload, so on the PTX side TX_DS will be asseted but not RX_DR. Is that correct?

  3. Is there a way to use more than 3 datapipes in this mode (dynamic payload with payload in acknowledgment packet)?

Sorry if some of my questions have allready been answered in previous posts.

Thanks in advance

Argiris Th.

Parents
  • Hello.

    1. The payload will be deleted when it has been acknowledged by the other side.If the payload was sent together with an ACK from the PRX, the payload will be deleted when the next packet from the PTX is received.
    2. Yes
    3. You only have 3 TX buffers. So if you want to queue six packets containing a time stamp, you must implement this in your application. You can insert the first three, and then send the following three when you receive the TX_DS from the first ones.

    -Anders

Reply
  • Hello.

    1. The payload will be deleted when it has been acknowledged by the other side.If the payload was sent together with an ACK from the PRX, the payload will be deleted when the next packet from the PTX is received.
    2. Yes
    3. You only have 3 TX buffers. So if you want to queue six packets containing a time stamp, you must implement this in your application. You can insert the first three, and then send the following three when you receive the TX_DS from the first ones.

    -Anders

Children
Related