The chip I am using is the nRF24L01.
Not the nRF24L01P.
One module is Rx-receiver and two modules are Tx-transmitter.
The test is carried out with one Rx module and one Tx module.
On the Tx-transmitter, Rx-receiver, the antenna is drawn in a pattern.
It is the same pattern antenna used for 2.4GHz Bluetooth communication in the past.
The circuit was referenced in the data sheet.
Transmitter and receiver are operating within 1m.
Tx-transmitter transmits 32byte data at 250Hz cycle.
The Rx-receiver is receiving well, but communication is not possible at a certain location and angle.
When communication is not possible, put an aluminum cooking foil near the transmitter or receiver to establish communication again.
The register settings are as follows.
Rx-receiver | Tx-transmitter |
void nRF24_Init(void) ///////////////// Initialize nRF //////////////////////////////////// // Initialize the nRF24L01 to its default state // Set RF channel // Set data rate // Set CRC scheme // Set address width, its common for all pipes (RX and TX) // Configure RX PIPE1 // program address for pipe // Auto-ACK: enabled, payload length: 32 bytes // Configure RX PIPE2 // program address for pipe // Auto-ACK: enabled, payload length: 32 bytes // Set TX power for Auto-ACK // Set operational mode (PRX == receiver) // Clear any pending IRQ flags // Wake the transceiver // Enable DPL // Put the transceiver to the RX mode |
void nRF24_Init(void) nRF24_WriteReg(nRF24_CMD_ACTIVATE, 0x73); nRF24_WriteReg(nRF24_REG_DYNPD, 0x00); // Clear the FIFO's // Clear any pending interrupt flags // Deassert CSN pin (chip release) // Initialize the nRF24L01 to its default state // program TX address |
- Is this problem due to the antenna?
If the distance between Tx and Rx is less than 1m, will it be affected by the antenna? - Is there anything I need to change in the above settings?
- Is there a function to automatically change the channel in an area where RF 2.4GHz communication is not available in the nRF24L01 chip?