How to avoid data collision in a network of NRF devices where only 2 NRF want to communicate with each other and others dont get this data ?

Hello,

We are using NRF24L01 as a transreceiver. We have a network of NRF devices operating individually and we want one NRF to communicate only with its respective NRF. However the data collision happens during this. The NRFs in the network also receives this data despite keeping the different frequency.

We cant have multiple frequencies for our every product.

So, is there any way to avoid data collision / interference so that only 2 desired NRF will communicate with each other and other NRF devices in the network wpn't get that data ??

Thanks and Regards ,

Harshal

 

Parents Reply Children
  • Hi Harshal, 

    Okey, that mean the packet has been transmitted from the PTX but not ACKed from the PRX. 
    So it's either the PRX didn't receive the packet or the ACK packet from the PRX not reach the PTX. 

    So have you checked if the packages are received on the PRX's side ? You can just make a test and store all the packages you receive on PRX and check if any missing manually on the PRX. (you need to increase a counter in the data payload for each packet)

    How often do you see the MAX_RT hit ? 


  • So have you checked if the packages are received on the PRX's side ?

    Yes, At the PRX side, it shows RX FIFO Empty. and RX_DR is 0.

    How often do you see the MAX_RT hit ? 

    After power on and successful initialization of NRF the CHECK COMMUNICATION command is sent from the PTX to the PRX and in that we found that the MAX_RT exceeds every time.

  • Hi again, 

    Earlier you mentioned that: "It was happening with one or two out of every 15-16; but managed and fixed it." 

    But now you say "we found that the MAX_RT exceeds every time." so what have changed ? 

    Are you saying that you don't receive anything at PRX at all ? 

    If you transfer 20 bytes or lower do you receive anything ? 

    If you increase the payload size , at which exact point you don't receive any packet ? 

  • Hello Mr. Hung,

    The above issue had been fixed as we had error in the code. Now we have been having a smooth communication between the PTX and PRX without any messages getting lost.

    However, is there a way to reset the NRF module by the microcontroller (any command or configuring any register since we dont have any reset pin directly between them). Because the PTX sometimes seems to stop sending the data so can it be reseted by the MCU so that it can start sending again.

  • Hi Harshal

    I agreed to help Hung out with this case, since I have more experience with the nRF24L01+. 

    Unfortunately this device doesn't have a reset feature available, neither as a hardware pin or as an SPI instruction. 

    The only way to properly reset it would be to power it off completely by disconnecting the supply for a short period. 

    Best regards
    Torbjørn

Related