Contiki 2.6

radio.c File Reference

This file contains radio driver code. More...

#include <stdlib.h>
#include <util/delay.h>
#include "radio.h"
#include "hal.h"
#include "process.h"
#include "sicslowmac.h"
#include "frame.h"

Go to the source code of this file.

Defines

#define RADIO_CCA_DONE_MASK   (1 << 7)
 Mask used to check the CCA_DONE bit.
#define RADIO_CCA_IDLE_MASK   (1 << 6)
 Mask used to check the CCA_STATUS bit.
#define RADIO_START_CCA   (1)
 Value in the CCA_REQUEST subregister that initiate a cca.

Enumerations

enum  radio_trx_timing_t {
  TIME_TO_ENTER_P_ON = 510, TIME_P_ON_TO_TRX_OFF = 510, TIME_SLEEP_TO_TRX_OFF = 880, TIME_RESET = 6,
  TIME_ED_MEASUREMENT = 140, TIME_CCA = 140, TIME_PLL_LOCK = 150, TIME_FTN_TUNING = 25,
  TIME_NOCLK_TO_WAKE = 6, TIME_CMD_FORCE_TRX_OFF = 1, TIME_TRX_OFF_TO_PLL_ACTIVE = 180, TIME_STATE_TRANSITION_PLL_ACTIVE = 1,
  TIME_TO_ENTER_P_ON = 510, TIME_P_ON_TO_TRX_OFF = 510, TIME_SLEEP_TO_TRX_OFF = 880, TIME_RESET = 6,
  TIME_ED_MEASUREMENT = 140, TIME_CCA = 140, TIME_PLL_LOCK = 150, TIME_FTN_TUNING = 25,
  TIME_NOCLK_TO_WAKE = 6, TIME_CMD_FORCE_TRX_OFF = 1, TIME_TRX_OFF_TO_PLL_ACTIVE = 180, TIME_STATE_TRANSITION_PLL_ACTIVE = 1
}
 

This enumeration defines the necessary timing information for the AT86RF230 radio transceiver.

More...

Functions

bool radio_is_sleeping (void)
 This function checks if the radio transceiver is sleeping.
radio_status_t radio_init (bool cal_rc_osc, hal_rx_start_isr_event_handler_t rx_event, hal_trx_end_isr_event_handler_t trx_end_event, radio_rx_callback rx_callback)
 Initialize the Transceiver Access Toolbox and lower layers.
uint8_t radio_get_operating_channel (void)
 This function will return the channel used by the radio transceiver.
radio_status_t radio_set_operating_channel (uint8_t channel)
 This function will change the operating channel.
uint8_t radio_get_tx_power_level (void)
 This function will read and return the output power level.
radio_status_t radio_set_tx_power_level (uint8_t power_level)
 This function will change the output power level.
uint8_t radio_get_cca_mode (void)
 This function returns the current CCA mode used.
uint8_t radio_get_ed_threshold (void)
 This function returns the current ED threshold used by the CCA algorithm.
radio_status_t radio_set_cca_mode (uint8_t mode, uint8_t ed_threshold)
 This function will configure the Clear Channel Assessment algorithm.
radio_status_t radio_get_rssi_value (uint8_t *rssi)
 This function returns the Received Signal Strength Indication.
uint8_t radio_batmon_get_voltage_threshold (void)
 This function returns the current threshold volatge used by the battery monitor (BATMON_VTH).
uint8_t radio_batmon_get_voltage_range (void)
 This function returns if high or low voltage range is used.
radio_status_t radio_batmon_configure (bool range, uint8_t voltage_threshold)
 This function is used to configure the battery monitor module.
radio_status_t radio_batmon_get_status (void)
 This function returns the status of the Battery Monitor module.
uint8_t radio_get_clock_speed (void)
 This function returns the current clock setting for the CLKM pin.
radio_status_t radio_set_clock_speed (bool direct, uint8_t clock_speed)
 This function changes the prescaler on the CLKM pin.
radio_status_t radio_calibrate_filter (void)
 This function calibrates the Single Side Band Filter.
radio_status_t radio_calibrate_pll (void)
 This function calibrates the PLL.
uint8_t radio_get_trx_state (void)
 This function return the Radio Transceivers current state.
radio_status_t radio_set_trx_state (uint8_t new_state)
 This function will change the current state of the radio transceiver's internal state machine.
radio_status_t radio_enter_sleep_mode (void)
 This function will put the radio transceiver to sleep.
radio_status_t radio_leave_sleep_mode (void)
 This function will take the radio transceiver from sleep mode and put it into the TRX_OFF state.
void radio_reset_state_machine (void)
 This function will reset the state machine (to TRX_OFF) from any of its states, except for the SLEEP state.
void radio_reset_trx (void)
 This function will reset all the registers and the state machine of the radio transceiver.
void radio_use_auto_tx_crc (bool auto_crc_on)
 This function will enable or disable automatic CRC during frame transmission.
radio_status_t radio_send_data (uint8_t data_length, uint8_t *data)
 This function will download a frame to the radio transceiver's transmit buffer and send it.
uint8_t radio_get_device_role (void)
 This function will read the I_AM_COORD sub register.
void radio_set_device_role (bool i_am_coordinator)
 This function will set the I_AM_COORD sub register.
uint16_t radio_get_pan_id (void)
 This function will return the PANID used by the address filter.
void radio_set_pan_id (uint16_t new_pan_id)
 This function will set the PANID used by the address filter.
uint16_t radio_get_short_address (void)
 This function will return the current short address used by the address filter.
void radio_set_short_address (uint16_t new_short_address)
 This function will set the short address used by the address filter.
void radio_get_extended_address (uint8_t *extended_address)
 This function will read the extended address used by the address filter.
void radio_set_extended_address (uint8_t *extended_address)
 This function will set a new extended address to be used by the address filter.
radio_status_t radio_configure_csma (uint8_t seed0, uint8_t be_csma_seed1)
 This function will configure the CSMA algorithm used by the radio transceiver when transmitting data from TX_ARET_ON state.
bool calibrate_rc_osc_clkm (void)
 Calibrate the internal RC oscillator.
void calibrate_rc_osc_32k (void)
 Calibrate the internal RC oscillator.

Detailed Description

This file contains radio driver code.

Definition in file radio.c.