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

ESB - wrong frequency data received/RSSI = 0

Hi,

We have a device that is using Nordic's ESB protocol. We want to use different frequencies to avoid collisions and for that we also need dynamic frequency handling. So what I am doing right now I have a TX device with fixed frequency eg 2438 (out of 5 predefined frequencies). Then RX scans those 5 frequencies searching for TX. Here are 2 problems I have:

1) Sometimes RX will false detect data on different frequency. I am pretty sure that this has to do with RF selectivity - I am sending on 2438 but I sometimes receive data on 2450. Frequencies are relatively close so I guess it can happen right? What puzzles me is that if I receive data on different frequency then expected it always has RSSI = 0. Is RSSISAMPLE register zeroed internally to indicate this is an "error"?

2) I am switching frequencies to dynamically handle few frequencies. My change frequency routine looks like this:
   

    nrf_esb_stop_rx();
    nrf_esb_flush_rx();
    nrf_esb_set_rf_channel(channel);
    nrf_esb_start_rx();

where channel is new frequency. I expect, that nrf_esb_flush_rx() will remove all items from ESB queue so I can be sure that anything received after setting a new frequency is really received on that frequency and is not leftover from previous frequency - like packet that was in ESB queue at moment of switching frequency. But still looks like I always get 1-2 packets from previous frequency (through the esb_event_handler). 

Issue 1) is much more important and I would appreciate answer for that one the most.

Thanks,

Michal

EDIT: RSSI = 0 turned out to be a software bug, so I just need a confirmation that is possible that RX receive data on frequency different than TX is sending on. RSSI seems to be much lower for those packets, which makes sense according to document infocenter.nordicsemi.com/index.jsp

Related