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

MAX_RT interrupt still happens even if retransmit is off

Dear Nordic,

I met a problem while using nRF24L01+ about MAX_RT interrupt.

In my codes, I disabled RF HW retransmit (hal_nrf_set_auto_retr(0, RF_RETRANS_DELAY);) because I use our software codes to handle retransmit. Therefore, RF should not report "HAL_NRF_MAX_RT" interrupt. However, I still receive "HAL_NRF_MAX_RT" in very rare situations. I saw twice so far for a very long time.

My question is since RF module auto retransmition is off, why does nRF24L01+ still report "HAL_NRF_MAX_RT" interrupt?? Is this nRF24L01+ bug? Or how could I do to get rid of these
MAX_RT interrupt?

Parents
  • Hi Harry

    The MAX_RT interrupt occurs if no ACK is received, even when no retransmits are enabled. 

    In other words this will happen if you don't get an ACK on your TX packet. 

    Best regards
    Torbjørn

  • Thank your update.

    One more information: in our codes, we have disabled ACK by 

    hal_nrf_open_pipe(HAL_NRF_PIPE0, false);       // Open pipe0, without/autoack

    This means the receiver will never ACK the sender's TX.

    Two more questions:

    1. Based on your reply, MAX_RT occurs if no ACK. Since we have disabled ACK, I guess we should see MAX_RT interrupt very frequently, but why do we just rarely see the MAX_RT interrupt? (I saw twice so far for a very long time)

    2. We have used software to handle re-transmit. If we don't want MAX_RT interrupt, how could we do?

Reply
  • Thank your update.

    One more information: in our codes, we have disabled ACK by 

    hal_nrf_open_pipe(HAL_NRF_PIPE0, false);       // Open pipe0, without/autoack

    This means the receiver will never ACK the sender's TX.

    Two more questions:

    1. Based on your reply, MAX_RT occurs if no ACK. Since we have disabled ACK, I guess we should see MAX_RT interrupt very frequently, but why do we just rarely see the MAX_RT interrupt? (I saw twice so far for a very long time)

    2. We have used software to handle re-transmit. If we don't want MAX_RT interrupt, how could we do?

Children
Related