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() ioport_get_pin_level(AT86RFX_IRQ_PIN) |
#define | LEAVE_TRX_CRITICAL_REGION() cpu_irq_restore(flags); } |
#define | READ_ACCESS_COMMAND (0x80) |
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_CMD_FR (0x20) |
Frame read command of transceiver. More... | |
#define | TRX_CMD_FW (0x60) |
Frame write command of transceiver. More... | |
#define | TRX_CMD_SR (0x00) |
SRAM read command of transceiver. More... | |
#define | TRX_CMD_SW (0x40) |
SRAM write command of transceiver. More... | |
#define | trx_irq_flag_clr() CLEAR_TRX_IRQ() |
Clears the transceiver main interrupt. More... | |
#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) |
This macro is used for handling endianness among the different CPUs. More... | |
#define | WRITE_ACCESS_COMMAND (0xC0) |
Write access command of the transceiver. More... | |
Typedefs | |
typedef void(* | irq_handler_t )(void) |
Functions | |
void | PhyReset (void) |
Resets the TRX radio. More... | |
void | trx_aes_wrrd (uint8_t addr, uint8_t *idata, uint8_t length) |
Writes and reads data into/from SRAM of the transceiver. More... | |
uint8_t | trx_bit_read (uint8_t addr, uint8_t mask, uint8_t pos) |
Subregister read. More... | |
void | trx_bit_write (uint8_t reg_addr, uint8_t mask, uint8_t pos, uint8_t new_value) |
Subregister write. More... | |
void | trx_frame_read (uint8_t *data, uint8_t length) |
Reads frame buffer of the transceiver. More... | |
void | trx_frame_write (uint8_t *data, uint8_t length) |
Writes data into frame buffer of the transceiver. More... | |
void | trx_irq_init (FUNC_PTR trx_irq_cb) |
uint8_t | trx_reg_read (uint8_t addr) |
Reads current value from a transceiver register. More... | |
void | trx_reg_write (uint8_t addr, uint8_t data) |
Writes data into a transceiver register. More... | |
void | trx_spi_disable (void) |
Disables the SPI interface for communication with the transceiver. More... | |
void | trx_spi_done_cb_init (void *spi_done_cb) |
SPI done callback initialization. More... | |
void | trx_spi_enable (void) |
enables the SPI interface for communication with the transceiver More... | |
void | trx_spi_init (void) |
Initializes the SPI interface for communication with the transceiver. More... | |
void | trx_sram_read (uint8_t addr, uint8_t *data, uint8_t length) |
Reads data from SRAM of the transceiver. More... | |
void | trx_sram_write (uint8_t addr, uint8_t *data, uint8_t length) |
Writes data into SRAM of the transceiver. More... | |
#define ENTER_TRX_CRITICAL_REGION | ( | ) |
Referenced by trx_frame_read(), trx_frame_write(), trx_reg_read(), trx_reg_write(), trx_sram_read(), and trx_sram_write().
#define IRQ_PINGET | ( | ) | ioport_get_pin_level(AT86RFX_IRQ_PIN) |
#define LEAVE_TRX_CRITICAL_REGION | ( | ) | cpu_irq_restore(flags); } |
Referenced by trx_frame_read(), trx_frame_write(), trx_reg_read(), trx_reg_write(), trx_sram_read(), and trx_sram_write().
#define READ_ACCESS_COMMAND (0x80) |
Read access command to the tranceiver.
Referenced by trx_reg_read().
#define RST_HIGH | ( | ) |
Set TRX GPIO pins.
Referenced by PhyReset(), and trx_reset().
#define RST_LOW | ( | ) |
Referenced by PhyReset(), and trx_reset().
#define SLP_TR_HIGH | ( | ) |
#define SLP_TR_LOW | ( | ) |
Referenced by PhyReset().
#define TRX_CMD_FR (0x20) |
Frame read command of transceiver.
Referenced by trx_frame_read().
#define TRX_CMD_FW (0x60) |
Frame write command of transceiver.
Referenced by trx_frame_write().
#define TRX_CMD_SR (0x00) |
SRAM read command of transceiver.
Referenced by trx_sram_read().
#define TRX_CMD_SW (0x40) |
SRAM write command of transceiver.
Referenced by trx_aes_wrrd(), and trx_sram_write().
#define trx_irq_flag_clr | ( | ) | CLEAR_TRX_IRQ() |
Clears the transceiver main interrupt.
#define TRX_IRQ_HIGH | ( | ) | IRQ_PINGET() |
Macro to get the transceiver's main IRQ status.
Referenced by switch_pll_on().
#define TRX_RST_HIGH | ( | ) | RST_HIGH() |
Macro to set Reset pin to high.
Referenced by trx_init(), and trx_reset().
#define TRX_RST_LOW | ( | ) | RST_LOW() |
Macro to set Reset pin to low.
Referenced by trx_init(), and trx_reset().
#define TRX_SLP_TR_HIGH | ( | ) | SLP_TR_HIGH() |
Macro to set SLP_TR pin to high.
Referenced by handle_tx_end_irq(), PHY_DataReq(), PHY_Sleep(), send_frame(), set_trx_state(), and tfa_continuous_tx_start().
#define TRX_SLP_TR_LOW | ( | ) | SLP_TR_LOW() |
Macro to set SLP_TR pin to low.
Referenced by handle_tx_end_irq(), PHY_DataReq(), PHY_Wakeup(), send_frame(), set_trx_state(), tfa_continuous_tx_start(), trx_init(), and trx_reset().
Referenced by PHY_DataReq().
#define U16_TO_TARGET | ( | x | ) | (x) |
This macro is used for handling endianness among the different CPUs.
#define WRITE_ACCESS_COMMAND (0xC0) |
Write access command of the transceiver.
Referenced by trx_reg_write().
typedef void(* irq_handler_t)(void) |
void PhyReset | ( | void | ) |
Resets the TRX radio.
References delay_us, RST_HIGH, RST_LOW, and SLP_TR_LOW.
Referenced by PHY_Init().
void trx_aes_wrrd | ( | uint8_t | addr, |
uint8_t * | idata, | ||
uint8_t | length | ||
) |
Writes and reads data into/from SRAM of the transceiver.
This function writes data into the SRAM of the transceiver and simultaneously reads the bytes.
addr | Start address in the SRAM for the write operation |
idata | Pointer to the data written/read into/from SRAM |
length | Number of bytes written/read into/from SRAM |
References delay_us, spi_deselect_device(), spi_is_tx_empty(), spi_read(), spi_read_packet(), spi_read_single(), spi_select_device(), spi_write(), spi_write_packet(), temp, and TRX_CMD_SW.
Referenced by sal_aes_wrrd().
uint8_t trx_bit_read | ( | uint8_t | addr, |
uint8_t | mask, | ||
uint8_t | pos | ||
) |
Subregister read.
addr | offset of the register |
mask | bit mask of the subregister |
pos | bit position of the subregister |
References trx_reg_read().
Referenced by cca_start(), crc_check_ok(), handle_incoming_frame(), handle_received_frame_irq(), handle_rx_end_irq(), handle_tx_end_irq(), perform_cca_twice(), set_trx_state(), switch_pll_on(), tal_generate_rand_seed(), tal_get_curr_trx_config(), tal_get_trx_status(), tal_rxaack_prom_mode_ctrl(), tal_set_frequency(), tal_set_frequency_regs(), tal_set_rx_sensitivity_level(), tfa_cca_perform(), tfa_get_batmon_voltage(), transmit_frame(), trx_init(), trx_irq_handler_cb(), trx_reset(), and wait_for_freq_settling().
void trx_bit_write | ( | uint8_t | reg_addr, |
uint8_t | mask, | ||
uint8_t | pos, | ||
uint8_t | new_value | ||
) |
Subregister write.
[in] | reg_addr | Offset of the register |
[in] | mask | Bit mask of the subregister |
[in] | pos | Bit position of the subregister |
[out] | new_value | Data, which is muxed into the register |
References trx_reg_read(), and trx_reg_write().
Referenced by ack_transmission_done(), apply_channel_page_configuration(), conf_fsk(), conf_leg_oqpsk(), conf_ofdm(), conf_oqpsk(), config_frequency(), config_fsk_rpc(), config_phy(), handle_ed_end_irq(), handle_incoming_frame(), handle_rx_end_irq(), handle_tx_end_irq(), ofdm_rfcfg(), oqpsk_rfcfg(), per_mode_receptor_init(), perform_cca_twice(), send_frame(), set_fsk_pibs(), set_trx_state(), set_tx_pwr(), start_rpc(), stop_rpc(), tal_generate_rand_seed(), tal_pib_set(), tal_rxaack_prom_mode_ctrl(), tal_set_frequency(), tal_set_frequency_regs(), tal_set_rx_sensitivity_level(), tfa_cca_perform(), tfa_continuous_tx_start(), tfa_ed_sample(), tfa_get_batmon_voltage(), tfa_pib_set(), transmit_frame(), trx_config(), trx_init(), trx_irq_handler_cb(), and write_all_tal_pib_to_trx().
void trx_frame_read | ( | uint8_t * | data, |
uint8_t | length | ||
) |
Reads frame buffer of the transceiver.
This function reads the frame buffer of the transceiver.
[out] | data | Pointer to the location to store frame |
[in] | length | Number of bytes to be read from the frame buffer. |
References ENTER_TRX_CRITICAL_REGION, LEAVE_TRX_CRITICAL_REGION, spi_deselect_device(), spi_read(), spi_read_packet(), spi_select_device(), spi_write(), spi_write_packet(), temp, and TRX_CMD_FR.
Referenced by handle_received_frame_irq(), and PHY_TaskHandler().
void trx_frame_write | ( | uint8_t * | data, |
uint8_t | length | ||
) |
Writes data into frame buffer of the transceiver.
This function writes data into the frame buffer of the transceiver
[in] | data | Pointer to data to be written into frame buffer |
[in] | length | Number of bytes to be written into frame buffer |
References ENTER_TRX_CRITICAL_REGION, LEAVE_TRX_CRITICAL_REGION, spi_deselect_device(), spi_read(), spi_select_device(), spi_write(), spi_write_packet(), temp, and TRX_CMD_FW.
Referenced by PHY_DataReq(), send_frame(), and tfa_continuous_tx_start().
void trx_irq_init | ( | FUNC_PTR | trx_irq_cb | ) |
References irq_hdl_trx.
Referenced by set_trx_state(), tal_init(), and tal_reset().
uint8_t trx_reg_read | ( | uint8_t | addr | ) |
Reads current value from a transceiver register.
This function reads the current value from a transceiver register.
addr | Specifies the address of the trx register from which the data shall be read |
References ENTER_TRX_CRITICAL_REGION, LEAVE_TRX_CRITICAL_REGION, READ_ACCESS_COMMAND, spi_deselect_device(), spi_read(), spi_read_packet(), spi_select_device(), spi_write(), and spi_write_packet().
Referenced by cancel_any_reception(), complete_rx_transaction(), conf_trx_modulation(), handle_ed_end_irq(), handle_received_frame_irq(), perform_cca_twice(), phyReadRegister(), set_trx_state(), switch_pll_on(), tal_dump_registers(), tal_generate_rand_seed(), tal_get_curr_trx_config(), tal_init(), tal_rpc_mode_config(), tal_set_frequency(), tal_set_frequency_regs(), tal_trx_reg_read(), tal_trx_reg_write(), tfa_ed_sample(), tfa_get_batmon_voltage(), transmit_frame(), trx_bit_read(), trx_bit_write(), trx_config(), trx_init(), trx_irq_awake_handler_cb(), trx_irq_handler_cb(), trx_reset(), and wait_for_txprep().
void trx_reg_write | ( | uint8_t | addr, |
uint8_t | data | ||
) |
Writes data into a transceiver register.
This function writes a value into transceiver register.
addr | Address of the trx register |
data | Data to be written to trx register |
References ENTER_TRX_CRITICAL_REGION, LEAVE_TRX_CRITICAL_REGION, spi_deselect_device(), spi_read(), spi_select_device(), spi_write(), spi_write_packet(), and WRITE_ACCESS_COMMAND.
Referenced by ack_timout_cb(), ack_transmission_done(), apply_channel_settings(), conf_trx_modulation(), config_fsk_rpc(), config_phy(), fsk_rfcfg(), handle_ed_end_irq(), handle_incoming_frame(), handle_rx_end_irq(), handle_trxerr(), PHY_SetIEEEAddr(), phyWriteRegister(), set_default_tx_pwr(), set_ed_sample_duration(), set_fsk_pibs(), set_trx_state(), start_ack_wait_timer(), start_rpc(), stop_rpc(), switch_pll_on(), switch_to_rx(), switch_to_txprep(), tal_generate_rand_seed(), tal_pib_set(), tal_rpc_mode_config(), tal_rx_enable(), tal_set_frequency(), tal_set_frequency_regs(), tal_trx_reg_write(), tal_trx_sleep(), tal_trx_wakeup(), tfa_continuous_tx_start(), tfa_ed_sample(), transmit_frame(), trx_bit_write(), trx_config(), trx_init(), trx_reset(), tx_done_handling(), wait_for_freq_settling(), wait_for_txprep(), and write_all_tal_pib_to_trx().
void trx_spi_disable | ( | void | ) |
Disables the SPI interface for communication with the transceiver.
References spi_disable().
void trx_spi_done_cb_init | ( | void * | spi_done_cb | ) |
SPI done callback initialization.
spi_done_cb | Pointer to SPI done callback function |
void trx_spi_enable | ( | void | ) |
enables the SPI interface for communication with the transceiver
References spi_enable().
void trx_spi_init | ( | void | ) |
Initializes the SPI interface for communication with the transceiver.
References config, spi_enable(), spi_master_init(), spi_master_setup_device(), and SPI_MODE_0.
Referenced by pal_init(), and PHY_Init().
void trx_sram_read | ( | uint8_t | addr, |
uint8_t * | data, | ||
uint8_t | length | ||
) |
Reads data from SRAM of the transceiver.
This function reads from the SRAM of the transceiver
[in] | addr | Start address in SRAM for read operation |
[out] | data | Pointer to the location where data stored |
[in] | length | Number of bytes to be read from SRAM |
References delay_us, ENTER_TRX_CRITICAL_REGION, LEAVE_TRX_CRITICAL_REGION, spi_deselect_device(), spi_is_tx_empty(), spi_read(), spi_read_packet(), spi_select_device(), spi_write(), spi_write_packet(), temp, and TRX_CMD_SR.
Referenced by handle_received_frame_irq(), sal_aes_read(), and sal_aes_setup().
void trx_sram_write | ( | uint8_t | addr, |
uint8_t * | data, | ||
uint8_t | length | ||
) |
Writes data into SRAM of the transceiver.
This function writes data into the SRAM of the transceiver
addr | Start address in the SRAM for the write operation |
data | Pointer to the data to be written into SRAM |
length | Number of bytes to be written into SRAM |
References ENTER_TRX_CRITICAL_REGION, LEAVE_TRX_CRITICAL_REGION, spi_deselect_device(), spi_is_tx_empty(), spi_read(), spi_select_device(), spi_write(), spi_write_packet(), temp, and TRX_CMD_SW.
Referenced by sal_aes_restart(), and sal_aes_setup().