NRF24 Status register has all bits set

Currently I am failing to make my two NRF24 modules communicate, to make sure the two modules weren't at a bas angle to each other to communicate I picked up and rotated my board that has the receiver attached. I just slowly rotated it in a kind of circular motion to see if holding it at a different angle would help the modules talk. Doing this triggered a breakpoint I set for when I have data, which is determined by checking bit 6 of the status reg is set and if there is data available for the pipe I am using, but when I hit this break point the status register had a value of 255, so all bits set, even the reserved bit 7. Does this mean anything? I would like to know in case it could help with my debugging, thanks.

I am using a PICF45K22 as the transmitter and this STM32 board as the receiver, https://stm32-base.org/boards/STM32F407VET6-STM32-F4VE-V2.0.html . This board has the built in nrf24 connector so wouldn't have thought it was losing power and resetting, but maybe. Thanks

  • Hi, 

    Please clarify which chip you are using ? 
    I don't think bad angle can completely break the signal. You should be able to receive signal even with bad tuning antenna if they are very close to each other. 
    I assume you have tested reading the registers on the transmitter and receiver and they showed correct values, correct? 

    Checking the power consumption is an easy way to see if there is any radio activity. 

  • I am using the nrf24L01+ and I have no way to measure the current, maybe this isn't a big issue. I was just hoping it might indicate what I am doing wrong on my setup. I just thought it was weird as most of the bits of the status register have a reset value of 0, so it wouldn't seem as though for example there was a bad power connection and it was resetting or something similar, this would also be unlikely due to the in built connector onto the stm board

  • Hi HMC,

    You can try to read the STATUS register before the PTX transmitting and try to read again after. We need to make sure that the communication between the L01+ chip and the host MCU is working correctly and you can read the correct value of the registers. 

    It's quite simple to measure the current consumption. You can do that even with a multimeter if you do transmitting/receiving continuously. 

  • I looked at the STATUS register  after transmitting and found my problem, I was pulling CS low, sending the write command, pulling CS high, then pulling CS low and then sending data before releasing CS again. Changed to pull CS low, send the write command and then the data, then pull CS high, now it works, thanks for the help

Related