I've been trying to send fast data with NRF24L01 for a long time. In order for the project to meet its requests, 32bytes of data must be on the Receiver side at a maximum of 400us. I'm currently seeing 424us. The content of the code is as follows:
I init in NRF24L01 "main"
After 10ms, the first data is gone and after that, I send data by looking at the TX_DS bit. Whenever the TX_DS bit is one, I send 32bytes of data again and the transactions are carried out in this way at regular intervals.
This is my init function as you see on the picture above. In order to avoid delays I used shockburst mode instead of enhanced shockburst.
I didnt use ARC to avoid delays.
My SPI works on 10MHZ and I also see this in SCK pin of NRF24L01.
There is not any switching between RX and TX, When I initialize one of the NRF24L01 as a TX it stays always in TX mode.
My SPI send 1 byte to the NRF24L01 at 2.9us and wait for other 1byte at 650ns (until 32byte)
What should I do to gain 24us? Should I focus on SPI or NRF24L01 initializatin?