Hello Sir, I’ve been used nRF24L01P controlled by DSP to transmit and receive data for few months. The nRF24L01P is run in 1Mbps mode. The SPI of DSP is set to send 8 bits each time, and it’s Baud rate is 1M. However, it’s practical data rate is looooower than 1M. Based on situations above, my questions are as follow:
- If the nRF24L01P send two bytes each time, how high could the data rate be? Does the Baud rate affects the data rate?
- How high could the data rate be in the two modes (1Mbps and 2Mbps) of nRF24L01P? If I want to get the highest practical data rate, must I send 32 bytes each time?
- Whether the structure of my program affects the data rate? Here is the program:
Initialization part:
void NRF24L01Int()
{
delay_loop();
GpioDataRegs.GPADAT.bit.GPIOA5=0;
GpioDataRegs.GPFDAT.bit.GPIOF3=1;
GpioDataRegs.GPFDAT.bit.GPIOF2=0;
GpioDataRegs.GPADAT.bit.GPIOA8=1;
NRFWriteReg(W_REGISTER+CONFIG,0x00);
NRFWriteReg(W_REGISTER+FLUSH_TX,0x00);
NRFWriteReg(W_REGISTER+SETUP_AW,0x03);
NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);
NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);
NRFWriteReg(W_REGISTER+EN_AA,0x01);
NRFWriteReg(W_REGISTER+EN_RXADDR,0x00);
NRFWriteReg(W_REGISTER+SETUP_RETR,0x00);
NRFWriteReg(W_REGISTER+RF_CH,0x40);
NRFWriteReg(W_REGISTER+RF_SETUP,0x07);
NRFWriteReg(W_REGISTER+CONFIG,0x0e);
}
Transmition part:
while(1)
{
NRFWriteReg(W_REGISTER+STATUS,0x70);
NRFSetTxMode();
sta.all=NRFReadReg(R_REGISTER+STATUS);
if(sta.bit.MAX_RT)
{
NRFWriteReg(FLUSH_TX,0x00);
}
}
Thank you!