Performs initialization and reset functionalities of the transceiver.
Macros | |
#define | P_ON_TO_CLKM_ATTEMPTS |
#define | SLEEP_TO_TRX_OFF_ATTEMPTS |
#define | TRX_POLL_WAIT_TIME_US (100) |
Functions | |
static retval_t | internal_tal_reset (bool set_default_pib) |
Internal TAL reset function. More... | |
void | tal_generate_rand_seed (void) |
Generates a 16-bit random number used as initial seed for srand() More... | |
retval_t | tal_init (void) |
Initializes the TAL. More... | |
retval_t | tal_reset (bool set_default_pib) |
Resets TAL state machine and sets the default PIB values if requested. More... | |
static retval_t | tal_timer_init (void) |
Initializes all timers used by the TAL module by assigning id's to each of them. More... | |
static void | tal_timers_stop (void) |
Stops all initialized TAL timers. More... | |
static void | trx_config (void) |
Configures the transceiver. More... | |
static retval_t | trx_init (void) |
Initializes the transceiver. More... | |
static retval_t | trx_reset (void) |
Reset transceiver. More... | |
Variables | |
uint8_t | TAL_CSMA_BEACON_LOSS_TIMER |
uint8_t | TAL_CSMA_CCA |
#define P_ON_TO_CLKM_ATTEMPTS |
Referenced by trx_init().
#define SLEEP_TO_TRX_OFF_ATTEMPTS |
Referenced by trx_reset().
#define TRX_POLL_WAIT_TIME_US (100) |
Referenced by trx_init(), and trx_reset().
Internal TAL reset function.
set_default_pib | Defines whether PIB values need to be set to its default values |
References CSMA_IDLE, FAILURE, init_tal_pib(), MAC_SUCCESS, tal_csma_state, tal_generate_rand_seed(), TAL_IDLE, tal_rx_on_required, tal_state, trx_config(), trx_reset(), and write_all_tal_pib_to_trx().
Referenced by tal_init(), and tal_reset().
void tal_generate_rand_seed | ( | void | ) |
Generates a 16-bit random number used as initial seed for srand()
This function generates a 16-bit random number by means of using the Random Number Generator from the transceiver. The Random Number Generator generates 2-bit random values. These 2-bit random values are concatenated to the required 16-bit random seed. The generated random 16-bit number is feed into function srand() as initial seed. The transceiver state is initally set to RX_ON. After the completion of the random seed generation, the trancseiver is set to TRX_OFF.
References CMD_FORCE_TRX_OFF, CMD_RX_ON, i, pal_trx_irq_flag_clr, PAL_WAIT_1_US, RG_IRQ_STATUS, RX_ENABLE, RX_ON, set_trx_state(), SR_RND_VALUE, SR_RX_PDT_DIS, trx_bit_read(), trx_bit_write(), and trx_reg_read().
retval_t tal_init | ( | void | ) |
Initializes the TAL.
This function is called to initialize the TAL. The transceiver is initialized, the TAL PIBs are set to their default values, and the TAL state machine is set to TAL_IDLE state.
References EE_IEEE_ADDR, FAILURE, for(), FUNC_PTR, i, INTERN_EEPROM, internal_tal_reset(), MAC_SUCCESS, pal_init(), pal_ps_get(), pal_ps_set(), pal_trx_irq_en, pal_trx_irq_en_tstamp, pal_trx_irq_init_tstamp(), tal_incoming_frame_queue, tal_pib, tal_rx_buffer, tal_timer_init(), tfa_init(), trx_init(), trx_irq_handler_cb(), trx_irq_init(), and trx_irq_timestamp_handler_cb().
Resets TAL state machine and sets the default PIB values if requested.
set_default_pib | Defines whether PIB values need to be set to its default values |
References Assert, ENTER_CRITICAL_REGION, FAILURE, FUNC_PTR, internal_tal_reset(), LEAVE_CRITICAL_REGION, MAC_SUCCESS, NULL, pal_timer_start(), pal_trx_irq_en, pal_trx_irq_flag_clr, tal_incoming_frame_queue, tal_timers_stop(), tfa_reset(), TIMEOUT_RELATIVE, trx_irq_handler_cb(), and trx_irq_init().
|
static |
Initializes all timers used by the TAL module by assigning id's to each of them.
References FAILURE, MAC_SUCCESS, pal_timer_get_id(), TAL_CSMA_BEACON_LOSS_TIMER, and TAL_CSMA_CCA.
Referenced by tal_init().
|
static |
Stops all initialized TAL timers.
References pal_timer_stop(), TAL_CSMA_BEACON_LOSS_TIMER, and TAL_CSMA_CCA.
Referenced by tal_reset().
|
static |
Configures the transceiver.
This function is called to configure the transceiver after reset.
References ANT_EXT_SW_ENABLE, ANTENNA_DEFAULT, CLKM_SHA_DISABLE, IRQ_MASK_MODE_ON, PAD_CLKM_2_MA, RG_CSMA_SEED_0, RG_IRQ_MASK, RX_SAFE_MODE_ENABLE, RX_TIMESTAMPING_ENABLE, RXO_ENABLE, SET_PD, SLEEP_MODE_1, SR_AACK_SET_PD, SR_ANT_CTRL, SR_ANT_EXT_SW_EN, SR_CCA_ED_THRES, SR_CLKM_SHA_SEL, SR_CSMA_SEED_1, SR_IRQ_2_EXT_EN, SR_IRQ_MASK_MODE, SR_PAD_IO_CLKM, SR_RX_OVERRIDE, SR_RX_SAFE_MODE, tal_trx_sleep(), tal_trx_wakeup(), trx_bit_write(), TRX_IRQ_DEFAULT, and trx_reg_write().
|
static |
Initializes the transceiver.
This function is called to initialize the transceiver.
References CMD_TRX_OFF, FAILURE, MAC_SUCCESS, P_ON_TO_CLKM_ATTEMPTS, P_ON_TO_CLKM_AVAILABLE_TYP_US, pal_timer_delay, PART_NUM_AT86RF212B, RG_IRQ_MASK, RG_PART_NUM, RG_TRX_STATE, RST_PULSE_WIDTH_US, SR_TRX_STATUS, tal_trx_status, trx_bit_read(), TRX_NO_IRQ, TRX_OFF, TRX_POLL_WAIT_TIME_US, trx_reg_read(), trx_reg_write(), TRX_RST_HIGH, TRX_RST_LOW, and TRX_SLP_TR_LOW.
Referenced by tal_init().
|
static |
Reset transceiver.
References Assert, FAILURE, MAC_SUCCESS, pal_timer_delay, RST_PULSE_WIDTH_US, SLEEP_TO_TRX_OFF_ATTEMPTS, SLEEP_TO_TRX_OFF_TYP_US, SR_TRX_STATUS, stb_restart(), tal_trx_status, trx_bit_read(), TRX_OFF, TRX_POLL_WAIT_TIME_US, TRX_RST_HIGH, TRX_RST_LOW, and TRX_SLP_TR_LOW.
Referenced by internal_tal_reset().
uint8_t TAL_CSMA_BEACON_LOSS_TIMER |
uint8_t TAL_CSMA_CCA |