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
  • Hi, thanks for the quick response! I appreciate it!

    Looking at the line; read_register(1d,05)

    It would appear that the Feature register (1d) is set (value 05). Doesn't this mean it is enabled? Or do I need to send another SPI ACTIVATE & 0x73 command?

    From what I can tell, these "troublesome" modules can be set to 250kb speed, so I assume these are + modules. Is there any other way to tell without actually looking at the chip? These modules have black epoxy over the chip which makes it unreadable for me.

Reply
  • Hi, thanks for the quick response! I appreciate it!

    Looking at the line; read_register(1d,05)

    It would appear that the Feature register (1d) is set (value 05). Doesn't this mean it is enabled? Or do I need to send another SPI ACTIVATE & 0x73 command?

    From what I can tell, these "troublesome" modules can be set to 250kb speed, so I assume these are + modules. Is there any other way to tell without actually looking at the chip? These modules have black epoxy over the chip which makes it unreadable for me.

Children
No Data
Related