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

NRF24L01+ Auto Ack behaviour

Hi,

I am trying to understand the behavior of auto acknowledgement with payload for an application I am working on, I am hoping for some clarification on how ACK with payload should behave.

The flow of the application is as follows:

The primary receiver does not send an ACK with payload for the packet sent to the alternate address. It appears that the primary transmitter does not get an interrupt for data sent on that pipe. The primary receiver does receive the packet.

This is not expected behavior. I would expect that an AUTO ACK would occur or a MAX_RT signaled if the packet on the alternate pipe was not acknowledged. I see the ACK with payload as an opt in. If there is an ACK payload queued for the pipe it is send with the ACK if not then the packet is simply ACKed with out payload. Is my expectation of behavior correct?

Parents
  • Hi,

    1. Just to a verification; the TX_ADDR and RX_ADDR_P0 is set equal on the transmitter side?
    2. If you scope pin "VDD_PA", it will go high when a transmission occurs. Does it go high on your PTX? You can scope the same pin on the PRX to see if it actually sends an ACK as well.
    3. Have you verified that your SPI is set up correctly? Try reading a known register, like "RF_CH" or "EN_AA" when the nRF has just powered up. EN_AA should be 0x3F, RF_CH should be 0x02.

    Best regards Håkon

Reply
  • Hi,

    1. Just to a verification; the TX_ADDR and RX_ADDR_P0 is set equal on the transmitter side?
    2. If you scope pin "VDD_PA", it will go high when a transmission occurs. Does it go high on your PTX? You can scope the same pin on the PRX to see if it actually sends an ACK as well.
    3. Have you verified that your SPI is set up correctly? Try reading a known register, like "RF_CH" or "EN_AA" when the nRF has just powered up. EN_AA should be 0x3F, RF_CH should be 0x02.

    Best regards Håkon

Children
No Data
Related