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 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

  • Hello Mr. Torbjørn,

    Can we use PWR_UP bit in the CONFIG register for reset by clearing it and setting it again to 1 ?

    Would it work a little bit similar way as a reset; because it seems to work that way as explained in the datasheet.

    Because powering OFF the NRF for a while is not convenient for our application.

  • Hi

    You can try to disable PWR_UP for a bit and see if this solves the issue, but I don't think clearing PWR_UP will clear all the FIFO's and registers of the device.

    Are you able to read out the value of the STATUS and FIFO_STATUS registers when you are in this state? 
    Possibly there is something in these registers that can point us to the source of the problem. 

    Best regards
    Torbjørn

Related