observe fixes
Dependencies: nsdl_lib Nanostack_lib
Fork of mbedEndpointNetwork by
mesh_nework/AtmelRFDriverLib/driverAtmelRFInterface.h@10:da76961ba3e9, 2015-04-23 (annotated)
- Committer:
- michaeljkoster
- Date:
- Thu Apr 23 02:57:56 2015 +0000
- Revision:
- 10:da76961ba3e9
- Parent:
- 0:2a5a48a8b4d4
use prebuilt nsdl
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ansond | 0:2a5a48a8b4d4 | 1 | /* |
ansond | 0:2a5a48a8b4d4 | 2 | * driverAtmelRFInterface.h |
ansond | 0:2a5a48a8b4d4 | 3 | * |
ansond | 0:2a5a48a8b4d4 | 4 | * Created on: 14 July 2014 |
ansond | 0:2a5a48a8b4d4 | 5 | * Author: mBed Team |
ansond | 0:2a5a48a8b4d4 | 6 | */ |
ansond | 0:2a5a48a8b4d4 | 7 | |
ansond | 0:2a5a48a8b4d4 | 8 | #ifndef DRIVERRFINTERFACE_H_ |
ansond | 0:2a5a48a8b4d4 | 9 | #define DRIVERRFINTERFACE_H_ |
ansond | 0:2a5a48a8b4d4 | 10 | |
ansond | 0:2a5a48a8b4d4 | 11 | |
ansond | 0:2a5a48a8b4d4 | 12 | /*Delay between transfers(bytes) (32*DLYBCT)/MCK -> (32*6/120MHz=1.6us)*/ |
ansond | 0:2a5a48a8b4d4 | 13 | #define SPI_DLYBCT 6 |
ansond | 0:2a5a48a8b4d4 | 14 | /*Delay before SPCK DLYBS/MCK -> 140/120MHz=1.16us)*/ |
ansond | 0:2a5a48a8b4d4 | 15 | #define SPI_DLYBS 140 |
ansond | 0:2a5a48a8b4d4 | 16 | /*Serial clock baud rate MCK/SCBR -> 120MHz/18=6.7MHz)*/ |
ansond | 0:2a5a48a8b4d4 | 17 | #define SPI_SCBR 18 |
ansond | 0:2a5a48a8b4d4 | 18 | |
ansond | 0:2a5a48a8b4d4 | 19 | #define PHY_ACK_WAIT_TICK_VAL 185 |
ansond | 0:2a5a48a8b4d4 | 20 | #define PHY_CALIBRATION_TICK_VAL 185 |
ansond | 0:2a5a48a8b4d4 | 21 | #define PHY_ACK_WAIT_TIMER 1 |
ansond | 0:2a5a48a8b4d4 | 22 | #define PHY_CALIBRATION_TIMER 2 |
ansond | 0:2a5a48a8b4d4 | 23 | |
ansond | 0:2a5a48a8b4d4 | 24 | /*Supported transceivers*/ |
ansond | 0:2a5a48a8b4d4 | 25 | #define PART_AT86RF231 0x03 |
ansond | 0:2a5a48a8b4d4 | 26 | #define PART_AT86RF212 0x07 |
ansond | 0:2a5a48a8b4d4 | 27 | #define PART_AT86RF233 0x0B |
ansond | 0:2a5a48a8b4d4 | 28 | #define VERSION_AT86RF212 0x01 |
ansond | 0:2a5a48a8b4d4 | 29 | #define VERSION_AT86RF212B 0x03 |
ansond | 0:2a5a48a8b4d4 | 30 | |
ansond | 0:2a5a48a8b4d4 | 31 | /*RF Configuration Registers*/ |
ansond | 0:2a5a48a8b4d4 | 32 | #define TRX_STATUS 0x01 |
ansond | 0:2a5a48a8b4d4 | 33 | #define TRX_STATE 0x02 |
ansond | 0:2a5a48a8b4d4 | 34 | #define TRX_CTRL_0 0x03 |
ansond | 0:2a5a48a8b4d4 | 35 | #define TRX_CTRL_1 0x04 |
ansond | 0:2a5a48a8b4d4 | 36 | #define PHY_TX_PWR 0x05 |
ansond | 0:2a5a48a8b4d4 | 37 | #define PHY_RSSI 0x06 |
ansond | 0:2a5a48a8b4d4 | 38 | #define PHY_ED_LEVEL 0x07 |
ansond | 0:2a5a48a8b4d4 | 39 | #define PHY_CC_CCA 0x08 |
ansond | 0:2a5a48a8b4d4 | 40 | #define RX_CTRL 0x0A |
ansond | 0:2a5a48a8b4d4 | 41 | #define SFD_VALUE 0x0B |
ansond | 0:2a5a48a8b4d4 | 42 | #define TRX_CTRL_2 0x0C |
ansond | 0:2a5a48a8b4d4 | 43 | #define ANT_DIV 0x0D |
ansond | 0:2a5a48a8b4d4 | 44 | #define IRQ_MASK 0x0E |
ansond | 0:2a5a48a8b4d4 | 45 | #define IRQ_STATUS 0x0F |
ansond | 0:2a5a48a8b4d4 | 46 | #define VREG_CTRL 0x10 |
ansond | 0:2a5a48a8b4d4 | 47 | #define BATMON 0x11 |
ansond | 0:2a5a48a8b4d4 | 48 | #define XOSC_CTRL 0x12 |
ansond | 0:2a5a48a8b4d4 | 49 | #define CC_CTRL_0 0x13 |
ansond | 0:2a5a48a8b4d4 | 50 | #define CC_CTRL_1 0x14 |
ansond | 0:2a5a48a8b4d4 | 51 | #define RX_SYN 0x15 |
ansond | 0:2a5a48a8b4d4 | 52 | #define TRX_RPC 0x16 |
ansond | 0:2a5a48a8b4d4 | 53 | #define RF_CTRL_0 0x16 |
ansond | 0:2a5a48a8b4d4 | 54 | #define XAH_CTRL_1 0x17 |
ansond | 0:2a5a48a8b4d4 | 55 | #define FTN_CTRL 0x18 |
ansond | 0:2a5a48a8b4d4 | 56 | #define PLL_CF 0x1A |
ansond | 0:2a5a48a8b4d4 | 57 | #define PLL_DCU 0x1B |
ansond | 0:2a5a48a8b4d4 | 58 | #define PART_NUM 0x1C |
ansond | 0:2a5a48a8b4d4 | 59 | #define VERSION_NUM 0x1D |
ansond | 0:2a5a48a8b4d4 | 60 | #define MAN_ID_0 0x1E |
ansond | 0:2a5a48a8b4d4 | 61 | #define MAN_ID_1 0x1F |
ansond | 0:2a5a48a8b4d4 | 62 | #define SHORT_ADDR_0 0x20 |
ansond | 0:2a5a48a8b4d4 | 63 | #define SHORT_ADDR_1 0x21 |
ansond | 0:2a5a48a8b4d4 | 64 | #define PAN_ID_0 0x22 |
ansond | 0:2a5a48a8b4d4 | 65 | #define PAN_ID_1 0x23 |
ansond | 0:2a5a48a8b4d4 | 66 | #define IEEE_ADDR_0 0x24 |
ansond | 0:2a5a48a8b4d4 | 67 | #define IEEE_ADDR_1 0x25 |
ansond | 0:2a5a48a8b4d4 | 68 | #define IEEE_ADDR_2 0x26 |
ansond | 0:2a5a48a8b4d4 | 69 | #define IEEE_ADDR_3 0x27 |
ansond | 0:2a5a48a8b4d4 | 70 | #define IEEE_ADDR_4 0x28 |
ansond | 0:2a5a48a8b4d4 | 71 | #define IEEE_ADDR_5 0x29 |
ansond | 0:2a5a48a8b4d4 | 72 | #define IEEE_ADDR_6 0x2A |
ansond | 0:2a5a48a8b4d4 | 73 | #define IEEE_ADDR_7 0x2B |
ansond | 0:2a5a48a8b4d4 | 74 | #define XAH_CTRL_0 0x2C |
ansond | 0:2a5a48a8b4d4 | 75 | #define CSMA_SEED_0 0x2D |
ansond | 0:2a5a48a8b4d4 | 76 | #define CSMA_SEED_1 0x2E |
ansond | 0:2a5a48a8b4d4 | 77 | #define CSMA_BE 0x2F |
ansond | 0:2a5a48a8b4d4 | 78 | |
ansond | 0:2a5a48a8b4d4 | 79 | /* CSMA_SEED_1*/ |
ansond | 0:2a5a48a8b4d4 | 80 | #define AACK_FVN_MODE1 7 |
ansond | 0:2a5a48a8b4d4 | 81 | #define AACK_FVN_MODE0 6 |
ansond | 0:2a5a48a8b4d4 | 82 | #define AACK_SET_PD 5 |
ansond | 0:2a5a48a8b4d4 | 83 | #define AACK_DIS_ACK 4 |
ansond | 0:2a5a48a8b4d4 | 84 | #define AACK_I_AM_COORD 3 |
ansond | 0:2a5a48a8b4d4 | 85 | #define CSMA_SEED_12 2 |
ansond | 0:2a5a48a8b4d4 | 86 | #define CSMA_SEED_11 1 |
ansond | 0:2a5a48a8b4d4 | 87 | #define CSMA_SEED_10 0 |
ansond | 0:2a5a48a8b4d4 | 88 | |
ansond | 0:2a5a48a8b4d4 | 89 | /*TRX_STATUS bits*/ |
ansond | 0:2a5a48a8b4d4 | 90 | #define CCA_STATUS 0x40 |
ansond | 0:2a5a48a8b4d4 | 91 | #define CCA_DONE 0x80 |
ansond | 0:2a5a48a8b4d4 | 92 | |
ansond | 0:2a5a48a8b4d4 | 93 | /*PHY_CC_CCA bits*/ |
ansond | 0:2a5a48a8b4d4 | 94 | #define CCA_REQUEST 0x80 |
ansond | 0:2a5a48a8b4d4 | 95 | #define CCA_MODE_1 0x20 |
ansond | 0:2a5a48a8b4d4 | 96 | #define CCA_MODE_3 0x60 |
ansond | 0:2a5a48a8b4d4 | 97 | |
ansond | 0:2a5a48a8b4d4 | 98 | /*IRQ_MASK bits*/ |
ansond | 0:2a5a48a8b4d4 | 99 | #define RX_START 0x04 |
ansond | 0:2a5a48a8b4d4 | 100 | #define TRX_END 0x08 |
ansond | 0:2a5a48a8b4d4 | 101 | #define CCA_ED_DONE 0x10 |
ansond | 0:2a5a48a8b4d4 | 102 | #define AMI 0x20 |
ansond | 0:2a5a48a8b4d4 | 103 | #define TRX_UR 0x40 |
ansond | 0:2a5a48a8b4d4 | 104 | |
ansond | 0:2a5a48a8b4d4 | 105 | /*ANT_DIV bits*/ |
ansond | 0:2a5a48a8b4d4 | 106 | #define ANT_DIV_EN 0x08 |
ansond | 0:2a5a48a8b4d4 | 107 | #define ANT_EXT_SW_EN 0x04 |
ansond | 0:2a5a48a8b4d4 | 108 | #define ANT_CTRL_DEFAULT 0x03 |
ansond | 0:2a5a48a8b4d4 | 109 | |
ansond | 0:2a5a48a8b4d4 | 110 | /*TRX_CTRL_1 bits*/ |
ansond | 0:2a5a48a8b4d4 | 111 | #define PA_EXT_EN 0x80 |
ansond | 0:2a5a48a8b4d4 | 112 | |
ansond | 0:2a5a48a8b4d4 | 113 | /*FTN_CTRL bits*/ |
ansond | 0:2a5a48a8b4d4 | 114 | #define FTN_START 0x80 |
ansond | 0:2a5a48a8b4d4 | 115 | |
ansond | 0:2a5a48a8b4d4 | 116 | /*PHY_RSSI bits*/ |
ansond | 0:2a5a48a8b4d4 | 117 | #define CRC_VALID 0x80 |
ansond | 0:2a5a48a8b4d4 | 118 | |
ansond | 0:2a5a48a8b4d4 | 119 | /*AT86RF212 PHY Modes*/ |
ansond | 0:2a5a48a8b4d4 | 120 | #define BPSK_20 0x00 |
ansond | 0:2a5a48a8b4d4 | 121 | #define BPSK_40 0x04 |
ansond | 0:2a5a48a8b4d4 | 122 | #define BPSK_40_ALT 0x14 |
ansond | 0:2a5a48a8b4d4 | 123 | #define OQPSK_SIN_RC_100 0x08 |
ansond | 0:2a5a48a8b4d4 | 124 | #define OQPSK_SIN_RC_200 0x09 |
ansond | 0:2a5a48a8b4d4 | 125 | #define OQPSK_RC_100 0x18 |
ansond | 0:2a5a48a8b4d4 | 126 | #define OQPSK_RC_200 0x19 |
ansond | 0:2a5a48a8b4d4 | 127 | #define OQPSK_SIN_250 0x0c |
ansond | 0:2a5a48a8b4d4 | 128 | #define OQPSK_SIN_500 0x0d |
ansond | 0:2a5a48a8b4d4 | 129 | #define OQPSK_SIN_500_ALT 0x0f |
ansond | 0:2a5a48a8b4d4 | 130 | #define OQPSK_RC_250 0x1c |
ansond | 0:2a5a48a8b4d4 | 131 | #define OQPSK_RC_500 0x1d |
ansond | 0:2a5a48a8b4d4 | 132 | #define OQPSK_RC_500_ALT 0x1f |
ansond | 0:2a5a48a8b4d4 | 133 | #define OQPSK_SIN_RC_400_SCR_ON 0x2A |
ansond | 0:2a5a48a8b4d4 | 134 | #define OQPSK_SIN_RC_400_SCR_OFF 0x0A |
ansond | 0:2a5a48a8b4d4 | 135 | #define OQPSK_RC_400_SCR_ON 0x3A |
ansond | 0:2a5a48a8b4d4 | 136 | #define OQPSK_RC_400_SCR_OFF 0x1A |
ansond | 0:2a5a48a8b4d4 | 137 | #define OQPSK_SIN_1000_SCR_ON 0x2E |
ansond | 0:2a5a48a8b4d4 | 138 | #define OQPSK_SIN_1000_SCR_OFF 0x0E |
ansond | 0:2a5a48a8b4d4 | 139 | #define OQPSK_RC_1000_SCR_ON 0x3E |
ansond | 0:2a5a48a8b4d4 | 140 | #define OQPSK_RC_1000_SCR_OFF 0x1E |
ansond | 0:2a5a48a8b4d4 | 141 | |
ansond | 0:2a5a48a8b4d4 | 142 | extern void rf_if_delay_function(uint16_t ticks); |
ansond | 0:2a5a48a8b4d4 | 143 | extern uint8_t rf_if_read_rnd(void); |
ansond | 0:2a5a48a8b4d4 | 144 | extern void rf_if_calibration_timer_start(uint32_t slots); |
ansond | 0:2a5a48a8b4d4 | 145 | extern void rf_if_interrupt_handler(void); |
ansond | 0:2a5a48a8b4d4 | 146 | extern void (*rf_if_get_rf_interrupt_function(void))(void); |
ansond | 0:2a5a48a8b4d4 | 147 | extern void rf_if_calibration_timer_interrupt(void); |
ansond | 0:2a5a48a8b4d4 | 148 | extern void rf_if_timer_init(void); |
ansond | 0:2a5a48a8b4d4 | 149 | extern void rf_if_ack_wait_timer_start(uint16_t slots); |
ansond | 0:2a5a48a8b4d4 | 150 | extern void rf_if_ack_wait_timer_stop(void); |
ansond | 0:2a5a48a8b4d4 | 151 | extern void rf_if_ack_wait_timer_interrupt(void); |
ansond | 0:2a5a48a8b4d4 | 152 | extern int8_t rf_if_set_rf_irq_pin(uint8_t port, uint8_t pin); |
ansond | 0:2a5a48a8b4d4 | 153 | extern int8_t rf_if_set_slp_tr_pin(uint8_t port, uint8_t pin); |
ansond | 0:2a5a48a8b4d4 | 154 | extern int8_t rf_if_set_reset_pin(uint8_t port, uint8_t pin); |
ansond | 0:2a5a48a8b4d4 | 155 | extern int8_t rf_if_set_spi_interface(uint8_t spi_interface, uint8_t cs_device); |
ansond | 0:2a5a48a8b4d4 | 156 | extern uint8_t rf_if_spi_exchange(uint8_t spi_if, uint8_t out); |
ansond | 0:2a5a48a8b4d4 | 157 | extern void rf_if_ack_pending_ctrl(uint8_t state); |
ansond | 0:2a5a48a8b4d4 | 158 | extern void rf_if_calibration(void); |
ansond | 0:2a5a48a8b4d4 | 159 | extern uint8_t rf_if_read_register(uint8_t addr); |
ansond | 0:2a5a48a8b4d4 | 160 | extern void rf_if_set_bit(uint8_t addr, uint8_t bit, uint8_t bit_mask); |
ansond | 0:2a5a48a8b4d4 | 161 | extern void rf_if_clear_bit(uint8_t addr, uint8_t bit); |
ansond | 0:2a5a48a8b4d4 | 162 | extern void rf_if_write_register(uint8_t addr, uint8_t data); |
ansond | 0:2a5a48a8b4d4 | 163 | extern void rf_if_reset_radio(void); |
ansond | 0:2a5a48a8b4d4 | 164 | extern void rf_if_enable_pa_ext(void); |
ansond | 0:2a5a48a8b4d4 | 165 | extern void rf_if_disable_pa_ext(void); |
ansond | 0:2a5a48a8b4d4 | 166 | extern void rf_if_enable_ant_div(void); |
ansond | 0:2a5a48a8b4d4 | 167 | extern void rf_if_disable_ant_div(void); |
ansond | 0:2a5a48a8b4d4 | 168 | extern void rf_if_enable_slptr(void); |
ansond | 0:2a5a48a8b4d4 | 169 | extern void rf_if_disable_slptr(void); |
ansond | 0:2a5a48a8b4d4 | 170 | extern void rf_if_write_antenna_diversity_settings(void); |
ansond | 0:2a5a48a8b4d4 | 171 | extern void rf_if_write_set_tx_power_register(uint8_t value); |
ansond | 0:2a5a48a8b4d4 | 172 | extern void rf_if_write_set_trx_rpc_register(uint8_t value); |
ansond | 0:2a5a48a8b4d4 | 173 | extern void rf_if_write_rf_settings(void); |
ansond | 0:2a5a48a8b4d4 | 174 | extern uint8_t rf_if_check_cca(void); |
ansond | 0:2a5a48a8b4d4 | 175 | extern uint8_t rf_if_check_crc(void); |
ansond | 0:2a5a48a8b4d4 | 176 | extern uint8_t rf_if_read_trx_state(void); |
ansond | 0:2a5a48a8b4d4 | 177 | extern void rf_if_read_packet(uint8_t *ptr, uint8_t len); |
ansond | 0:2a5a48a8b4d4 | 178 | extern void rf_if_write_short_addr_registers(uint8_t *short_address); |
ansond | 0:2a5a48a8b4d4 | 179 | extern uint8_t rf_if_last_acked_pending(void); |
ansond | 0:2a5a48a8b4d4 | 180 | extern void rf_if_write_pan_id_registers(uint8_t *pan_id); |
ansond | 0:2a5a48a8b4d4 | 181 | extern void rf_if_write_ieee_addr_registers(uint8_t *address); |
ansond | 0:2a5a48a8b4d4 | 182 | extern void rf_if_write_frame_buffer(uint8_t *ptr, uint8_t length); |
ansond | 0:2a5a48a8b4d4 | 183 | extern void rf_if_change_trx_state(rf_trx_states_t trx_state); |
ansond | 0:2a5a48a8b4d4 | 184 | extern void rf_if_enable_tx_end_interrupt(void); |
ansond | 0:2a5a48a8b4d4 | 185 | extern void rf_if_enable_rx_end_interrupt(void); |
ansond | 0:2a5a48a8b4d4 | 186 | extern void rf_if_enable_rx_start_interrupt(void); |
ansond | 0:2a5a48a8b4d4 | 187 | extern void rf_if_enable_cca_ed_done_interrupt(void); |
ansond | 0:2a5a48a8b4d4 | 188 | extern void rf_if_start_cca_process(void); |
ansond | 0:2a5a48a8b4d4 | 189 | extern uint8_t rf_if_read_received_frame_length(void); |
ansond | 0:2a5a48a8b4d4 | 190 | extern uint8_t rf_if_read_lqi(void); |
ansond | 0:2a5a48a8b4d4 | 191 | extern int8_t rf_if_read_rssi(void); |
ansond | 0:2a5a48a8b4d4 | 192 | extern void rf_if_set_channel_register(uint8_t channel); |
ansond | 0:2a5a48a8b4d4 | 193 | |
ansond | 0:2a5a48a8b4d4 | 194 | #endif /* DRIVERRFINTERFACE_H_ */ |