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

To increase the range of NRF24L01+ module using shockburst mode

Hi,

I'm facing issue in the range of communication between the 2 NRF24L01+ modules(1452AB). My design is to interface the NRF24L01+ with more than 6 modules with one HUB. But for Now I'm testing only between 2 RF modules.

configuration of TX:

/*Transmission mode nRF*/
void TX_mode(void)
{
  /*standby-1 mode*/
  CE_LOW;
  /*Enable auto ACK data pipe 0*/
  writeRegister(WRITE_REG + EN_AA, 0x00);
  /*Enable RX addr of data pipe 0*/
  writeRegister(WRITE_REG + EN_RXADDR, 0x02);
  /*TX/RX address width is 5bytes(common for all data pipes)*/
  writeRegister(WRITE_REG + SETUP_AW, 0x03);
  /*Auto retransmit delay is 500us
   *Auto retransmit count is 10 on fail of AA*/
  writeRegister(WRITE_REG + SETUP_RETR, 0x00);
  /*Select the RF channel number
   *range of channel is 2^7 */
  writeRegister(WRITE_REG + RF_CH, 120); 
  /*Data rate is 250kbps
   *Output power is 0dbm(1mW)*/
  writeRegister(WRITE_REG + RF_SETUP, 0x23);
  /*flushing TX buffer*/
  flush_TX();
}

/*Reception mode nRF*/
void RX_mode(void)
{
  /*standby-1 mode*/
  CE_LOW;
  /*Enable auto ACK data pipe 0*/
  writeRegister(WRITE_REG + EN_AA, 0x00);
  /*Enable RX addr of data pipe 0*/
  writeRegister(WRITE_REG + EN_RXADDR, 0x02);
   /*TX/RX address width is 5bytes(common for all data pipes)*/
  writeRegister(WRITE_REG + SETUP_AW, 0x03);
  /*Select the RF channel number
   *range of channel is 2^7 */  
  writeRegister(WRITE_REG + RF_CH, 120);  
  /*Data rate is 250kbps
   *Output power is 0dbm(1mW)*/  
  writeRegister(WRITE_REG + RF_SETUP, 0x23);
  /*Number of bytes in RX payload in data pipe 0*/
  writeRegister(WRITE_REG + RX_PW_P1, TX_PLOAD_WIDTH);
}

And I check TX_ds & RX_dr bits for transmission and reception status respectively.

I noticed that range of 5m to 8m its working good!! but if I try more than this range I'm losing packets.

I have attached the hardware and software detail so please help me out and guide in this.

Hardware detials:

HW-NRF.PNG

RF.txt

  • Hello Mahesh

    Unfortunately, the trace code 1452AB indicates that this is a counterfeit chip, and not a chip from Nordic Semiconductor. Counterfeit chips are known to have (among other things) lower efficiency, shorter range, and be more sensitive to power supply noise. In some cases, the chips don't even work at all.

    I recommend you buy modules from one of our distributors. If you go to nordicsemi.com you will find a drop down menu in the bottom right corner. There you can choose your location and the distributors available for you will be listed. A list of our distributors is also found here.

    Best regards

    Jørn Frøysa

Related