If I am not mistaken the speed of the nrf2401 is dictated by the speed of the MCU. If you need more speed on the receiver side you could always overclock your MCU. How are you measuring the amount of data received?
Ive been abusing my mirf’s with 20 byte payloads hundreds of times per second.
I had a 19.2k LCD hooked to the (RX) MCU and I was missing a lot of data. So I decide to use hyperterminal at 115.2 and all was well.
I’m not sure what chip or language you are using?
Overclocking does have it’s side effects. All time sensitive commands i.e. PAUSE, SEROUT, etc are all effected. For instance over clocking (2x) would make a PAUSE of 2000 = 1000. And baud rates are equally changed. I.E. you would use the baud rate for 4800kbps for 9600kbps.
But your clockin clockout would jump from ~50khz to ~100khz at (2x).
I wish I had my hands on a 24l01. :? my configuration is 250kb, 1 channel, 16b crc nothing special at all. my PIC is actually overclocked 5x. ( Had to open the box) I use PIC BASIC so I dont define OSC so it’ll default to 4mhz, and then I use an 20mhz OSC and set ICPROG for HS. I also use usart for sending out data to rest of my circuit. That way I can grab data before its over written. This level of over clocking is fairly extreme and well out of spec. But I need it to handle some other stuff.
As i said I use PICBASIC. C makes my eyes hurt. So I cant fully grab what your doing with your program. Sorry cant be of more help there.
What I was trying to say in my first post was that perhaps your MCU on the RX side was busy doing something else like sending data to an LCD and wasn’t getting the data before it was overwritten.
Hopefully one of these guys proficent in C can give ya a hand.