I have a pair of 24L01 transceivers set up as a simple remote transmitter and receiver. If I don’t enable the EN_AA function on the transmitter, they work fine and the receiver does auto acknowledge(as shown on the oscilloscope). When I enable the AA_P0 bit for the pipe I am using, the receiver does not acknowledge the packet, nor transmit an acknowledgement.
The other issue I have is if I send a single data byte multiple times, the receiver ignores all transmissions after the first byte. I know there is a PID counter that should tell the receiver it’s a new packet, and I even flush the TX buffer.
If I change the payload byte, the link works. I followed all the guidelines in the manual, and all else appears to work fine. Any ideas on either issue?
I finally figured it out. I assumed that the RX_PW_Px registers were to learn how many bytes were in the individual pipe. They are actually there to assign a maximum number of data bytes(width) each pipe’s FIFO can hold. When I wrote a 1 to pipe 0, both issues were solved. The data sheets are none-too-clear!
I’m glad to see you figured out the problem. You know, I’ve been thinking about writing a Jim Lynch-style tutorial on these chips. Do you think that it would benefit enough people for me to do it?
brennen:
I’m glad to see you figured out the problem. You know, I’ve been thinking about writing a Jim Lynch-style tutorial on these chips. Do you think that it would benefit enough people for me to do it?
Absolutely! They are amazing chips and easy to use (ahem!). I'll even throw in some Pic Basic routines for the non "C" types out there.
A good man indeed! I’ll definitely be looking for language translations so that as many people can use the chips as possible. And I’m glad to hear somebody (other than me) say that these chips are easy to use…normally people seem to think they’re more trouble than they’re worth! :?
andersonj55126:
This chip is easy to use. I have had some quirks but 90% of my usage worked with ease.
Here are a few things from Nordic support that may help people.
“Also after you set the power up bit, you must wait min 1.5ms before you do anything more.”
“ …make sure that after CE is set, you don’t do anything for min 4us.”
I actually had the .pdf of the “preliminary product specs” to work from.
When I (finally)downloaded the current product specs, it did make reference to the pipe widths needing to be more than zero. The interesting thing is that if the pipe is set to 0, the IRQ line will go low once! After being reset, it won’t go low again unless the packet payload byte is changed. Of course, the auto ack goes wacky too!