NRF52 - ESB - Receiving duplicate packets

We are having some issues with ESB, it seems the automatic ACKs are not working properly and we get spammed with a lot of duplicates.

We believe the issue is because we start some function immediately when NRF_ESB_EVENT_RX_RECEIVED is triggered and because of this it doesn't have time to send an ACK.

How can we delay without blocking the CPU before starting our function?

This seems to work but is it the best way?

//event triggered

for(int i=0; i<50; i++){
nrf_delay_us(10);
}

//start function

Parents Reply
  • If the PRX want to send data to the PTX, then it don't disable esb or switch to tx, it simply call nrf_esb_write_payload() while in rx mode, then the packet will be appended to the next ack going from the PRX to the PTX. So there should be no need to disable esb or switch mode of operation to use nrf_esb_write_payload().

    If you look at the \examples\proprietary_rf\esb_low_power_prx you can see what I mean.

    Kenneth

Children
Related