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: