• Main Page
  • Modules
  • Index
  • File List
  • Globals

hal/nrf24l01p/hal_nrf_reg.h

Go to the documentation of this file.
00001 /* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved.
00002  *
00003  * The information contained herein is confidential property of Nordic
00004  * Semiconductor ASA.Terms and conditions of usage are described in detail
00005  * in NORDIC SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
00006  *
00007  * Licensees are granted free, non-transferable use of the information. NO
00008  * WARRENTY of ANY KIND is provided. This heading must NOT be removed from
00009  * the file.
00010  *
00011  * $LastChangedRevision: 2519 $
00012  */
00013 
00023 #ifndef HAL_NRF_REG_H__
00024 #define HAL_NRF_REG_H__
00025 
00028 /* nRF24L01 Instruction Definitions */
00029 #define W_REGISTER         0x20U  
00030 #define R_RX_PAYLOAD       0x61U  
00031 #define W_TX_PAYLOAD       0xA0U  
00032 #define FLUSH_TX           0xE1U  
00033 #define FLUSH_RX           0xE2U  
00034 #define REUSE_TX_PL        0xE3U  
00035 #define ACTIVATE           0x50U  
00036 #define R_RX_PL_WID        0x60U  
00037 #define W_ACK_PAYLOAD      0xA8U  
00038 #define W_TX_PAYLOAD_NOACK 0xB0U  
00039 #define NOP                0xFFU  
00041 
00042 
00044 /* nRF24L01 * Register Definitions * */
00045 #define CONFIG        0x00U  
00046 #define EN_AA         0x01U  
00047 #define EN_RXADDR     0x02U  
00048 #define SETUP_AW      0x03U  
00049 #define SETUP_RETR    0x04U  
00050 #define RF_CH         0x05U  
00051 #define RF_SETUP      0x06U  
00052 #define STATUS        0x07U  
00053 #define OBSERVE_TX    0x08U  
00054 #define CD            0x09U  
00055 #define RX_ADDR_P0    0x0AU  
00056 #define RX_ADDR_P1    0x0BU  
00057 #define RX_ADDR_P2    0x0CU  
00058 #define RX_ADDR_P3    0x0DU  
00059 #define RX_ADDR_P4    0x0EU  
00060 #define RX_ADDR_P5    0x0FU  
00061 #define TX_ADDR       0x10U  
00062 #define RX_PW_P0      0x11U  
00063 #define RX_PW_P1      0x12U  
00064 #define RX_PW_P2      0x13U  
00065 #define RX_PW_P3      0x14U  
00066 #define RX_PW_P4      0x15U  
00067 #define RX_PW_P5      0x16U  
00068 #define FIFO_STATUS   0x17U  
00069 #define DYNPD         0x1CU  
00070 #define FEATURE       0x1DU  
00073 
00074 /* nRF24L01 related definitions */
00075 /* Interrupt definitions */
00076 /* Operation mode definitions */
00077 
00081 typedef enum {
00082     HAL_NRF_MAX_RT = 4,     
00083     HAL_NRF_TX_DS,          
00084     HAL_NRF_RX_DR           
00085 } hal_nrf_irq_source_t;
00086 
00087 /* Operation mode definitions */
00091 typedef enum {
00092     HAL_NRF_PTX,            
00093     HAL_NRF_PRX             
00094 } hal_nrf_operation_mode_t;
00095 
00099 typedef enum {
00100     HAL_NRF_PWR_DOWN,       
00101     HAL_NRF_PWR_UP          
00102 } hal_nrf_pwr_mode_t;
00103 
00107 typedef enum {
00108     HAL_NRF_18DBM,          
00109     HAL_NRF_12DBM,          
00110     HAL_NRF_6DBM,           
00111     HAL_NRF_0DBM            
00112 } hal_nrf_output_power_t;
00113 
00117 typedef enum {
00118     HAL_NRF_1MBPS,          
00119     HAL_NRF_2MBPS,          
00120     HAL_NRF_250KBPS         
00121 } hal_nrf_datarate_t;
00122 
00126 typedef enum {
00127     HAL_NRF_CRC_OFF,    
00128     HAL_NRF_CRC_8BIT,   
00129     HAL_NRF_CRC_16BIT   
00130 } hal_nrf_crc_mode_t;
00131 
00135 typedef enum {
00136     HAL_NRF_TX_PLOAD = 7,   
00137     HAL_NRF_RX_PLOAD,        
00138     HAL_NRF_ACK_PLOAD
00139 } hal_nrf_pload_command_t;
00140 
00146 // nRF24L01 Address struct
00147 
00148 
00149 //typedef struct {
00150 //   uint8_t p0[5];            /**< Pipe0 address, 5 bytes */
00151 //    uint8_t p1[5];            /**< Pipe1 address, 5 bytes, 4 MSB bytes shared for pipe1 to pipe5 */
00152 //    uint8_t p2[1];            /**< Pipe2 address, 1 byte */
00153 //    uint8_t p3[1];            /**< Pipe3 address, 1 byte */
00154 //   uint8_t p4[1];            /**< Pipe3 address, 1 byte */
00155 //   uint8_t p5[1];            /**< Pipe3 address, 1 byte */
00156 //   uint8_t tx[5];            /**< TX address, 5 byte */
00157 //} hal_nrf_l01_addr_map;
00158 
00159 
00163 typedef enum {
00164     HAL_NRF_PIPE0 = 0,          
00165     HAL_NRF_PIPE1,              
00166     HAL_NRF_PIPE2,              
00167     HAL_NRF_PIPE3,              
00168     HAL_NRF_PIPE4,              
00169     HAL_NRF_PIPE5,              
00170     HAL_NRF_TX,                 
00171     HAL_NRF_ALL = 0xFF          
00174 } hal_nrf_address_t;
00175 
00179 typedef enum {
00180     HAL_NRF_AW_3BYTES = 3,      
00181     HAL_NRF_AW_4BYTES,          
00182     HAL_NRF_AW_5BYTES           
00183 } hal_nrf_address_width_t;
00184 
00185 
00188 
00189 #define MASK_RX_DR    6     
00190 #define MASK_TX_DS    5     
00191 #define MASK_MAX_RT   4     
00192 #define EN_CRC        3     
00193 #define CRCO          2     
00194 #define PWR_UP        1     
00195 #define PRIM_RX       0     
00197 
00198 
00200 #define PLL_LOCK      4     
00201 #define RF_DR         3     
00202 #define RF_PWR1       2     
00203 #define RF_PWR0       1     
00204 #define LNA_HCURR     0     
00206 
00207 /* STATUS 0x07 */
00210 #define RX_DR         6     
00211 #define TX_DS         5     
00212 #define MAX_RT        4     
00213 #define TX_FULL       0     
00215 
00216 /* FIFO_STATUS 0x17 */
00219 #define TX_REUSE      6     
00220 #define TX_FIFO_FULL  5     
00221 #define TX_EMPTY      4     
00222 #define RX_FULL       1     
00223 #define RX_EMPTY      0     
00225 
00226 #endif // HAL_NRF_REG_H__
00227 

Generated on Fri Apr 20 2012 14:11:44 for nRFGo SDK by  doxygen 1.7.2