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

nRF24L01+ - EN_AA Enabled but acting as if it were disabled.

Hi, I have two different types of nRF24L01+ modules, both behave differently.

The "troublesome" module always has TX_DS asserted after a transmit, which is the same behavior described by the v2.0 documentation as if AUTO_ACK is disabled.

However, AUTO_ACK is set to 0x3f (all pipes).

Anyone have any suggestions?

Output of "good" module, which is the intended behavior;

>Sending...
read_register(1d,05) <br>
read_register(00,0f) <br>
write_register(00,0e) <br>
read_register(02,3f) <br>
write_register(02,3f) <br>
write_register(11,20) <br>
[Writing 16 bytes 0 blanks] <br>
read_register(17,01) <br>
read_register(17,01) <-- never receives an auto_ack (because no one is listening on other side)<br>
read_register(17,01) <br>
read_register(17,01) <br>
read_register(17,01) <br>
read_register(17,01) <br>
read_register(17,01) <br>
read_register(17,01) <br>
write_register(07,10) <br>
read_register(17,01) <br>
read_register(17,01) <br>
read_register(17,01) <br>
read_register(17,01) <br>
read_register(17,01) <br>
read_register(17,01) <br>
read_register(17,01) <br>
read_register(17,01) <br>
write_register(07,10) <br>
read_register(00,0e) <br>
read_register(00,0e) <br>
write_register(00,0f) <br>
write_register(07,70) <br>
read_register(1d,05) <br>
failed. <br>

Output of "troublesome" module, which is NOT the intended behavior;

> Sending... <br>
read_register(1d,05) <br>
read_register(00,0f) <br>
write_register(00,0e) <br>
read_register(02,3f) <br>
write_register(02,3f) <br>
write_register(11,20) <br>
[Writing 16 bytes 0 blanks] <br>
read_register(17,01) <br>
read_register(17,11) <-- couldn't have received an auto_ack, again EN_AA is set to 0x3f <br>
read_register(00,0e) <br>
read_register(00,0e) <br>
write_register(00,0f) <br>
write_register(07,70) <br>
read_register(1d,05) <br>
ok. <br>
Parents
  • It sounds like you have one module with the nRF24L01+ and one module with a nRF24L01. The nRF24L01 doesn't have the FEATURE register enabled by default. It would behave just as you describe. The nRF24L01 has the registers and functionality available, but you have to enable the FEATURE register first and then you will have it all available to your application.

Reply
  • It sounds like you have one module with the nRF24L01+ and one module with a nRF24L01. The nRF24L01 doesn't have the FEATURE register enabled by default. It would behave just as you describe. The nRF24L01 has the registers and functionality available, but you have to enable the FEATURE register first and then you will have it all available to your application.

Children
Related