Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Group_trx_access

This module includes api's and defenitions required for Devices with externally plugged transceivers(Non Soc's)

Macros

#define ENTER_TRX_CRITICAL_REGION()
 
#define IRQ_PINGET()   port_pin_get_input_level(AT86RFX_IRQ_PIN)
 
#define LEAVE_TRX_CRITICAL_REGION()   cpu_irq_restore(flags); }
 
#define READ_ACCESS_COMMAND   (0x0000)
 Read access command to the tranceiver. More...
 
#define RST_HIGH()
 Set TRX GPIO pins. More...
 
#define RST_LOW()
 
#define SLP_TR_HIGH()
 
#define SLP_TR_LOW()
 
#define trx_irq_flag_clr()   CLEAR_TRX_IRQ()
 Clears the transceiver main interrupt. More...
 
#define TRX_IRQ_GET()   IRQ_PINGET()
 
#define TRX_IRQ_HIGH()   IRQ_PINGET()
 Macro to get the transceiver's main IRQ status. More...
 
#define TRX_RST_HIGH()   RST_HIGH()
 Macro to set Reset pin to high. More...
 
#define TRX_RST_LOW()   RST_LOW()
 Macro to set Reset pin to low. More...
 
#define TRX_SLP_TR_HIGH()   SLP_TR_HIGH()
 Macro to set SLP_TR pin to high. More...
 
#define TRX_SLP_TR_LOW()   SLP_TR_LOW()
 Macro to set SLP_TR pin to low. More...
 
#define TRX_TRIG_DELAY()   {nop(); nop(); }
 
#define U16_TO_TARGET(x)   ((((x) << 8) & 0xFF00) | (((x) >> 8) & 0x00FF))
 This macro is used for handling endianness among the different CPUs. More...
 
#define WRITE_ACCESS_COMMAND   (0x8000)
 Write access command of the transceiver. More...
 

Typedefs

typedef void(* irq_handler_t )(void)
 Transceiver ISR handler. More...
 

Functions

void PhyReset (void)
 Resets the TRX radio. More...
 
uint8_t trx_bit_read (uint16_t addr, uint8_t mask, uint8_t pos)
 Subregister read. More...
 
void trx_bit_write (uint16_t reg_addr, uint8_t mask, uint8_t pos, uint8_t new_value)
 Subregister write. More...
 
void trx_irq_init (FUNC_PTR trx_irq_cb)
 
void trx_read (uint16_t addr, uint8_t *data, uint16_t length)
 
uint8_t trx_reg_read (uint16_t addr)
 
void trx_reg_write (uint16_t addr, uint8_t data)
 Writes data into a transceiver register. More...
 
void trx_spi_done_cb_init (void *spi_done_cb)
 SPI done callback initialization. More...
 
void trx_spi_init (void)
 Initializes the SPI interface for communication with the transceiver. More...
 
void trx_write (uint16_t addr, uint8_t *data, uint16_t length)
 

#define ENTER_TRX_CRITICAL_REGION ( )
Value:
{uint8_t flags \
static irqflags_t cpu_irq_save(void)
Get and clear the global interrupt flags.
Definition: interrupt_sam_nvic.h:141
#define IRQ_PINGET ( )    port_pin_get_input_level(AT86RFX_IRQ_PIN)
#define LEAVE_TRX_CRITICAL_REGION ( )    cpu_irq_restore(flags); }
#define READ_ACCESS_COMMAND   (0x0000)

Read access command to the tranceiver.

Referenced by trx_read(), and trx_reg_read().

#define RST_HIGH ( )
Value:
port_pin_set_output_level( \
#define AT86RFX_RST_PIN
Definition: sam4s_xplained_pro.h:553

Set TRX GPIO pins.

Referenced by PhyReset(), and trx_reset().

#define RST_LOW ( )
Value:
port_pin_set_output_level( \
#define AT86RFX_RST_PIN
Definition: sam4s_xplained_pro.h:553

Referenced by PhyReset(), and trx_reset().

#define SLP_TR_HIGH ( )
Value:
port_pin_set_output_level( \
#define AT86RFX_SLP_PIN
Definition: sam4s_xplained_pro.h:555
#define SLP_TR_LOW ( )
Value:
port_pin_set_output_level( \
#define AT86RFX_SLP_PIN
Definition: sam4s_xplained_pro.h:555

Referenced by PhyReset().

#define trx_irq_flag_clr ( )    CLEAR_TRX_IRQ()

Clears the transceiver main interrupt.

#define TRX_IRQ_GET ( )    IRQ_PINGET()

Referenced by trx_reset().

#define TRX_IRQ_HIGH ( )    IRQ_PINGET()

Macro to get the transceiver's main IRQ status.

#define TRX_RST_HIGH ( )    RST_HIGH()

Macro to set Reset pin to high.

#define TRX_RST_LOW ( )    RST_LOW()

Macro to set Reset pin to low.

#define TRX_SLP_TR_HIGH ( )    SLP_TR_HIGH()

Macro to set SLP_TR pin to high.

#define TRX_SLP_TR_LOW ( )    SLP_TR_LOW()

Macro to set SLP_TR pin to low.

#define TRX_TRIG_DELAY ( )    {nop(); nop(); }
#define U16_TO_TARGET (   x)    ((((x) << 8) & 0xFF00) | (((x) >> 8) & 0x00FF))

This macro is used for handling endianness among the different CPUs.

#define WRITE_ACCESS_COMMAND   (0x8000)

Write access command of the transceiver.

Referenced by trx_reg_write(), and trx_write().

typedef void(* irq_handler_t)(void)

Transceiver ISR handler.

void PhyReset ( void  )

Resets the TRX radio.

References delay_us, RST_HIGH, RST_LOW, and SLP_TR_LOW.

uint8_t trx_bit_read ( uint16_t  addr,
uint8_t  mask,
uint8_t  pos 
)

Subregister read.

Parameters
addroffset of the register
maskbit mask of the subregister
posbit position of the subregister
Returns
value of the read bit(s)

References trx_reg_read().

Referenced by cca_start(), crc_check_ok(), handle_incoming_frame(), handle_rx_end_irq(), handle_tx_end_irq(), tal_get_curr_trx_config(), tal_get_trx_status(), tal_rxaack_prom_mode_ctrl(), tal_set_rx_sensitivity_level(), tfa_get_batmon_voltage(), transmit_frame(), and wait_for_freq_settling().

void trx_irq_init ( FUNC_PTR  trx_irq_cb)

References irq_hdl_trx.

Referenced by tal_init(), and tal_reset().

void trx_spi_done_cb_init ( void *  spi_done_cb)

SPI done callback initialization.

Parameters
spi_done_cbPointer to SPI done callback function
void trx_spi_init ( void  )