Loading...
Searching...
No Matches
nrf24l01p_settings.h File Reference

Low-level driver for nrf24l01+ transceiver. More...

Detailed Description

Go to the source code of this file.

Default configuration parameters

#define INITIAL_ADDRESS_WIDTH   5
 
#define NRF24L01P_MAX_DATA_LENGTH   32
 
#define INITIAL_RF_CHANNEL   5
 
#define INITIAL_RX_POWER_0dB   0
 

Timing parameters

#define DELAY_CS_TOGGLE_US   2
 
#define DELAY_AFTER_FUNC_US   2
 
#define DELAY_CE_HIGH_US   (20)
 
#define DELAY_CHANGE_PWR_MODE_US   (1500)
 
#define DELAY_CHANGE_TXRX_US   (130)
 
#define DELAY_CE_START_US   (5)
 
#define DELAY_DATA_ON_AIR   (1300)
 

Command definitions

#define CMD_R_REGISTER   0x00
 
#define CMD_W_REGISTER   0x20
 
#define CMD_R_RX_PAYLOAD   0x61
 
#define CMD_W_TX_PAYLOAD   0xa0
 
#define CMD_FLUSH_TX   0xe1
 
#define CMD_FLUSH_RX   0xe2
 
#define CMD_REUSE_TX_PL   0xe3
 
#define CMD_R_RX_PL_WID   0x60
 
#define CMD_W_ACK_PAYLOAD   0xa8
 
#define CMD_W_TX_PAYLOAD_NOACK   0xb0
 
#define CMD_NOOP   0xff
 
#define REGISTER_MASK   0x1F
 

Register address definitions

#define REG_CONFIG   0x00
 
#define REG_EN_AA   0x01
 
#define REG_EN_RXADDR   0x02
 
#define REG_SETUP_AW   0x03
 
#define REG_SETUP_RETR   0x04
 
#define REG_RF_CH   0x05
 
#define REG_RF_SETUP   0x06
 
#define REG_STATUS   0x07
 
#define REG_OBSERVE_TX   0x08
 
#define REG_RPD   0x09
 
#define REG_RX_ADDR_P0   0x0a
 
#define REG_RX_ADDR_P1   0x0b
 
#define REG_RX_ADDR_P2   0x0c
 
#define REG_RX_ADDR_P3   0x0d
 
#define REG_RX_ADDR_P4   0x0e
 
#define REG_RX_ADDR_P5   0x0f
 
#define REG_TX_ADDR   0x10
 
#define REG_RX_PW_P0   0x11
 
#define REG_RX_PW_P1   0x12
 
#define REG_RX_PW_P2   0x13
 
#define REG_RX_PW_P3   0x14
 
#define REG_RX_PW_P4   0x15
 
#define REG_RX_PW_P5   0x16
 
#define REG_FIFO_STATUS   0x17
 
#define REG_DYNPD   0x1c
 
#define REG_FEATURE   0x1d
 

EN_AA register bitmaps

#define ENAA_P0   0x01
 
#define ENAA_P1   0x02
 
#define ENAA_P2   0x04
 
#define ENAA_P3   0x08
 
#define ENAA_P4   0x10
 
#define ENAA_P5   0x20
 

CONFIG register bitmaps

#define MASK_RX_DR   0x40
 
#define MASK_TX_DS   0x20
 
#define MASK_MAX_RT   0x10
 
#define EN_CRC   0x08
 
#define CRCO   0x04
 
#define PWR_UP   0x02
 
#define PRIM_RX   0x01
 

STATUS register bitmaps

#define RX_DR   0x40
 
#define TX_DS   0x20
 
#define MAX_RT   0x10
 
#define RX_P_NO   0x0e
 
#define TX_FULL   0x01
 
#define ALL_INT_MASK   0x70
 

RF_SETUP register bitmaps

#define RF_SETUP_CONT_WAVE   (1 << 7)
 
#define RF_SETUP_RF_DR_LOW   (1 << 5)
 
#define RF_SETUP_PLL_LOCK   (1 << 4)
 
#define RF_SETUP_RF_DR_HIGH   (1 << 3)
 
#define RF_SETUP_RF_PWR   (3 << 1)
 

Channel mask for the RF_CH register

#define RF_CH_MASK   0x7f
 

DYNPD register bitmaps

#define DYNPD_DPL_P5   (1 << 5)
 
#define DYNPD_DPL_P4   (1 << 4)
 
#define DYNPD_DPL_P3   (1 << 3)
 
#define DYNPD_DPL_P2   (1 << 2)
 
#define DYNPD_DPL_P1   (1 << 1)
 
#define DYNPD_DPL_P0   (1 << 0)
 

FEATURE register bitmaps

#define FEATURE_EN_DPL   (1 << 2)
 
#define FEATURE_EN_ACK_PAY   (1 << 1)
 
#define FEATURE_EN_DYN_ACK   (1 << 0)
 

Macro Definition Documentation

◆ ALL_INT_MASK

#define ALL_INT_MASK   0x70

Definition at line 143 of file nrf24l01p_settings.h.

◆ CMD_FLUSH_RX

#define CMD_FLUSH_RX   0xe2

Definition at line 67 of file nrf24l01p_settings.h.

◆ CMD_FLUSH_TX

#define CMD_FLUSH_TX   0xe1

Definition at line 66 of file nrf24l01p_settings.h.

◆ CMD_NOOP

#define CMD_NOOP   0xff

Definition at line 72 of file nrf24l01p_settings.h.

◆ CMD_R_REGISTER

#define CMD_R_REGISTER   0x00

Definition at line 62 of file nrf24l01p_settings.h.

◆ CMD_R_RX_PAYLOAD

#define CMD_R_RX_PAYLOAD   0x61

Definition at line 64 of file nrf24l01p_settings.h.

◆ CMD_R_RX_PL_WID

#define CMD_R_RX_PL_WID   0x60

Definition at line 69 of file nrf24l01p_settings.h.

◆ CMD_REUSE_TX_PL

#define CMD_REUSE_TX_PL   0xe3

Definition at line 68 of file nrf24l01p_settings.h.

◆ CMD_W_ACK_PAYLOAD

#define CMD_W_ACK_PAYLOAD   0xa8

Definition at line 70 of file nrf24l01p_settings.h.

◆ CMD_W_REGISTER

#define CMD_W_REGISTER   0x20

Definition at line 63 of file nrf24l01p_settings.h.

◆ CMD_W_TX_PAYLOAD

#define CMD_W_TX_PAYLOAD   0xa0

Definition at line 65 of file nrf24l01p_settings.h.

◆ CMD_W_TX_PAYLOAD_NOACK

#define CMD_W_TX_PAYLOAD_NOACK   0xb0

Definition at line 71 of file nrf24l01p_settings.h.

◆ CRCO

#define CRCO   0x04

Definition at line 129 of file nrf24l01p_settings.h.

◆ DELAY_AFTER_FUNC_US

#define DELAY_AFTER_FUNC_US   2

Definition at line 45 of file nrf24l01p_settings.h.

◆ DELAY_CE_HIGH_US

#define DELAY_CE_HIGH_US   (20)

Definition at line 46 of file nrf24l01p_settings.h.

◆ DELAY_CE_START_US

#define DELAY_CE_START_US   (5)

Definition at line 49 of file nrf24l01p_settings.h.

◆ DELAY_CHANGE_PWR_MODE_US

#define DELAY_CHANGE_PWR_MODE_US   (1500)

Definition at line 47 of file nrf24l01p_settings.h.

◆ DELAY_CHANGE_TXRX_US

#define DELAY_CHANGE_TXRX_US   (130)

Definition at line 48 of file nrf24l01p_settings.h.

◆ DELAY_CS_TOGGLE_US

#define DELAY_CS_TOGGLE_US   2

Definition at line 44 of file nrf24l01p_settings.h.

◆ DELAY_DATA_ON_AIR

#define DELAY_DATA_ON_AIR   (1300)

Definition at line 55 of file nrf24l01p_settings.h.

◆ DYNPD_DPL_P0

#define DYNPD_DPL_P0   (1 << 0)

Definition at line 171 of file nrf24l01p_settings.h.

◆ DYNPD_DPL_P1

#define DYNPD_DPL_P1   (1 << 1)

Definition at line 170 of file nrf24l01p_settings.h.

◆ DYNPD_DPL_P2

#define DYNPD_DPL_P2   (1 << 2)

Definition at line 169 of file nrf24l01p_settings.h.

◆ DYNPD_DPL_P3

#define DYNPD_DPL_P3   (1 << 3)

Definition at line 168 of file nrf24l01p_settings.h.

◆ DYNPD_DPL_P4

#define DYNPD_DPL_P4   (1 << 4)

Definition at line 167 of file nrf24l01p_settings.h.

◆ DYNPD_DPL_P5

#define DYNPD_DPL_P5   (1 << 5)

Definition at line 166 of file nrf24l01p_settings.h.

◆ EN_CRC

#define EN_CRC   0x08

Definition at line 128 of file nrf24l01p_settings.h.

◆ ENAA_P0

#define ENAA_P0   0x01

Definition at line 113 of file nrf24l01p_settings.h.

◆ ENAA_P1

#define ENAA_P1   0x02

Definition at line 114 of file nrf24l01p_settings.h.

◆ ENAA_P2

#define ENAA_P2   0x04

Definition at line 115 of file nrf24l01p_settings.h.

◆ ENAA_P3

#define ENAA_P3   0x08

Definition at line 116 of file nrf24l01p_settings.h.

◆ ENAA_P4

#define ENAA_P4   0x10

Definition at line 117 of file nrf24l01p_settings.h.

◆ ENAA_P5

#define ENAA_P5   0x20

Definition at line 118 of file nrf24l01p_settings.h.

◆ FEATURE_EN_ACK_PAY

#define FEATURE_EN_ACK_PAY   (1 << 1)

Definition at line 179 of file nrf24l01p_settings.h.

◆ FEATURE_EN_DPL

#define FEATURE_EN_DPL   (1 << 2)

Definition at line 178 of file nrf24l01p_settings.h.

◆ FEATURE_EN_DYN_ACK

#define FEATURE_EN_DYN_ACK   (1 << 0)

Definition at line 180 of file nrf24l01p_settings.h.

◆ INITIAL_ADDRESS_WIDTH

#define INITIAL_ADDRESS_WIDTH   5

Definition at line 32 of file nrf24l01p_settings.h.

◆ INITIAL_RF_CHANNEL

#define INITIAL_RF_CHANNEL   5

Definition at line 35 of file nrf24l01p_settings.h.

◆ INITIAL_RX_POWER_0dB

#define INITIAL_RX_POWER_0dB   0

Definition at line 37 of file nrf24l01p_settings.h.

◆ MASK_MAX_RT

#define MASK_MAX_RT   0x10

Definition at line 127 of file nrf24l01p_settings.h.

◆ MASK_RX_DR

#define MASK_RX_DR   0x40

Definition at line 125 of file nrf24l01p_settings.h.

◆ MASK_TX_DS

#define MASK_TX_DS   0x20

Definition at line 126 of file nrf24l01p_settings.h.

◆ MAX_RT

#define MAX_RT   0x10

Definition at line 140 of file nrf24l01p_settings.h.

◆ NRF24L01P_MAX_DATA_LENGTH

#define NRF24L01P_MAX_DATA_LENGTH   32

Definition at line 33 of file nrf24l01p_settings.h.

◆ PRIM_RX

#define PRIM_RX   0x01

Definition at line 131 of file nrf24l01p_settings.h.

◆ PWR_UP

#define PWR_UP   0x02

Definition at line 130 of file nrf24l01p_settings.h.

◆ REG_CONFIG

#define REG_CONFIG   0x00

Definition at line 81 of file nrf24l01p_settings.h.

◆ REG_DYNPD

#define REG_DYNPD   0x1c

Definition at line 105 of file nrf24l01p_settings.h.

◆ REG_EN_AA

#define REG_EN_AA   0x01

Definition at line 82 of file nrf24l01p_settings.h.

◆ REG_EN_RXADDR

#define REG_EN_RXADDR   0x02

Definition at line 83 of file nrf24l01p_settings.h.

◆ REG_FEATURE

#define REG_FEATURE   0x1d

Definition at line 106 of file nrf24l01p_settings.h.

◆ REG_FIFO_STATUS

#define REG_FIFO_STATUS   0x17

Definition at line 104 of file nrf24l01p_settings.h.

◆ REG_OBSERVE_TX

#define REG_OBSERVE_TX   0x08

Definition at line 89 of file nrf24l01p_settings.h.

◆ REG_RF_CH

#define REG_RF_CH   0x05

Definition at line 86 of file nrf24l01p_settings.h.

◆ REG_RF_SETUP

#define REG_RF_SETUP   0x06

Definition at line 87 of file nrf24l01p_settings.h.

◆ REG_RPD

#define REG_RPD   0x09

Definition at line 90 of file nrf24l01p_settings.h.

◆ REG_RX_ADDR_P0

#define REG_RX_ADDR_P0   0x0a

Definition at line 91 of file nrf24l01p_settings.h.

◆ REG_RX_ADDR_P1

#define REG_RX_ADDR_P1   0x0b

Definition at line 92 of file nrf24l01p_settings.h.

◆ REG_RX_ADDR_P2

#define REG_RX_ADDR_P2   0x0c

Definition at line 93 of file nrf24l01p_settings.h.

◆ REG_RX_ADDR_P3

#define REG_RX_ADDR_P3   0x0d

Definition at line 94 of file nrf24l01p_settings.h.

◆ REG_RX_ADDR_P4

#define REG_RX_ADDR_P4   0x0e

Definition at line 95 of file nrf24l01p_settings.h.

◆ REG_RX_ADDR_P5

#define REG_RX_ADDR_P5   0x0f

Definition at line 96 of file nrf24l01p_settings.h.

◆ REG_RX_PW_P0

#define REG_RX_PW_P0   0x11

Definition at line 98 of file nrf24l01p_settings.h.

◆ REG_RX_PW_P1

#define REG_RX_PW_P1   0x12

Definition at line 99 of file nrf24l01p_settings.h.

◆ REG_RX_PW_P2

#define REG_RX_PW_P2   0x13

Definition at line 100 of file nrf24l01p_settings.h.

◆ REG_RX_PW_P3

#define REG_RX_PW_P3   0x14

Definition at line 101 of file nrf24l01p_settings.h.

◆ REG_RX_PW_P4

#define REG_RX_PW_P4   0x15

Definition at line 102 of file nrf24l01p_settings.h.

◆ REG_RX_PW_P5

#define REG_RX_PW_P5   0x16

Definition at line 103 of file nrf24l01p_settings.h.

◆ REG_SETUP_AW

#define REG_SETUP_AW   0x03

Definition at line 84 of file nrf24l01p_settings.h.

◆ REG_SETUP_RETR

#define REG_SETUP_RETR   0x04

Definition at line 85 of file nrf24l01p_settings.h.

◆ REG_STATUS

#define REG_STATUS   0x07

Definition at line 88 of file nrf24l01p_settings.h.

◆ REG_TX_ADDR

#define REG_TX_ADDR   0x10

Definition at line 97 of file nrf24l01p_settings.h.

◆ REGISTER_MASK

#define REGISTER_MASK   0x1F

Definition at line 74 of file nrf24l01p_settings.h.

◆ RF_CH_MASK

#define RF_CH_MASK   0x7f

Definition at line 160 of file nrf24l01p_settings.h.

◆ RF_SETUP_CONT_WAVE

#define RF_SETUP_CONT_WAVE   (1 << 7)

Definition at line 150 of file nrf24l01p_settings.h.

◆ RF_SETUP_PLL_LOCK

#define RF_SETUP_PLL_LOCK   (1 << 4)

Definition at line 152 of file nrf24l01p_settings.h.

◆ RF_SETUP_RF_DR_HIGH

#define RF_SETUP_RF_DR_HIGH   (1 << 3)

Definition at line 153 of file nrf24l01p_settings.h.

◆ RF_SETUP_RF_DR_LOW

#define RF_SETUP_RF_DR_LOW   (1 << 5)

Definition at line 151 of file nrf24l01p_settings.h.

◆ RF_SETUP_RF_PWR

#define RF_SETUP_RF_PWR   (3 << 1)

Definition at line 154 of file nrf24l01p_settings.h.

◆ RX_DR

#define RX_DR   0x40

Definition at line 138 of file nrf24l01p_settings.h.

◆ RX_P_NO

#define RX_P_NO   0x0e

Definition at line 141 of file nrf24l01p_settings.h.

◆ TX_DS

#define TX_DS   0x20

Definition at line 139 of file nrf24l01p_settings.h.

◆ TX_FULL

#define TX_FULL   0x01

Definition at line 142 of file nrf24l01p_settings.h.