Contiki 3.x
Data Structures | Macros | Typedefs | Functions
hal.h File Reference

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...
 

Detailed Description

This file contains low-level radio driver code.

Id:
hal.h,v 1.5 2010/12/03 20:42:01 dak664 Exp

Definition in file hal.h.