Interface definition for AT86RF215 based drivers. More...
Interface definition for AT86RF215 based drivers.
Definition in file at86rf215.h.
#include <stdint.h>
#include <stdbool.h>
#include "board.h"
#include "periph/spi.h"
#include "periph/gpio.h"
#include "net/netdev.h"
#include "net/netdev/ieee802154.h"
#include "net/gnrc/nettype.h"
#include "xtimer.h"
Go to the source code of this file.
Data Structures | |
struct | at86rf215_params |
struct holding all params needed for device initialization More... | |
struct | at86rf215 |
Device descriptor for AT86RF215 radio devices. More... | |
Macros | |
#define | AT86RF215_MAX_PKT_LENGTH (2047) |
Maximum possible packet size in byte. | |
#define | CONFIG_AT86RF215_USE_CLOCK_OUTPUT |
Set to 1 if the clock output of the AT86RF215 is used as a clock source on the board. More... | |
#define | CONFIG_AT86RF215_TRIM_VAL (0) |
Trim value for the external crystal oscillator. More... | |
#define | CONFIG_AT86RF215_DEFAULT_TXPOWER (CONFIG_IEEE802154_DEFAULT_TXPOWER) |
Default TX power (0dBm) | |
Typedefs | |
typedef struct at86rf215_RF_regs | at86rf215_RF_regs_t |
Registers for the Radio Frontend. | |
typedef struct at86rf215_BBC_regs | at86rf215_BBC_regs_t |
Registers for the BaseBand Controller. | |
typedef void(* | at86rf215_batmon_cb_t) (void *arg) |
Signature for the Battery monitor callback. More... | |
typedef struct at86rf215_params | at86rf215_params_t |
struct holding all params needed for device initialization | |
typedef struct at86rf215 | at86rf215_t |
Device descriptor for AT86RF215 radio devices. | |
Functions | |
void | at86rf215_setup (at86rf215_t *dev_09, at86rf215_t *dev_24, const at86rf215_params_t *params, uint8_t index) |
Setup an AT86RF215 based device state. More... | |
void | at86rf215_reset_and_cfg (at86rf215_t *dev) |
Trigger a hardware reset and configure radio with default values. More... | |
void | at86rf215_reset (at86rf215_t *dev) |
Trigger a hardware reset, configuration is retained. More... | |
uint16_t | at86rf215_get_addr_short (const at86rf215_t *dev, uint8_t filter) |
Get the short address of the given device form multi address filter. More... | |
void | at86rf215_set_addr_short (at86rf215_t *dev, uint8_t filter, uint16_t addr) |
Set the short address of the given device to multi address filter. More... | |
bool | at86rf215_get_framefilter_enabled (at86rf215_t *dev, uint8_t filter) |
Get whether a frame filter is enabled or not. More... | |
void | at86rf215_disable_framefilter (at86rf215_t *dev, uint8_t filter) |
Enables a frame filter. More... | |
void | at86rf215_enable_framefilter (at86rf215_t *dev, uint8_t filter) |
Disables a frame filter. More... | |
uint64_t | at86rf215_get_addr_long (const at86rf215_t *dev) |
Get the configured long address of the given device. More... | |
void | at86rf215_set_addr_long (at86rf215_t *dev, uint64_t addr) |
Set the long address of the given device. More... | |
uint8_t | at86rf215_get_chan (const at86rf215_t *dev) |
Get the configured channel number of the given device. More... | |
void | at86rf215_set_chan (at86rf215_t *dev, uint16_t chan) |
Set the channel number of the given device. More... | |
uint16_t | at86rf215_get_pan (const at86rf215_t *dev, uint8_t filter) |
Get the configured PAN ID of the given device from multi address filter. More... | |
void | at86rf215_set_pan (at86rf215_t *dev, uint8_t filter, uint16_t pan) |
Set the PAN ID of the given address filter. More... | |
int16_t | at86rf215_get_txpower (const at86rf215_t *dev) |
Get the configured transmission power of the given device [in dBm]. More... | |
void | at86rf215_set_txpower (const at86rf215_t *dev, int16_t txpower) |
Set the transmission power of the given device [in dBm]. More... | |
int8_t | at86rf215_get_cca_threshold (const at86rf215_t *dev) |
Get the CCA threshold value. More... | |
void | at86rf215_set_cca_threshold (at86rf215_t *dev, int8_t value) |
Set the CCA threshold value. More... | |
int8_t | at86rf215_get_ed_level (at86rf215_t *dev) |
Get the latest ED level measurement. More... | |
void | at86rf215_set_option (at86rf215_t *dev, uint16_t option, bool state) |
Enable or disable driver specific options. More... | |
ssize_t | at86rf215_send (at86rf215_t *dev, const void *data, size_t len) |
Convenience function for simply sending data. More... | |
int | at86rf215_tx_prepare (at86rf215_t *dev) |
Prepare for sending of data. More... | |
size_t | at86rf215_tx_load (at86rf215_t *dev, const uint8_t *data, size_t len, size_t offset) |
Load chunks of data into the transmit buffer of the given device. More... | |
int | at86rf215_tx_exec (at86rf215_t *dev) |
Trigger sending of data previously loaded into transmit buffer. More... | |
void | at86rf215_tx_abort (at86rf215_t *dev) |
Abort sending of data previously loaded into transmit buffer. More... | |
void | at86rf215_tx_done (at86rf215_t *dev) |
Signal that the transfer of the frame (and optional ACK reception) has finished. More... | |
bool | at86rf215_cca (at86rf215_t *dev) |
Perform one manual channel clear assessment (CCA) More... | |
Channel configuration | |
#define | CONFIG_AT86RF215_DEFAULT_CHANNEL (CONFIG_IEEE802154_DEFAULT_CHANNEL) |
#define | CONFIG_AT86RF215_DEFAULT_SUBGHZ_CHANNEL (CONFIG_IEEE802154_DEFAULT_SUBGHZ_CHANNEL) |
Enable Reduced Power Consumption | |
#define | CONFIG_AT86RF215_RPC_EN (0) |
Default PHY Mode | |
#define | CONFIG_AT86RF215_DEFAULT_PHY_MODE (IEEE802154_PHY_OQPSK) |
Default O-QPSK Rate Mode | |
Non-zero value enables proprietary high data rate by default | |
#define | CONFIG_AT86RF215_DEFAULT_OQPSK_RATE (0) |
Default MR-O-QPSK Chip Rate | |
#define | CONFIG_AT86RF215_DEFAULT_MR_OQPSK_CHIPS (AT86RF215_FCHIP_1000) |
Default MR-O-QPSK Rate Mode | |
#define | CONFIG_AT86RF215_DEFAULT_MR_OQPSK_RATE (2) |
Default MR-OFDM Option | |
#define | CONFIG_AT86RF215_DEFAULT_MR_OFDM_OPT (2) |
Default MR-OFDM Modulation & Coding Scheme | |
#define | CONFIG_AT86RF215_DEFAULT_MR_OFDM_MCS (2) |
Default MR-FSK Symbol Rate | |
#define | CONFIG_AT86RF215_DEFAULT_MR_FSK_SRATE FSK_SRATE_200K |
Default MR-FSK Modulation Index, fraction of 64 | |
#define | CONFIG_AT86RF215_DEFAULT_MR_FSK_MOD_IDX (64) |
Default MR-FSK Modulation Order | |
#define | CONFIG_AT86RF215_DEFAULT_MR_FSK_MORD FSK_MORD_4SFK |
Default MR-FSK Forward Error Correction Scheme | |
#define | CONFIG_AT86RF215_DEFAULT_MR_FSK_FEC IEEE802154_FEC_NONE |
Flags for device internal states (see datasheet) | |
enum | at86rf215_state_t { AT86RF215_STATE_OFF, AT86RF215_STATE_IDLE, AT86RF215_STATE_RX_SEND_ACK, AT86RF215_STATE_TX, AT86RF215_STATE_TX_WAIT_ACK, AT86RF215_STATE_SLEEP } |
Internal device option flags | |
#define | AT86RF215_OPT_TELL_TX_START (0x0001) |
notify MAC layer on TX start | |
#define | AT86RF215_OPT_TELL_TX_END (0x0002) |
notify MAC layer on TX finished | |
#define | AT86RF215_OPT_TELL_RX_START (0x0004) |
notify MAC layer on RX start | |
#define | AT86RF215_OPT_TELL_RX_END (0x0008) |
notify MAC layer on RX finished | |
#define | AT86RF215_OPT_CSMA (0x0010) |
CSMA active. | |
#define | AT86RF215_OPT_PROMISCUOUS (0x0020) |
promiscuous mode active | |
#define | AT86RF215_OPT_PRELOADING (0x0040) |
preloading enabled | |
#define | AT86RF215_OPT_AUTOACK (0x0080) |
Auto ACK active. | |
#define | AT86RF215_OPT_ACK_REQUESTED (0x0100) |
ACK requested for current frame. | |
#define | AT86RF215_OPT_AGCH (0x0200) |
AGC Hold active. | |
#define | AT86RF215_OPT_TX_PENDING (0x0400) |
Frame is loaded into TX buffer. | |
#define | AT86RF215_OPT_CCA_PENDING (0x0800) |
CCA needs to be done for the current frame. | |
#define | AT86RF215_OPT_RPC (0x1000) |
Enable Reduced Power Consumption. | |
#define | AT86RF215_OPT_CCATX (0x2000) |
TX after CCA performd automatically. | |
Internal timeout flags | |
#define | AT86RF215_TIMEOUT_ACK (0x0001) |
ACK timeout. | |
#define | AT86RF215_TIMEOUT_CSMA (0x0002) |
CMSA timeout. | |