| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- #ifndef NRF24L01_DEFINITIONS_H
- #define NRF24L01_DEFINITIONS_H
-
- #define MAX_ADDRESS_LENGTH 5
-
- /* NRF24L01 register mnemonic definitions */
- #define CONFIG_ADDRESS 0x0
- #define EN_AA_ADDRESS 0x1
- #define EN_RXADDR_ADDRESS 0x2
- #define SETUP_AW_ADDRESS 0x3
- #define SETUP_RETR_ADDRESS 0x4
- #define RF_CH_ADDRESS 0x5
- #define RF_SETUP_ADDRESS 0x6
- #define STATUS_ADDRESS 0x7
- #define OBSERVE_TX_ADDRESS 0x8
- #define CD_ADDRESS 0x9
- #define RX_ADDR_P0_ADDRESS 0xA
- #define RX_ADDR_P1_ADDRESS 0xB
- #define RX_ADDR_P2_ADDRESS 0xC
- #define RX_ADDR_P3_ADDRESS 0xD
- #define RX_ADDR_P4_ADDRESS 0xE
- #define RX_ADDR_P5_ADDRESS 0xF
- #define TX_ADDR_ADDRESS 0x10
- #define RX_PW_P0_ADDRESS 0x11
- #define RX_PW_P1_ADDRESS 0x12
- #define RX_PW_P2_ADDRESS 0x13
- #define RX_PW_P3_ADDRESS 0x14
- #define RX_PW_P4_ADDRESS 0x15
- #define RX_PW_P5_ADDRESS 0x16
- #define FIFO_STATUS_ADDRESS 0x17
- #define DYNPD_ADDRESS 0x1C
- #define FEATURE_ADDRESS 0x1D
-
- /* Commands */
- #define FLUSH_TX_COMMAND 0xE1
- #define FLUSH_RX_COMMAND 0xE2
- #define W_TX_PAYLOAD_COMMAND 0xA0
- #define R_RX_PAYLOAD_COMMAND 0x61
-
- /* Register bits definitions */
- /* CONFIG*/
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t PRIM_RX : 1;
- uint8_t PWR_UP : 1;
- uint8_t CRCO : 1;
- uint8_t EN_CRC : 1;
- uint8_t MASK_MAX_RT : 1;
- uint8_t MASK_TX_DS : 1;
- uint8_t MASK_RX_DR : 1;
- uint8_t RESERVED : 1;
- }bits;
- }CONFIG_REGISTER;
-
- /*EN_AA */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t ENAA_P0 : 1;
- uint8_t ENAA_P1 : 1;
- uint8_t ENAA_P2 : 1;
- uint8_t ENAA_P3 : 1;
- uint8_t ENAA_P4 : 1;
- uint8_t ENAA_P5 : 1;
- uint8_t RESERVED : 2;
- }bits;
- }EN_AA_REGISTER;
-
- /* EN_RXADDR */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t ERX_P0 : 1;
- uint8_t ERX_P1 : 1;
- uint8_t ERX_P2 : 1;
- uint8_t ERX_P3 : 1;
- uint8_t ERX_P4 : 1;
- uint8_t ERX_P5 : 1;
- uint8_t RESERVED : 2;
- }bits;
- }EN_RXADDR_REGISTER;
-
- /* SETUP_AW */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t AW : 2;
- uint8_t RESERVED : 6;
- }bits;
- }SETUP_AW_REGISTER;
-
- #define ADDRESS_WIDTH_3_BYTES 0x1
- #define ADDRESS_WIDTH_4_BYTES 0x2
- #define ADDRESS_WIDTH_5_BYTES 0x3
-
- /* SETUP_RETR */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t ARC : 4;
- uint8_t ARD : 4;
- }bits;
- }SETUP_RETR_REGISTER;
-
- /* RF_CH */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t RF_CH : 7;
- uint8_t RESERVED : 1;
- }bits;
- }RF_CH_REGISTER;
-
- /* RF_SETUP */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t LNA_HCURR : 1;
- uint8_t RF_PWR : 2;
- uint8_t RF_DR : 1;
- uint8_t PLL_LOCK : 1;
- uint8_t RESERVED : 3;
- }bits;
- }RF_SETUP_REGISTER;
-
- #define RF_DATA_RATE_1MBPS 0x0
- #define RF_DATA_RATE_2MBPS 0x1
-
- #define RF_OUTPUT_POWER_MINUS_18DBM
- #define RF_OUTPUT_POWER_MINUS_12DBM
- #define RF_OUTPUT_POWER_MINUS_16DBM
- #define RF_OUTPUT_POWER_0DBM
-
- /* STATUS */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t TX_FULL : 1;
- uint8_t RX_P_NO : 3;
- uint8_t MAX_RT : 1;
- uint8_t TX_DS : 1;
- uint8_t RX_DR : 1;
- uint8_t RESERVED : 1;
- }bits;
- }STATUS_REGISTER;
-
- #define RX_FIFO_EMPTY 0x7
-
- /* OBSERVE_TX */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t ARC_CNT : 4;
- uint8_t PLOS_CNT : 4;
- }bits;
- }OBSERVE_TX_REGISTER;
-
- /* CD */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t CD : 1;
- uint8_t RESERVED : 7;
- }bits;
- }CD_REGISTER;
-
- /* RX_PW_Pn */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t RESERVED : 2;
- uint8_t RX_PW_Pn : 6;
- }bits;
- }RX_PW_Pn_REGISTER;
-
- /* FIFO_STATUS */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t RX_EMPTY : 1;
- uint8_t RX_FULL : 1;
- uint8_t RESERVED1 : 2;
- uint8_t TX_EMPTY : 1;
- uint8_t TX_FULL : 1;
- uint8_t TX_REUSE : 1;
- uint8_t RESERVED0 : 1;
- }bits;
- }FIFO_STATUS_REGISTER;
-
- /* DYNPD */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t DPL_P0 : 1;
- uint8_t DPL_P1 : 1;
- uint8_t DPL_P2 : 1;
- uint8_t DPL_P3 : 1;
- uint8_t DPL_P4 : 1;
- uint8_t DPL_P5 : 1;
- uint8_t RESERVED : 2;
- }bits;
- }DYNPD_REGISTER;
-
- /* FEATURE */
- typedef union
- {
- uint8_t byte;
- struct
- {
- uint8_t EN_DYN_ACK : 1;
- uint8_t EN_ACK_PAY : 1;
- uint8_t EN_DPL : 1;
- uint8_t RESERVED : 5;
- }bits;
- }FEATURE_REGISTER;
-
- #endif
-
|