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

TX indentical packets & sleep problem

Hi, sending a data packet, then sleeping (memory retention mode), then sending another identical packet causes the receiver to send back an ACK for the first and trigger NRF_ISR(). It sends an ACK for the second packet but DOES NOT trigger NRF_ISR(). This is indicated on pg 33 of the prod spec 1.6 PDF.

BUT If the transmitter does NOT sleep between the two sends, both packets generate NRF_ISR() on the receiver. Is there a difference inserted into the otherwise packets that gets reset when the device goes to sleep (memory retention mode) and then wakes up?

Hope you had a great Christmas!

Thanks,

Mahesh

Parents
  • Hi Mahesh

     

    There is a 2-bit counter (PID) in the packet header (PCF) that is updated for every sent packet, and this counter is reset if you enter memory retention. 

    If the PID, payload and CRC is identical between packets the receiver will consider it a retransmission of the previous packet, and it will send an ACK without raising the RX interrupt. 

     

    One possible workaround to this is to ensure that there is some change in the payload (a single bit is enough), or to send two packets rather than one between each wakeup. 

     

    Best regards

    Torbjørn Øvrebekk

    Application Engineer

    Nordic Semiconductor

Reply
  • Hi Mahesh

     

    There is a 2-bit counter (PID) in the packet header (PCF) that is updated for every sent packet, and this counter is reset if you enter memory retention. 

    If the PID, payload and CRC is identical between packets the receiver will consider it a retransmission of the previous packet, and it will send an ACK without raising the RX interrupt. 

     

    One possible workaround to this is to ensure that there is some change in the payload (a single bit is enough), or to send two packets rather than one between each wakeup. 

     

    Best regards

    Torbjørn Øvrebekk

    Application Engineer

    Nordic Semiconductor

Children
No Data
Related