Interface definition for AT86RF2xx based drivers. More...
Interface definition for AT86RF2xx based drivers.
Definition in file at86rf2xx.h.
#include <stdint.h>
#include <stdbool.h>
#include "board.h"
#include "kernel_defines.h"
#include "net/netdev.h"
#include "net/netdev/ieee802154.h"
#include "net/gnrc/nettype.h"
#include "periph/spi.h"
#include "periph/gpio.h"
Go to the source code of this file.
Data Structures | |
struct | at86rf2xx_params |
struct holding all params needed for device initialization More... | |
struct | at86rf2xx_t |
Device descriptor for AT86RF2XX radio devices. More... | |
Macros | |
#define | AT86RF2XX_MAX_PKT_LENGTH (IEEE802154_FRAME_LEN_MAX) |
Maximum possible packet size in byte. | |
#define | AT86RF2XX_DEFAULT_TXPOWER (CONFIG_IEEE802154_DEFAULT_TXPOWER) |
Default TX power (0dBm) | |
#define | RSSI_BASE_VAL (-91) |
Base (minimal) RSSI value in dBm. | |
#define | MIN_RX_SENSITIVITY (-101) |
Min Receiver sensitivity value in dBm. | |
#define | AT86RF2XX_IS_PERIPH (0) |
Whether there is a periph version of the radio. | |
#define | AT86RF2XX_HAVE_ED_REGISTER (0) |
ED Register. | |
#define | AT86RF2XX_HAVE_SUBGHZ (0) |
Support for SubGHz bands. | |
#define | AT86RF2XX_HAVE_RETRIES (1) |
Frame retry counter reporting. | |
#define | AT86RF2XX_HAVE_RETRIES_REG (0) |
Frame retry counter register. | |
#define | AT86RF2XX_HAVE_TX_START_IRQ (0) |
TX Start IRQ. | |
#define | AT86RF2XX_RANDOM_NUMBER_GENERATOR (0) |
Random Number Generator. | |
#define | AT86RF2XX_SMART_IDLE_LISTENING (0) |
Smart idle listening feature. | |
#define | AT86RF2XX_PHY_STATE_RX AT86RF2XX_STATE_RX_ON |
Internal radio state equivalent to RX_ON. | |
#define | AT86RF2XX_PHY_STATE_RX_BUSY AT86RF2XX_STATE_BUSY_RX |
Internal radio state equivalent to RX_BUSY. | |
#define | AT86RF2XX_PHY_STATE_TX AT86RF2XX_STATE_PLL_ON |
Internal radio state equivalent to TX_ON. | |
#define | AT86RF2XX_PHY_STATE_TX_BUSY AT86RF2XX_STATE_BUSY_TX |
Internal radio state equivalent to TX_BUSY. | |
Typedefs | |
typedef struct at86rf2xx_params | at86rf2xx_params_t |
struct holding all params needed for device initialization | |
Functions | |
void | at86rf2xx_setup (at86rf2xx_t *dev, const at86rf2xx_params_t *params, uint8_t index) |
Setup an AT86RF2xx based device state. | |
void | at86rf2xx_reset (at86rf2xx_t *dev) |
Trigger a hardware reset and configure radio with default values. | |
void | at86rf2xx_set_addr_short (at86rf2xx_t *dev, const network_uint16_t *addr) |
Set the short address of the given device. | |
void | at86rf2xx_set_addr_long (at86rf2xx_t *dev, const eui64_t *addr) |
Set the long address of the given device. | |
uint8_t | at86rf2xx_get_phy_mode (at86rf2xx_t *dev) |
Get the PHY mode of the given device. | |
uint8_t | at86rf2xx_get_rate (at86rf2xx_t *dev) |
Get the current O-QPSK rate mode of the PHY. | |
int | at86rf2xx_set_rate (at86rf2xx_t *dev, uint8_t rate) |
Set the current O-QPSK rate mode of the PHY rate modes > 0 are proprietary. | |
void | at86rf2xx_set_pan (at86rf2xx_t *dev, uint16_t pan) |
Set the PAN ID of the given device. | |
void | at86rf2xx_set_txpower (const at86rf2xx_t *dev, int16_t txpower, uint8_t channel) |
Set the transmission power of the given device [in dBm]. | |
int8_t | at86rf2xx_get_rxsensitivity (const at86rf2xx_t *dev) |
Get the configured receiver sensitivity of the given device [in dBm]. | |
void | at86rf2xx_set_rxsensitivity (const at86rf2xx_t *dev, int8_t rxsens) |
Set the receiver sensitivity of the given device [in dBm]. | |
uint8_t | at86rf2xx_get_max_retries (const at86rf2xx_t *dev) |
Get the maximum number of retransmissions. | |
void | at86rf2xx_set_max_retries (const at86rf2xx_t *dev, uint8_t max) |
Set the maximum number of retransmissions. | |
uint8_t | at86rf2xx_get_csma_max_retries (const at86rf2xx_t *dev) |
Get the maximum number of channel access attempts per frame (CSMA) | |
void | at86rf2xx_set_csma_max_retries (const at86rf2xx_t *dev, int8_t retries) |
Set the maximum number of channel access attempts per frame (CSMA) | |
void | at86rf2xx_set_csma_backoff_exp (const at86rf2xx_t *dev, uint8_t min, uint8_t max) |
Set the min and max backoff exponent for CSMA/CA. | |
void | at86rf2xx_set_csma_seed (const at86rf2xx_t *dev, const uint8_t entropy[2]) |
Set seed for CSMA random backoff. | |
int8_t | at86rf2xx_get_cca_threshold (const at86rf2xx_t *dev) |
Get the CCA threshold value. | |
void | at86rf2xx_set_cca_threshold (const at86rf2xx_t *dev, int8_t value) |
Set the CCA threshold value. | |
int8_t | at86rf2xx_get_ed_level (at86rf2xx_t *dev) |
Get the latest ED level measurement. | |
void | at86rf2xx_set_option (at86rf2xx_t *dev, uint16_t option, bool state) |
Enable or disable driver specific options. | |
uint8_t | at86rf2xx_set_state (at86rf2xx_t *dev, uint8_t state) |
Set the state of the given device (trigger a state change) | |
void | at86rf2xx_tx_prepare (at86rf2xx_t *dev) |
Prepare for sending of data. | |
size_t | at86rf2xx_tx_load (at86rf2xx_t *dev, const uint8_t *data, size_t len, size_t offset) |
Load chunks of data into the transmit buffer of the given device. | |
void | at86rf2xx_tx_exec (at86rf2xx_t *dev) |
Trigger sending of data previously loaded into transmit buffer. | |
bool | at86rf2xx_cca (at86rf2xx_t *dev) |
Perform one manual channel clear assessment (CCA) | |
void | at86rf2xx_enable_smart_idle (at86rf2xx_t *dev) |
Enable the smart receive technology (SRT) | |
void | at86rf2xx_disable_smart_idle (at86rf2xx_t *dev) |
Disable the smart receive technology (SRT) | |
Channel configuration | |
#define | AT86RF2XX_MIN_CHANNEL (IEEE802154_CHANNEL_MIN) |
#define | AT86RF2XX_MAX_CHANNEL (IEEE802154_CHANNEL_MAX) |
#define | AT86RF2XX_DEFAULT_CHANNEL (CONFIG_IEEE802154_DEFAULT_CHANNEL) |
#define | AT86RF2XX_DEFAULT_PAGE (0) |
Flags for device internal states (see datasheet) | |
#define | AT86RF2XX_STATE_P_ON (0x00) |
initial power on | |
#define | AT86RF2XX_STATE_BUSY_RX (0x01) |
busy receiving data (basic mode) | |
#define | AT86RF2XX_STATE_BUSY_TX (0x02) |
busy transmitting data (basic mode) | |
#define | AT86RF2XX_STATE_FORCE_TRX_OFF (0x03) |
force transition to idle | |
#define | AT86RF2XX_STATE_RX_ON (0x06) |
listen mode (basic mode) | |
#define | AT86RF2XX_STATE_TRX_OFF (0x08) |
idle | |
#define | AT86RF2XX_STATE_PLL_ON (0x09) |
ready to transmit | |
#define | AT86RF2XX_STATE_SLEEP (0x0f) |
sleep mode | |
#define | AT86RF2XX_STATE_BUSY_RX_AACK (0x11) |
busy receiving data (extended mode) | |
#define | AT86RF2XX_STATE_BUSY_TX_ARET (0x12) |
busy transmitting data (extended mode) | |
#define | AT86RF2XX_STATE_RX_AACK_ON (0x16) |
wait for incoming data | |
#define | AT86RF2XX_STATE_TX_ARET_ON (0x19) |
ready for sending data | |
#define | AT86RF2XX_STATE_IN_PROGRESS (0x1f) |
ongoing state conversion | |
Internal device option flags | |
#define | AT86RF2XX_OPT_CSMA (0x0010) |
CSMA active. | |
#define | AT86RF2XX_OPT_PROMISCUOUS (0x0020) |
promiscuous mode active | |
#define | AT86RF2XX_OPT_PRELOADING (0x0040) |
preloading enabled | |
#define | AT86RF2XX_OPT_AUTOACK (0x0080) |
Auto ACK active. | |
#define | AT86RF2XX_OPT_ACK_PENDING (0x0100) |
ACK frames with data pending. | |