Loading...
Searching...
No Matches

Public interface for NRF24L01+ (NG) devices. More...

Detailed Description

Public interface for NRF24L01+ (NG) devices.

Author
Fabian Hüßler fabia.nosp@m.n.hu.nosp@m.essle.nosp@m.r@ov.nosp@m.gu.de

Definition in file nrf24l01p_ng.h.

#include <stdint.h>
#include "board.h"
#include "kernel_defines.h"
#include "net/gnrc/nettype.h"
#include "net/netdev.h"
#include "periph/gpio.h"
#include "periph/spi.h"
#include "nrf24l01p_ng_types.h"
+ Include dependency graph for nrf24l01p_ng.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  nrf24l01p_ng_cfg_t
 Struct that holds all active configuration values. More...
 
struct  nrf24l01p_ng_params_t
 Struct of NRF24L01+ initialization parameters. More...
 
struct  nrf24l01p_ng
 NRF24L01+ device struct. More...
 

Macros

#define NRF24L01P_NG_MIN_ADDR_WIDTH   (3)
 Minimum width of a NRF24L01+ layer-2 address.
 
#define NRF24L01P_NG_MAX_ADDR_WIDTH   (5)
 Maximum width of a NRF24L01+ layer-2 address.
 
#define NRF24L01P_NG_ADDR_WIDTH   NRF24L01P_NG_MAX_ADDR_WIDTH
 Pass the compiler a definition of NRF24L01P_NG_ADDR_WIDTH to configure the layer-2 address width of this transceiver.
 
#define NRF24L01P_NG_BROADCAST_ADDR   { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
 Agreed layer-2 address to send broadcast frames to.
 
#define NRF24L01P_NG_ADDR_P0(dev)   ((dev)->arxaddr.rx_addr_long[NRF24L01P_NG_P0])
 Shortcut to access the address of pipe 0.
 
#define NRF24L01P_NG_ADDR_P1(dev)   ((dev)->arxaddr.rx_addr_long[NRF24L01P_NG_P1])
 Shortcut to access the address of pipe 1.
 
#define NRF24L01P_NG_ADDR_PX_LSB(dev, pipe)   ((dev)->arxaddr.rx_addr_short[(pipe) - 2])
 Shortcut to access the least significant byte of the addresses pipe 2, pipe 3, pipe 4 or pipe 5.
 

Functions

int nrf24l01p_ng_setup (nrf24l01p_ng_t *dev, const nrf24l01p_ng_params_t *params, uint8_t index)
 Setup the NRF24L01+ driver, but perform no initialization.
 
int nrf24l01p_ng_set_enable_pipe (nrf24l01p_ng_t *dev, nrf24l01p_ng_pipe_t pipe, bool enable)
 Enable or disable data pipe pipe.
 
int nrf24l01p_ng_get_enable_pipe (nrf24l01p_ng_t *dev, nrf24l01p_ng_pipe_t pipe, bool *enable)
 Query if data pipe pipe is enabled.
 
int nrf24l01p_ng_set_air_data_rate (nrf24l01p_ng_t *dev, nrf24l01p_ng_rfdr_t data_rate)
 Configure air data rate.
 
uint16_t nrf24l01p_ng_get_air_data_rate (const nrf24l01p_ng_t *dev, nrf24l01p_ng_rfdr_t *data_rate)
 Get currently configured data rate.
 
int nrf24l01p_ng_set_crc (nrf24l01p_ng_t *dev, nrf24l01p_ng_crc_t crc)
 Configure CRC length.
 
uint8_t nrf24l01p_ng_get_crc (const nrf24l01p_ng_t *dev, nrf24l01p_ng_crc_t *crc)
 Get currently configured CRC length.
 
int nrf24l01p_ng_set_tx_power (nrf24l01p_ng_t *dev, nrf24l01p_ng_tx_power_t power)
 Configure Tx trasceiver power.
 
int8_t nrf24l01p_ng_get_tx_power (const nrf24l01p_ng_t *dev, nrf24l01p_ng_tx_power_t *power)
 Get currently configured Tx transceiver power.
 
int nrf24l01p_ng_set_channel (nrf24l01p_ng_t *dev, uint8_t channel)
 Set transceiver channel.
 
uint8_t nrf24l01p_ng_get_channel (const nrf24l01p_ng_t *dev)
 Get currently configured transceiver channel.
 
int nrf24l01p_ng_set_rx_address (nrf24l01p_ng_t *dev, const uint8_t *addr, nrf24l01p_ng_pipe_t pipe)
 Set Rx address of a certain data pipe.
 
int nrf24l01p_ng_get_rx_address (const nrf24l01p_ng_t *dev, uint8_t *addr, nrf24l01p_ng_pipe_t pipe)
 Get current Rx address of a certain data pipe.
 
int nrf24l01p_ng_set_max_retransm (nrf24l01p_ng_t *dev, uint8_t max_rt)
 Configure maximum number of retransmissions for ESB.
 
uint8_t nrf24l01p_ng_get_max_retransm (const nrf24l01p_ng_t *dev)
 Get currently configured number of maximum retransmissions for ESB.
 
int nrf24l01p_ng_set_retransm_delay (nrf24l01p_ng_t *dev, nrf24l01p_ng_ard_t rt_delay)
 Set retransmission delay for ESB.
 
uint16_t nrf24l01p_ng_get_retransm_delay (const nrf24l01p_ng_t *dev, nrf24l01p_ng_ard_t *rt_delay)
 Get retransmission delay for ESB.
 
int nrf24l01p_ng_set_state (nrf24l01p_ng_t *dev, nrf24l01p_ng_state_t state)
 Put device into sleep mode(NRF24L01P_NG_STATE_POWER_DOWN), standby mode (NRF24L01P_NG_STATE_STANDBY_1), or Rx mode (NRF24L01P_NG_STATE_RX_MODE)
 
nrf24l01p_ng_state_t nrf24l01p_ng_get_state (const nrf24l01p_ng_t *dev)
 Get current device state.
 
void nrf24l01p_ng_eui_get (const netdev_t *dev, uint8_t *eui)
 Retrieve a unique layer-2 address for an nrf24l01p_ng instance.