This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Can I get some clarification regarding pipes and addresses?

Hi,

I've asked a few questions previously regarding programming of the nRF24L01/+ for simple data interchange between two devices, and my questions were answered -- many thanks.

However I still don't seem to be able to get a PTX and a PRX device to 'talk' to each other, and I think it may be because I'm not doing the right thing regarding setting up the pipes and addresses. I've read through the relevant pages in the nRF24L01+ data sheet, but I must be 'thick' because I can't get things straight. I've also looked through the code in the RF24 library (for Arduinos), but to be honest I can't see how the functions work in that library -- or how the 'Getting Started.ino' example works, especially for PTX mode.

At present I'm setting 'Radio 0' to receive using pipe 0, and leaving its TX_ADDR at &H30E7E7E7E7E7, while 'Radio 1' is set to receive on pipe 1 with its address set to &H30C2C2C2C2C2 -- is that wrong? Then when either radio is set to PTX mode or PRX mode, I simply clear or set the PRX bit in the chip's CONFIG register -- with the CE line pulsed high for 20us in PTX mode, after loading the transmit data into the fifo.

There must be something wrong with the above, but I can't see what it is. I guess I'm also confused about the ACK packet which seems to be sent by the PRX device -- this is sent ahead of the returned payload, is it not?

I hope you can make sense of the above, and provide some clarification please.

Thanks, Jim

Parents
  • I know, it's confusing, the variants :) But the nRF2401 is very very very old, must be more than 12 years.

    On the nRF24L01P, Enhances Shockburst is enabled by default.

    On the nRF24L01, you need to call ACTIVATE to activate ESB (meaning auto ACK)

    Of course you have to make sure you don't disable ACK by using dynamic payload (set NO_ACK bit to high).

Reply
  • I know, it's confusing, the variants :) But the nRF2401 is very very very old, must be more than 12 years.

    On the nRF24L01P, Enhances Shockburst is enabled by default.

    On the nRF24L01, you need to call ACTIVATE to activate ESB (meaning auto ACK)

    Of course you have to make sure you don't disable ACK by using dynamic payload (set NO_ACK bit to high).

Children
No Data
Related