00001
00096 #ifndef TAT_H
00097 #define TAT_H
00098
00099 #include <stdint.h>
00100 #include <stdbool.h>
00101
00102 #define SUPPORTED_PART_NUMBER ( 2 )
00103 #define RF230_REVA ( 1 )
00104 #define RF230_REVB ( 2 )
00105 #define SUPPORTED_MANUFACTURER_ID ( 31 )
00106 #define RF230_SUPPORTED_INTERRUPT_MASK ( 0xCF )
00107
00108 #define RF230_MIN_CHANNEL ( 11 )
00109 #define RF230_MAX_CHANNEL ( 26 )
00110 #define RF230_MIN_ED_THRESHOLD ( 0 )
00111 #define RF230_MAX_ED_THRESHOLD ( 15 )
00112 #define RF230_MAX_TX_FRAME_LENGTH ( 127 )
00113
00114 #define TX_PWR_3DBM ( 0 )
00115 #define TX_PWR_17_2DBM ( 15 )
00116
00117 #define BATTERY_MONITOR_HIGHEST_VOLTAGE ( 15 )
00118 #define BATTERY_MONITOR_VOLTAGE_UNDER_THRESHOLD ( 0 )
00119 #define BATTERY_MONITOR_HIGH_VOLTAGE ( 1 )
00120 #define BATTERY_MONITOR_LOW_VOLTAGE ( 0 )
00121
00122 #define FTN_CALIBRATION_DONE ( 0 )
00123 #define PLL_DCU_CALIBRATION_DONE ( 0 )
00124 #define PLL_CF_CALIBRATION_DONE ( 0 )
00125
00126
00137 #define TAT_STATUS_START_VALUE ( 0x40 )
00138
00147 typedef enum{
00149 TAT_SUCCESS = TAT_STATUS_START_VALUE,
00151 TAT_UNSUPPORTED_DEVICE,
00153 TAT_INVALID_ARGUMENT,
00155 TAT_TIMED_OUT,
00157 TAT_WRONG_STATE,
00159 TAT_BUSY_STATE,
00161 TAT_STATE_TRANSITION_FAILED,
00163 TAT_CCA_IDLE,
00165 TAT_CCA_BUSY,
00167 TAT_TRX_BUSY,
00169 TAT_BAT_LOW,
00171 TAT_BAT_OK,
00173 TAT_CRC_FAILED,
00175 TAT_CHANNEL_ACCESS_FAILURE,
00177 TAT_NO_ACK,
00178 }tat_status_t;
00179
00187 typedef enum{
00189 CCA_ED = 0,
00191 CCA_CARRIER_SENSE = 1,
00193 CCA_CARRIER_SENSE_WITH_ED = 2
00194 }tat_cca_mode_t;
00195
00202 typedef enum{
00203
00204 CLKM_DISABLED = 0,
00205 CLKM_1MHZ = 1,
00206 CLKM_2MHZ = 2,
00207 CLKM_4MHZ = 3,
00208 CLKM_8MHZ = 4,
00209 CLKM_16MHZ = 5
00210 }tat_clkm_speed_t;
00211
00212 tat_status_t tat_init( void );
00213 uint8_t tat_get_operating_channel( void );
00214 tat_status_t tat_set_operating_channel( uint8_t channel );
00215 uint8_t tat_get_tx_power_level( void );
00216 tat_status_t tat_set_tx_power_level( uint8_t power_level );
00217
00218 tat_status_t tat_do_ed_scan( uint8_t *ed_level );
00219 uint8_t tat_get_cca_mode( void );
00220 uint8_t tat_get_ed_threshold( void );
00221 tat_status_t tat_set_cca_mode( uint8_t mode, uint8_t ed_threshold );
00222 tat_status_t tat_do_cca( void );
00223 tat_status_t tat_get_rssi_value( uint8_t *rssi );
00224
00225 uint8_t tat_batmon_get_voltage_threshold( void );
00226 uint8_t tat_batmon_get_voltage_range( void );
00227 tat_status_t tat_batmon_configure( bool range, uint8_t voltage_threshold );
00228 tat_status_t tat_batmon_get_status( void );
00229
00230 uint8_t tat_get_clock_speed( void );
00231 tat_status_t tat_set_clock_speed( bool direct, uint8_t clock_speed );
00232 tat_status_t tat_calibrate_filter( void );
00233 tat_status_t tat_calibrate_pll( void );
00234
00235 uint8_t tat_get_trx_state( void );
00236 tat_status_t tat_set_trx_state( uint8_t new_state );
00237 tat_status_t tat_enter_sleep_mode( void );
00238 tat_status_t tat_leave_sleep_mode( void );
00239 void tat_reset_state_machine( void );
00240 void tat_reset_trx( void );
00241
00242 void tat_use_auto_tx_crc( bool auto_crc_on );
00243 tat_status_t tat_send_data( uint8_t *data, uint8_t data_length );
00244 void tat_read_data( uint8_t *rx_data );
00245
00246 uint16_t tat_get_pan_id( void );
00247 void tat_set_pan_id( uint16_t new_pan_id );
00248 uint16_t tat_get_short_address( void );
00249 void tat_set_short_address( uint16_t new_short_address );
00250 uint64_t tat_get_extended_address( void );
00251 void tat_set_extended_address( uint64_t new_extended_address );
00252 tat_status_t tat_configure_csma( uint8_t seed0, uint8_t be_csma_seed1 );
00253 tat_status_t tat_send_data_with_retry( uint8_t frame_length, uint8_t *frame,
00254 uint8_t retries );
00255 #endif
00256