216#define CC110X_MAX_FRAME_SIZE 0xFF
221#define CC110X_MAX_PAYLOAD_SIZE (CC110X_MAX_FRAME_SIZE - CC1XXX_HEADER_SIZE)
226#define CC110X_MAX_CHANNELS 8
231#ifdef MODULE_GNRC_SIXLOWPAN
232#define CC110X_DEFAULT_PROTOCOL (GNRC_NETTYPE_SIXLOWPAN)
234#define CC110X_DEFAULT_PROTOCOL (GNRC_NETTYPE_UNDEF)
246#ifndef CONFIG_CC110X_DEFAULT_CHANNEL
247#define CONFIG_CC110X_DEFAULT_CHANNEL (0U)
352 uint8_t base_freq[3];
490typedef struct __attribute__((packed)) {
Low-level ADC peripheral driver interface definitions.
CC110x/CC1200 adaption for Network interface API.
Definitions low-level network driver interface.
Low-level GPIO peripheral driver interface definitions.
cc110x_state_t
The state of the CC1100/CC1101 transceiver.
int cc110x_set_channel(cc110x_t *dev, uint8_t channel)
Hops to the specified channel.
int cc110x_full_calibration(cc110x_t *dev)
Perform a calibration of the frequency generator for each supported channel.
cc110x_tx_power_t
Enumeration over the possible TX power settings the driver offers.
#define CC110X_MAX_CHANNELS
Maximum number of channels supported by the driver.
#define CC110X_MAX_FRAME_SIZE
Length of a layer 2 frame.
int cc110x_set_tx_power(cc110x_t *dev, cc110x_tx_power_t power)
Set the TX power to the specified value.
int cc110x_apply_config(cc110x_t *dev, const cc110x_config_t *conf, const cc110x_chanmap_t *chanmap, uint8_t channel)
Apply the given configuration and the given channel map and performs a recalibration.
void cc110x_sleep(cc110x_t *dev)
Sets the transceiver into SLEEP mode.
int cc110x_setup(cc110x_t *dev, const cc110x_params_t *params, uint8_t index)
Setup the CC1100/CC1101 driver, but perform no initialization.
int cc110x_wakeup(cc110x_t *dev)
Wakes the transceiver from SLEEP mode and enters RX mode.
@ CC110X_STATE_CALIBRATE
Device is calibrating.
@ CC110X_STATE_RECEIVING
Receiving a frame just now.
@ CC110X_STATE_OFF
Devices is powered down.
@ CC110X_STATE_RXFIFO_OVERFLOW
RX FIFO overflown.
@ CC110X_STATE_FRAME_READY
Frame received, waiting for upper layer to retrieve it.
@ CC110X_STATE_FSTXON
Fast TX ready.
@ CC110X_STATE_SETTLING
PLL is settling.
@ CC110X_STATE_TX_COMPLETING
Waiting for transceiver to complete outgoing transmission.
@ CC110X_STATE_RX_MODE
Listening for frames.
@ CC110X_STATE_TX_MODE
Transmit mode.
@ CC110X_STATE_IDLE
IDLE state.
@ CC110X_STATE_TXFIFO_UNDERFLOW
TX FIFO underflown.
@ CC110X_TX_POWER_MINUS_30_DBM
-30 dBm
@ CC110X_TX_POWER_MINUS_10_DBM
-10 dBm
@ CC110X_TX_POWER_MINUS_15_DBM
-15 dBm
@ CC110X_TX_POWER_PLUS_5_DBM
5 dBm
@ CC110X_TX_POWER_0_DBM
0 dBm
@ CC110X_TX_POWER_NUMOF
Number of TX power options.
@ CC110X_TX_POWER_MINUS_20_DBM
-20 dBm
@ CC110X_TX_POWER_PLUS_7_DBM
7 dBm
@ CC110X_TX_POWER_PLUS_10_DBM
10 dBm
gpio_t spi_cs_t
Chip select pin type overlaps with gpio_t so it can be casted to this.
Mutex for thread synchronization.
Protocol type definitions.
Low-level SPI peripheral driver interface definition.
Structure to hold mapping between virtual and physical channel numbers.
Configuration of the transceiver to use.
uint8_t mdmcfg4
MDMCFG4 configuration register value that affects channel filter bandwidth and the data rate.
uint8_t deviatn
DEVIANT configuration register that affects the amount by which the radio frequency is shifted in FSK...
uint8_t fsctrl1
FSCTRL1 configuration register value that affects the intermediate frequency of the transceiver to us...
uint8_t mdmcfg3
MDMCFG3 configuration register value that affects the data rate.
Buffer to temporary store incoming/outgoing packet.
uint8_t pos
Index of the next cc110x_framebuf_t::data element to transfer.
uint8_t len
Length of the frame in bytes.
Structure holding the calibration data of the frequency synthesizer.
char fscal2
VCO current calibration, independent of channel.
char fscal3
charge pump current calibration, independent of channel
Structure holding all parameter for driver initialization.
const cc110x_config_t * config
Pointer to the configuration of the base frequency, data rate and channel bandwidth; or NULL to keep ...
const cc110x_chanmap_t * channels
Pointer to the default channel map.
spi_t spi
SPI bus connected to the device.
const cc110x_patable_t * patable
Pointer to the PATABLE to use.
gpio_t gdo2
GPIO pin connected to GDO2.
spi_clk_t spi_clk
SPI clock to use (max 6.5 MHz)
spi_cs_t cs
GPIO pin connected to chip select.
gpio_t gdo0
GPIO pin connected to GDO0.
Structure that holds the PATABLE, which allows to configure the 8 available output power levels using...
Device descriptor for CC1100/CC1101 transceivers.
mutex_t isr_signal
Use mutex to block during TX and unblock from ISR when ISR needs to be handled from thread-context.
cc110x_state_t state
State of the transceiver.
const cc110x_chanmap_t * channels
Pointer to the channel map to use.
netdev_t netdev
RIOT's interface to this driver.
cc1xxx_rx_info_t rx_info
RSSI and LQI of the last received frame.
cc110x_tx_power_t tx_power
TX power of the receiver.
uint8_t channel
Currently tuned (virtual) channel.
uint8_t addr
Layer 2 address of this device.
cc110x_fs_calibration_t fscal
Frequency synthesizer calibration data.
cc110x_framebuf_t buf
Temporary frame buffer.
uint8_t rssi_offset
dBm to subtract from raw RSSI data
cc110x_params_t params
Configuration of the driver.
Received frame status information for most radios.
Structure to hold driver state.