Structure to hold mapping between virtual and physical channel numbers. More...

Detailed Description

Structure to hold mapping between virtual and physical channel numbers.

This driver will provide "virtual" channel numbers 0 to 7, which will be translated to "physical" channel numbers before being send to the transceiver. This is used to overcome the following limitations:

  • The transceiver does not support channel maps with varying distance between channels. However, e.g. the LoRa channels 10 - 16 in the 868 MHz band have a distance of 300 kHz, but channel 16 and 17 have a distance of 1 MHz.
  • The transceiver does not supports channel distances higher than 405.46 kHz.

This mapping overcomes both limitations be using 50kHz physical channel spacing and use the map to translate to the correct physical channel. This also allows to keep the same MDMCFG1 and MDMCFG0 configuration register values for all channel layouts. Finally, different channel sets can be used by different groups of IoT device in the same environment to limit collisions between those groups - assuming that enough non-overlapping channels are available.

The "virtual" channel (the channel number presented to RIOT) will be used as index in cc110x_chanmap_t::map, the value in there will give the corresponding "physical" channel number, or 255 if this virtual channel number is not available.

Definition at line 453 of file cc110x.h.

#include <cc110x.h>

Data Fields

uint8_t map [CC110X_MAX_CHANNELS]
 "Physical" channel numbers

The documentation for this struct was generated from the following file: