Hi my ffriends,
I’m working on a wireless system called for me "Wireless Link Project", based on the nRF24L01 (non-Plus) transceiver.
I have two identical boards using an NXP MCF51MM256 MCU, and I’m trying to make them communicate in both directions using Auto-ACK.
Everything works fine when Auto-ACK is disabled, but when I enable it (EN_AA = 0x01, SETUP_RETR = 0x2F), I get this issue:
-
The first packet is transmitted and acknowledged correctly.
-
After that, no more ACKs are received.
-
The receiver stays active and correctly switches between RX and TX modes, but the link seems to hang after the first exchange.
-
STATUS and FIFO registers look normal, and CE/CSN timing is correct (verified with an oscilloscope).
Some extra details:
-
Both devices use the same 5-byte address on Pipe 0.
-
Channel = 8, 2 Mbps, 0 dBm output power.
-
CRC = 1 byte.
-
SPI clock = 3 MHz.
-
Power rails are clean, with 100 nF + 100 µF decoupling capacitors.
-
CE pulse timing follows the datasheet.
So basically, Auto-ACK works once after power-up and then stops.
I’ve tried flushing the FIFOs, clearing the STATUS register, and forcing RX mode again, but nothing helps.
Could you please:
-
Confirm if there are any known timing or configuration differences for Auto-ACK on the nRF24L01 (non-Plus), and
-
If possible, share a reference C library or example code that supports Auto-ACK and 8-byte payloads for bidirectional communication?
I’m using a custom SPI driver on the NXP microcontroller but can easily adapt any sample you provide.
Thanks a lot for your help and suport.
Best regards,
A. Molina