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

nRF24L01+ Enhanced ShockBurst problem

Hi,

I have two types of nRF24 equipped devices, let's call it a BaseStation and a Slave. BaseStation is configured as PTX, whereas Slave is configured as PRX. Both use Enhanced ShockBurst with auto-ACK and retransmissions. Communication works as a charm for 3 Slaves connected to BaseStation. Every 300ms the BaseStation sends ping to each Slave device on the list, utilizing auto-ACK feature to figure out if the Slave responded. The problem appears when there is 4'th Slave device connected to the BaseStation. In this case the BaseStation immediately looses connection to all Slaves.

It looks even worse - the BaseStation sends pings and receives ACKs, but the Slaves don't get anything (no Data Ready IRQ,STATUS and FIFO_STATUS registers indicate nothing was received).

Configuration should be OK (DPL_P0 = 1 ENAA_P0 =1 EN_DPL = 1 EN_ACK_PAY=1 TX_ADDR and RX_ADDR_P0 for PTX and RX_ADDR_P0 for PRX), since for 3 Slave devices it works as designed, for some reason it doesn't work for 4 and more devices. What could be difference between handling 3 and 4 devices? First thing that comes to my mind is that there are 3 TX and RX FIFOs, but before every transmission I flush them both.

One more remark: in PRX I set RX_PW_P0 to 2 bytes, since that's the size of ACK payload I use.

Best Regards Michal Frynas.

Related