Configuration of the transceiver to use. More...

Detailed Description

Configuration of the transceiver to use.

Warning
Two transceivers with different configurations will be unable to communicate.

The data uploaded into configuration registers are stored in cc110x_conf. Most of them cannot be changed, as the driver relies on their values. However, the base frequency, the symbol rate (which equals the bit rate for the chosen modulation and error correction) and the channel bandwidth can be configured using this data structure.

Please note that while the CC1100/CC1101 chip is compatible with a huge frequency range (300 MHz - 928 MHz), the complete circuit is optimized to a narrow frequency band. So make sure the configured base frequency is within that frequency band that is compatible with that circuit. (Most break out board will operate at the 433 MHz band. In the EU the 868 MHz band would be more interesting, but 433 MHz is license free as well. In the USA the 915 MHz band is license free.

Please verify that the driver is configured in a way that allows legal operation according to rules and laws that apply for you.

Definition at line 351 of file cc110x.h.

#include <cc110x.h>

Data Fields

uint8_t base_freq [3]
 Base frequency to use.
 
uint8_t fsctrl1
 FSCTRL1 configuration register value that affects the intermediate frequency of the transceiver to use. More...
 
uint8_t mdmcfg4
 MDMCFG4 configuration register value that affects channel filter bandwidth and the data rate. More...
 
uint8_t mdmcfg3
 MDMCFG3 configuration register value that affects the data rate. More...
 
uint8_t deviatn
 DEVIANT configuration register that affects the amount by which the radio frequency is shifted in FSK/GFSK modulation. More...
 

Field Documentation

◆ deviatn

uint8_t cc110x_config_t::deviatn

DEVIANT configuration register that affects the amount by which the radio frequency is shifted in FSK/GFSK modulation.

See also
cc110x_config_t::mdmcfg4

See page 79 in the data sheet.

In an ideal world the channel bandwidth would be twice the channel deviation. In the real world the used channel bandwidth is higher. Assuming a 26 MHz crystal and GFSK modulation (the driver will configure the transceiver to use GFSK) the deviation

uint8_t exponent = (deviatn >> 4) & 0x07;
int32_t mantissa = deviatn & 0x07;
double deviation = (8 + mantissa) * 26000.0 / (1L << (17 - exponent));

For reliable operation at high symbol rates, the deviation has to be increased as well.

Definition at line 419 of file cc110x.h.

◆ fsctrl1

uint8_t cc110x_config_t::fsctrl1

FSCTRL1 configuration register value that affects the intermediate frequency of the transceiver to use.

Note
The 4 most significant bits have to be 0.

Assuming a 26 MHz crystal the IF is calculated as follows (in kHz):

double intermediate_frequency = 26000 / 1024 * fsctrl1;

Definition at line 364 of file cc110x.h.

◆ mdmcfg3

uint8_t cc110x_config_t::mdmcfg3

MDMCFG3 configuration register value that affects the data rate.

See also
cc110x_config_t::mdmcfg4

See page 76 in the data sheet.

Assuming a 26 MHz crystal the symbol rate of the transceiver is calculated as follows (in kBaud):

uint8_t exponent = mdmcfg4 & 0x0f;
int32_t mantissa = mdmcfg3;
double baudrate = (256 + mantissa) * 26000.0 / (1L << (28 - exponent));

Definition at line 396 of file cc110x.h.

◆ mdmcfg4

uint8_t cc110x_config_t::mdmcfg4

MDMCFG4 configuration register value that affects channel filter bandwidth and the data rate.

See page 76 in the data sheet.

Assuming a 26 MHz crystal the channel filter bandwidth is calculated as follows (in kHz):

uint8_t exponent = mdmcfg4 >> 6;
uint8_t mantissa = (mdmcfg4 >> 4) & 0x03;
double bandwidth = 26000.0 / (8 * (4 + mantissa) * (1L << exponent));

Definition at line 380 of file cc110x.h.


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