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

ESB with different frequency

Hi! I have used NRF52832 on PCA10040. I want use several pair (master and slave) in one room. For this I try to select a different frequency for each pair. But, when I try to make this, I have some problem.

Case: one ESB master and one ESB slave. Master send always packet at channel 2 (2402 MHz). Slave listen each channel 25ms and after make a list of all frequencies with received packets and average RSSI.

  • Channel = 1; Count Packet = 76; RSSI = 31
  • Channel = 2; Count Packet = 79; RSSI = 23
  • Channel = 3; Count Packet = 78; RSSI = 22
  • Channel = 18; Count Packet = 3; RSSI = 80
  • Channel = 50; Count Packet = 7; RSSI = 78
  • Channel = 51; Count Packet = 1; RSSI = 78
  • Channel = 66; Count Packet = 49; RSSI = 75
  • Channel = 67; Count Packet = 20; RSSI = 73
  • Channel = 90; Count Packet = 44; RSSI = 74

How it is possible? And what strategy of selecting channels can I used for normal working of all pairs?

Parents
  • I know this is a very old post, but I stumbled over the phenomenon (receiving at channel 0 packets from channel 80, so here is my interpretation:

    The radio listens on a channel and tries to capture an address event. As long as it does not capture an address event from the wrong channel, a packet from the chosen channel will almost always be strong enough to dominate the crosstalk and will be received. But once an expected address is parsed from a crosstalk channel, the receiver clock is running and the radio will not be available for reception from the chosen channel.

    As to the example, an RSSI of -23 in channel 2 and -22 in channel 3 suggests a crystal that may be a bit off, but in any case it means that you have a VERY short distance between the sender and the receiver. At any reasonable distance, your RSSI would have fallen somewhat and with it, the chances of receiving in the other channels. The spec says -56dB attenuation when you are more than 3 MHz away.

    However, this does not explain why you capture crosstalk better on some channels, even far away, than on other channels. The explanation to this is probably in the GFSK modulation and the sampling of the radio, in particular when the sampling and the modulation are in some favourable harmonic relationship. You certainly observe that all distant channels in the list are in multiples of 8MHz distance from the base channel and that the best group (66/67) is in a 64MHz distance. If you sample at 8MHz without anti-aliasing, you see the same phase relations of samples if you are a multiple of 8Mhz off. The antialiasing filter (if there is one) does not reduce these phase relations to the noise level and you can still capture packets. 

    In summary, there is no simple way to chose channels to avoid crosstalk. The best advice was not only to select different channels but also use different addresses in the different channels in a proprietary protocol in order to avoid collisions.

Reply
  • I know this is a very old post, but I stumbled over the phenomenon (receiving at channel 0 packets from channel 80, so here is my interpretation:

    The radio listens on a channel and tries to capture an address event. As long as it does not capture an address event from the wrong channel, a packet from the chosen channel will almost always be strong enough to dominate the crosstalk and will be received. But once an expected address is parsed from a crosstalk channel, the receiver clock is running and the radio will not be available for reception from the chosen channel.

    As to the example, an RSSI of -23 in channel 2 and -22 in channel 3 suggests a crystal that may be a bit off, but in any case it means that you have a VERY short distance between the sender and the receiver. At any reasonable distance, your RSSI would have fallen somewhat and with it, the chances of receiving in the other channels. The spec says -56dB attenuation when you are more than 3 MHz away.

    However, this does not explain why you capture crosstalk better on some channels, even far away, than on other channels. The explanation to this is probably in the GFSK modulation and the sampling of the radio, in particular when the sampling and the modulation are in some favourable harmonic relationship. You certainly observe that all distant channels in the list are in multiples of 8MHz distance from the base channel and that the best group (66/67) is in a 64MHz distance. If you sample at 8MHz without anti-aliasing, you see the same phase relations of samples if you are a multiple of 8Mhz off. The antialiasing filter (if there is one) does not reduce these phase relations to the noise level and you can still capture packets. 

    In summary, there is no simple way to chose channels to avoid crosstalk. The best advice was not only to select different channels but also use different addresses in the different channels in a proprietary protocol in order to avoid collisions.

Children
No Data
Related