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

NRF51822 Receiving on the wrong address

Hi,

I have a case where the receive end event is triggered even though the receive base address and prefix shouldn't match. Some background: Initially the receiver is set to listen to a transmitter, let's call it A, on address A. After a while the receiver changes the base (BASE0) and prefix (PREFIX0) to listen to a new address, B. Even after this change then I can see that packets packets are received from transmitter A. When I turn off A and turn on B I also receive packets.

Only address 0 is enabled for reception. I've also called the disabled task before changing address to be sure.

Any ideas are most welcome.

Best regards, Andreas Wileur

Update: I found that disabling and reenabling the radio solved the problem:

NRF_RADIO->POWER = 0;   // Power down radio
NRF_RADIO->POWER = 1;   // Power up radio again

Of course it has to be re-initialized again but that is not a problem. I haven't read out the actual registers but it seems that they were not updated properly when written to. The power cycle fixed that.

Any Nordic employee that can comment on that?

Best regards, Andreas Wileur

Parents
  • This sounds like you either have configure the same address on several pipes, perhaps use another address length than you think and then the first three or four bytes match anyways? I would check to see if you actually close the pipe. Could it be that you are trying to close it when you get an interrupt? Does this happen all the time or is it just now and then?

    How do you check the receiving pipe? And is the payload received as expected? Do you bring the radio out of active mode before you re-configure it?

    Any chance you can post the code (or parts of it) that you are using?

Reply
  • This sounds like you either have configure the same address on several pipes, perhaps use another address length than you think and then the first three or four bytes match anyways? I would check to see if you actually close the pipe. Could it be that you are trying to close it when you get an interrupt? Does this happen all the time or is it just now and then?

    How do you check the receiving pipe? And is the payload received as expected? Do you bring the radio out of active mode before you re-configure it?

    Any chance you can post the code (or parts of it) that you are using?

Children
No Data
Related