Hi all!
I’m sending 8192 bytes through nRF24L01, using Brennens library on ATMega168.
The bandwidth archived so far is 338kbit/s with auto ack, and 478 kbit/s without.
I’ve modified tutorial 2 heavily, and what I’m doing is basiclly a start and stop thing: Upload a packet. When IRQ fires, upload next packet, and so on… The CE line is never low, so the nRF24L01 goes from TX MODE to Standby-II, and back again.
However, I would like to have higher bandwidth. I want to poll the FIFO_STATUS register to see if the TX FIFO is full. If it it’s not full, then I can upload a new packet, which gets transmitted as soon as the previous packet has been sent.
Like this:
while ( count < NUM_PACKETS)
{
while (!nrf24l01_fifo_tx_full())
{
// upload new packet
datas[0] = count & 0xFF; // low byte of counter
datas[1] = (count >> 8); //high byte of counter
nrf24l01_write_tx_payload(datas, PAYLOAD_SIZE, false); //upload to nRF
count++;
}
}
But it’s not working Any suggestions?
The nrf24l01_fifo_tx_full() seems to return false wether or not the TX FIFO is full or not, so the program constantly pumps data into the nRF24L01 causing massive packet loss.