Specialized interface code for the nRF24L01P wireless transceiver.
Dependents: WalkingRobot PcRadioBridge FzeroXcontroller WalkingRobot ... more
nRF24L01P_defs.h
- Committer:
- pclary
- Date:
- 2012-12-23
- Revision:
- 0:fb0cf6209cd3
File content as of revision 0:fb0cf6209cd3:
// SPI frequency #define SPI_FREQUENCY 2000000 // SPI commands #define R_REGISTER 0x00 #define W_REGISTER 0x20 #define R_RX_PAYLOAD 0x61 #define W_TX_PAYLOAD 0xa0 #define FLUSH_TX 0xe1 #define FLUSH_RX 0xe2 #define REUSE_TX_PL 0xe3 #define R_RX_PL_WID 0x60 #define W_ACK_PAYLOAD 0xa8 #define W_TX_PAYLOAD_NOACK 0xb0 #define NOP 0xff // Address masks #define REGISTER_ADDRESS_MASK 0x1f #define PIPE_MASK 0x07 // Register addresses #define CONFIG 0x00 #define EN_AA 0x01 #define EN_RXADDR 0x02 #define SETUP_AW 0x03 #define SETUP_RETR 0x04 #define RF_CH 0x05 #define RF_SETUP 0x06 #define STATUS 0x07 #define OBSERVE_TX 0x08 #define RPD 0x09 #define RX_ADDR_P0 0x0a #define RX_ADDR_P1 0x0b #define RX_ADDR_P2 0x0c #define RX_ADDR_P3 0x0d #define RX_ADDR_P4 0x0e #define RX_ADDR_P5 0x0f #define TX_ADDR 0x10 #define RX_PW_P0 0x11 #define RX_PW_P1 0x12 #define RX_PW_P2 0x13 #define RX_PW_P3 0x14 #define RX_PW_P4 0x15 #define RX_PW_P5 0x16 #define FIFO_STATUS 0x17 #define DYNPD 0x1c #define FEATURE 0x1d // CONFIG bits #define CONFIG_MASK_RX_DR (1<<6) #define CONFIG_MASK_TX_DS (1<<5) #define CONFIG_MASK_MAX_RT (1<<4) #define CONFIG_EN_CRC (1<<3) #define CONFIG_CRC0 (1<<2) #define CONFIG_PWR_UP (1<<1) #define CONFIG_PRIM_RX (1<<0) // EN_AA bits #define ENAA_P5 (1<<5) #define ENAA_P4 (1<<4) #define ENAA_P3 (1<<3) #define ENAA_P2 (1<<2) #define ENAA_P1 (1<<1) #define ENAA_P0 (1<<0) // EN_RXADDR bits #define ERX_P5 (1<<5) #define ERX_P4 (1<<4) #define ERX_P3 (1<<3) #define ERX_P2 (1<<2) #define ERX_P1 (1<<1) #define ERX_P0 (1<<0) // SETUP_AW values #define SETUP_AW_3BYTES 0x01 #define SETUP_AW_4BYTES 0x02 #define SETUP_AW_5BYTES 0x03 // RF_SETUP bits #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_18 (0x0<<1) #define RF_SETUP_RF_PWR_12 (0x1<<1) #define RF_SETUP_RF_PWR_6 (0x2<<1) #define RF_SETUP_RF_PWR_0 (0x3<<1) // STATUS bits #define STATUS_RX_DR (1<<6) #define STATUS_TX_DS (1<<5) #define STATUS_MAX_RT (1<<4) #define STATUS_RN_P_MASK (0x7<<1) #define STATUS_RN_P_NO_P0 (0x0<<1) #define STATUS_RN_P_NO_P1 (0x1<<1) #define STATUS_RN_P_NO_P2 (0x2<<1) #define STATUS_RN_P_NO_P3 (0x3<<1) #define STATUS_RN_P_NO_P4 (0x4<<1) #define STATUS_RN_P_NO_P5 (0x5<<1) #define STATUS_RN_P_NO_EMPTY (0x7<<1) #define STATUS_TX_FULL (1<<0) // FIFO_STATUS bits #define FIFO_STATUS_TX_REUSE (1<<6) #define FIFO_STATUS_TX_FULL (1<<5) #define FIFO_STATUS_TX_EMPTY (1<<4) #define FIFO_STATUS_RX_FULL (1<<1) #define FIFO_STATUS_RX_EMPTY (1<<0) // DYNPD bits #define DPL_P5 (1<<5) #define DPL_P4 (1<<4) #define DPL_P3 (1<<3) #define DPL_P2 (1<<2) #define DPL_P1 (1<<1) #define DPL_P0 (1<<0) // FEATURE bits #define FEATURE_EN_DPL (1<<2) #define FEATURE_EN_ACK_PAY (1<<1) #define FEATURE_EN_DYN_ACK (1<<0) // Timing #define TIMING_Tpd2stby 4500 #define TIMING_Tstby2a 130 #define TIMING_Thce 10 #define TIMING_Tpece2csn 4 #define TIMING_Tpor 100000 #define TIMING_Toa 41 #define TIMING_Tirq 6 // Channel used #define RF_CHANNEL 56 // Addresses #define ROBOT_ADDRESS_1 0x07 #define ROBOT_ADDRESS_2 0x00 #define ROBOT_ADDRESS_3 0x00 #define CTRL_BASE_ADDRESS_1 0xa4 #define CTRL_BASE_ADDRESS_2 0x01 #define CTRL_BASE_ADDRESS_3 0x00