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
  • Hi Harshal, 

    Do you use any protocol with the nRF24L01 ? For example Enhanced Shock Burst ? 
    How do you configure the address ? 
    Could you show how exactly you configure different channels for each pair of devices ? When the channels are close to each other they can leak but I don't think they would if the channel band a far away from each other. 

Reply
  • Hi Harshal, 

    Do you use any protocol with the nRF24L01 ? For example Enhanced Shock Burst ? 
    How do you configure the address ? 
    Could you show how exactly you configure different channels for each pair of devices ? When the channels are close to each other they can leak but I don't think they would if the channel band a far away from each other. 

Children
  • Yes, we are using Enhanced Shock Burst.

    Also, the channels are close to each other i.e. all the NRF devices in the network are operating very close to each other.

    We configure different channels for each pair of devices from the microcontroller side via its firmware. 

  • Hi Harshal, 
    Could you let me know how you configure the addresses ? 
    Please make sure that each device has its own unique address. 

    Also please let us know how you configure the channel for each pair. Which exact channels you are configuring for each pair. 

  • Hello,

    We are setting the address by configuring the RF Channel register (RF_CH) to the frequency / channel we need. For example 10 , 11 , etc.

    Yes, every pair of NRF device (trans-receiver) has an unique address only for the communication between those two, but other NRF devices in the network are also getting the data even though they have the different frequency channel.

  • Hi Harshal, 

    I think you are confusing the address and the frequency/channel. 
    Here is what I can find in the nRF24L01+ specification: 


    Please tell us how you configure the address, not the channel. 

  • Hello Mr. Hung,

    1. The receiving address is configured using the RX_ADDR_P1 register (since we use data pipe 1) and sending address is configured using the TX_ADDR register. Also, RX_ADDR_P0 is set equal to the sending address for the Auto Acknowledgment to work.

    2.  We haven't configured the SETUP_AW register for address width setting but the Tx as well as Rx address is unique with the address length as 5 Bytes.

    3. We haven't set up the receiver (the other NRF in the pair of 2) as the PRX (Primary Receiver). Both the NRFs in the pair are configured as PTX only.  So, do we need to set up the the other NRF in the pair as the PRX or its okay to keep it as PTX ?

    4. Our application does not require NRFs to be in MultiCeiver mode; only one to one communication is needed withing the pair of 2 NRF devices where multiple such pairs of different frequency channel are present in the network.   

    5. To have unique address is to have unique sending and receiving address for every device ?

    Thanks and Regards !!

    Harshal

Related