nRF24L01 Auto Ack not working

I have an application where I am sending a fixed packet length of 32 bytes to data pipe 1. I have set the data width to 32, I have auto acknowledge enabled on P1. I have the TX and P0 address of the transmitter set to the P1 address of the receiver. The data makes it to the receiver OK and is very repeatable but I don’t ever get an acknowledge interrupt. I always get the MAX_RT interrupt. At one time, I did have the auto-acknowledge working.

I have read back all the registers and they are what I expect them to be.

I am racking my brains trying to figure out what could possibly suppress the auto-ack mechanism. Anyone have any ideas what might be going astray?

Regards,

kpainter

You will only get an acknowledgement from pipe 0. Sorry. You will have to do this in software.

Ron

Hi Ron,

I am having trouble getting a message to post due to spam filter. I am expecting the ack on pipe 0. I don’t think I was clear. ptx(tx_addr), ptx(rx_p0) and prx(rx_p1) are set to be all the same address. en_aa on prx and ptx, pipe 0 and 1 are set. I never get tx_ds interrupt.

Regards,

kpainter

Hi,

Make sure that the last byte for ALL pipes addresses is unique. Also, be careful that you need to write LSB first for the addresses. You need to have auto_ack activated for pipe1 at the receiver and for pipe0 at the transmitter. The Pipe0 address at the transmitter must be equal to the Pipe1 address at the receiver.

Hi Lucicop,

Thanks for your response. That was it. I am having terrible problems getting past the spam filter on this forum so I can’t elaborate. Forum is broken for me. Thanks,

kpainter