Contiki 3.x
|
This file contains low-level radio driver code. More...
#include <stdint.h>
#include <stdbool.h>
#include "K60.h"
#include "contiki-conf.h"
#include "interrupt.h"
Go to the source code of this file.
Data Structures | |
struct | hal_rx_frame_t |
This struct defines the rx data container. More... | |
Macros | |
#define | hal_enable_trx_interrupt() HAL_ENABLE_RADIO_INTERRUPT() |
Enable the interrupt from the radio transceiver. | |
#define | hal_disable_trx_interrupt() HAL_DISABLE_RADIO_INTERRUPT() |
Disable the interrupt from the radio transceiver. More... | |
Pin macros | |
These macros convert the platform-specific pin defines into names and functions that the source code can directly use. | |
#define | SLPTR_GPIO PTE |
#define | SLPTR_PIN 6 |
#define | hal_set_slptr_high() (BITBAND_REG(SLPTR_GPIO->PSOR, SLPTR_PIN) = 1) |
This macro pulls the SLP_TR pin high. More... | |
#define | hal_set_slptr_low() (BITBAND_REG(SLPTR_GPIO->PCOR, SLPTR_PIN) = 1) |
This macro pulls the SLP_TR pin low. More... | |
#define | hal_get_slptr() (BITBAND_REG(SLPTR_GPIO->PDOR, SLPTR_PIN)) |
Read current state of the SLP_TR pin (High/Low). More... | |
#define | hal_set_rst_high() PTD->PSOR = (1 << 7); delay_us(0xFFFF) |
This macro pulls the RST pin high. More... | |
#define | hal_set_rst_low() (PTD->PCOR = (1 << 7)) |
This macro pulls the RST pin low. More... | |
#define | hal_get_rst() ((PTD->PDOR & (1 << 7)) >> 7) |
Read current state of the RST pin (High/Low). More... | |
#define | hal_set_pwr_high() (PTD->PSOR = (1 << 7)) |
This macro pulls the RST pin high. More... | |
#define | hal_set_pwr_low() (PTD->PCOR = (1 << 7)) |
This macro pulls the RST pin low. More... | |
#define | hal_get_pwr() ((PTD->PDOR & (1 << 7)) >> 7) |
Read current state of the RST pin (High/Low). More... | |
#define | HAL_SS_PIN 1 |
The slave select pin. More... | |
Macros for radio operation. | |
#define | HAL_BAT_LOW_MASK (0x80) |
Mask for the BAT_LOW interrupt. More... | |
#define | HAL_TRX_UR_MASK (0x40) |
Mask for the TRX_UR interrupt. More... | |
#define | HAL_TRX_END_MASK (0x08) |
Mask for the TRX_END interrupt. More... | |
#define | HAL_RX_START_MASK (0x04) |
Mask for the RX_START interrupt. More... | |
#define | HAL_PLL_UNLOCK_MASK (0x02) |
Mask for the PLL_UNLOCK interrupt. More... | |
#define | HAL_PLL_LOCK_MASK (0x01) |
Mask for the PLL_LOCK interrupt. More... | |
#define | HAL_MIN_FRAME_LENGTH (0x03) |
A frame should be at least 3 bytes. More... | |
#define | HAL_MAX_FRAME_LENGTH (0x7F) |
A frame should no more than 127 bytes. More... | |
Typedefs | |
typedef void(* | hal_rx_start_isr_event_handler_t )(uint32_t const isr_timestamp, uint8_t const frame_length) |
RX_START event handler callback type. More... | |
typedef void(* | hal_trx_end_isr_event_handler_t )(uint32_t const isr_timestamp) |
RRX_END event handler callback type. More... | |
Functions | |
void | hal_init (void) |
This function initializes the Hardware Abstraction Layer. | |
void | hal_reset_flags (void) |
This function reset the interrupt flags and interrupt event handlers (Callbacks) to their default value. | |
uint8_t | hal_get_bat_low_flag (void) |
This function returns the current value of the BAT_LOW flag. More... | |
void | hal_clear_bat_low_flag (void) |
This function clears the BAT_LOW flag. | |
hal_trx_end_isr_event_handler_t | hal_get_trx_end_event_handler (void) |
This function is used to set new TRX_END event handler, overriding old handler reference. | |
void | hal_set_trx_end_event_handler (hal_trx_end_isr_event_handler_t trx_end_callback_handle) |
This function is used to set new TRX_END event handler, overriding old handler reference. | |
void | hal_clear_trx_end_event_handler (void) |
Remove event handler reference. | |
hal_rx_start_isr_event_handler_t | hal_get_rx_start_event_handler (void) |
This function returns the active RX_START event handler. More... | |
void | hal_set_rx_start_event_handler (hal_rx_start_isr_event_handler_t rx_start_callback_handle) |
This function is used to set new RX_START event handler, overriding old handler reference. | |
void | hal_clear_rx_start_event_handler (void) |
Remove event handler reference. | |
uint8_t | hal_get_pll_lock_flag (void) |
This function returns the current value of the PLL_LOCK flag. More... | |
void | hal_clear_pll_lock_flag (void) |
This function clears the PLL_LOCK flag. | |
uint8_t | hal_register_read (uint8_t address) |
This function reads data from one of the radio transceiver's registers. More... | |
void | hal_register_write (uint8_t address, uint8_t value) |
This function writes a new value to one of the radio transceiver's registers. More... | |
uint8_t | hal_subregister_read (uint8_t address, uint8_t mask, uint8_t position) |
This function reads the value of a specific subregister. More... | |
void | hal_subregister_write (uint8_t address, uint8_t mask, uint8_t position, uint8_t value) |
This function writes a new value to one of the radio transceiver's subregisters. More... | |
void | hal_frame_read (hal_rx_frame_t *rx_frame) |
Transfer a frame from the radio transceiver to a RAM buffer. More... | |
void | hal_frame_write (uint8_t *write_buffer, uint8_t length) |
This function will download a frame to the radio transceiver's frame buffer. More... | |
void | hal_sram_read (uint8_t address, uint8_t length, uint8_t *data) |
Read SRAM. More... | |
void | hal_sram_write (uint8_t address, uint8_t length, uint8_t *data) |
Write SRAM. More... | |
This file contains low-level radio driver code.
Definition in file hal.h.