Hello everyone~
These days I’m working on a project using ATmega32 and nRF24L01 to transmit data. And after studying the technical reference, I have got some questions about nRF24L01.
Q1: Is it correct if I use the following commands to write “Tx Payload”:
CSN_low SPI_Command"0xA0" then " Payload data" then CSN_High? Can I do these commands either CE is high or low ?
Q2: When I want to transmit a data package, I have to “Keep CE high at least 10us”. What will happen if I always keep the “CE” pin high?
Q3: These are the following words in the technical reference that made me so confused " Page 14. Enhanced ShockBurst Transmitting Payload.
Point 6. The device goes into Standby_1 Mode if CE is low. Otherwise the next payload in TX FIFO will be sent. If TX FIFO is empty and CE is still high,the device will enter Standby_2 Mode."
What does it mean by " the next payload in TX FIFO will be sent"? Does it have another TX FIFO or just means something else?
And thank you all guys~ Hope to hear some replies~~lol
Hi there~
I have worked it for a whole afternoon and finally got it worked! nRF24L01 is the most difficult module I have ever used~lol
I have discovered some kinds of “bugs” on this module, hope to share with you all~
When I use Enhanced ShockBurst module, 16bits CRC, data pipe0, “default TX and RX address setting”, I can hardly get even 1bit correct data( IRQ pin remain High all the time). But when I change the address setting, use such as" 0xCC, 0xC3, 0x3C, 0xC3,0xCC" for both TX and RX, to my surprise, it receive correct data package immediatily… Is it a kind of “Bug” or something else? Does any of you meet the same problem before? I think each byte of address must not be the same…or it will not work… but the technical reference didn’t say that.
Hope to hear some replies~ Thank you guys
Still waiting for solution~~
Hi,
Basically you are already on the right track.
Just have a look at the “Note” on page 25 of the datasheet:
http://www.nordicsemi.com/files/Product … n_v2_0.pdf
If I understand correctly, 0xC3 , 0x3C should even work better than 0xCC (which looks like preample 01010101b).
The reason behind this stuff is that the receiver puts out a continuous random stream of zeros and ones, just because of internal and external noise sources. Only when a transmitter is within the range, the transmitted signal determines the sequence at the receiver output.
Good luck!
Best regards,
Marco
Well, thank you for pointing out the key to my question~
The company which sold me the module only translated part of the technical reference into Chinese~( I’m from Mainland China )…So, thx again and I’ll read the document U gave me carefully~
Best Wishes
Lyn