Microchip® Advanced Software Framework

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

Macros

#define GET_CHINA_FREQ(x)   (11 + (2 * x))
 

Functions

static bool apply_channel_page_configuration (uint8_t ch_page)
 Apply channel page configuartion to transceiver. More...
 
static uint8_t convert_phyTransmitPower_to_reg_value (uint8_t phyTransmitPower_value)
 Converts a phyTransmitPower value to a register value. More...
 
 FLASH_DECLARE (int8_t tx_pwr_table[16])
 
static FLASH_DECLARE (uint8_t tx_pwr_table_NA[TX_PWR_TABLE_SIZE]) = { TX_PWR_TABLE_EU }
 Tx power table in flash. More...
 
void init_tal_pib (void)
 Initialize the TAL PIB. More...
 
static void limit_tx_pwr (void)
 Limit the phyTransmitPower to the trx limits. More...
 
static uint8_t limit_tx_pwr (uint8_t curr_transmit_power)
 Limit the phyTransmitPower to the trx limits. More...
 
static void set_default_tx_pwr (void)
 Set the default Power Values For Respective Pages and Channels. More...
 
retval_t tal_pib_get (uint8_t attribute, uint8_t *value)
 Gets a TAL PIB attribute. More...
 
retval_t tal_pib_set (uint8_t attribute, pib_value_t *value)
 Sets a TAL PIB attribute. More...
 
void write_all_tal_pib_to_trx (void)
 Write all shadow PIB variables to the transceiver. More...
 

#define GET_CHINA_FREQ (   x)    (11 + (2 * x))

static uint8_t convert_phyTransmitPower_to_reg_value ( uint8_t  phyTransmitPower_value)
static

Converts a phyTransmitPower value to a register value.

Parameters
phyTransmitPower_valuephyTransmitPower value
Returns
register value
FLASH_DECLARE ( int8_t  tx_pwr_table[16])
static FLASH_DECLARE ( uint8_t  tx_pwr_table_NA[TX_PWR_TABLE_SIZE]) = { TX_PWR_TABLE_EU }
static

Tx power table in flash.

static void limit_tx_pwr ( void  )
static

Limit the phyTransmitPower to the trx limits.

Parameters
phyTransmitPowerphyTransmitPower value

References CONV_DBM_TO_phyTransmitPower, CONV_phyTransmitPower_TO_DBM, MAX_TX_PWR, MIN_TX_PWR, tal_pib, and TX_PWR_TOLERANCE.

Referenced by init_tal_pib(), set_default_tx_pwr(), and tal_pib_set().

static uint8_t limit_tx_pwr ( uint8_t  curr_transmit_power)
static

Limit the phyTransmitPower to the trx limits.

Parameters
phyTransmitPowerphyTransmitPower value
Returns
limited tal_pib_TransmitPower

References CONV_DBM_TO_phyTransmitPower, CONV_phyTransmitPower_TO_DBM, PGM_READ_BYTE, and TX_PWR_TOLERANCE.

retval_t tal_pib_get ( uint8_t  attribute,
uint8_t *  value 
)

Gets a TAL PIB attribute.

This function is called to retrieve the transceiver information base attributes.

Parameters
[in]attributeTAL infobase attribute ID
[out]valueTAL infobase attribute value
Returns
MAC_UNSUPPORTED_ATTRIBUTE if the TAL infobase attribute is not found MAC_SUCCESS otherwise

References mac_i_pan_coordinator, MAC_SUCCESS, MAC_UNSUPPORTED_ATTRIBUTE, macAckWaitDuration, macBattLifeExt, macBeaconOrder, macBeaconTxTime, macIeeeAddress, macMaxBE, macMaxCSMABackoffs, macMaxFrameRetries, macMinBE, macPANId, macPromiscuousMode, macShortAddress, macSuperframeOrder, phyCCAMode, phyChannelsSupported, phyCurrentChannel, phyCurrentPage, phyMaxFrameDuration, phySHRDuration, phySymbolsPerOctet, phyTransmitPower, and tal_pib.

retval_t tal_pib_set ( uint8_t  attribute,
pib_value_t *  value 
)

Sets a TAL PIB attribute.

This function is called to set the transceiver information base attributes.

Parameters
attributeTAL infobase attribute ID
valueTAL infobase attribute value to be set
Returns
  • MAC_UNSUPPORTED_ATTRIBUTE if the TAL info base attribute is not found
  • TAL_BUSY if the TAL is not in TAL_IDLE state. An exception is macBeaconTxTime which can be accepted by TAL even if TAL is not in TAL_IDLE state.
  • MAC_SUCCESS if the attempt to set the PIB attribute was successful
  • TAL_TRX_ASLEEP if trx is in SLEEP mode and access to trx is required

References apply_channel_page_configuration(), Assert, CMD_PLL_ON, CMD_RX_AACK_ON, CMD_RX_ON, CMD_TRX_OFF, convert_phyTransmitPower_to_reg_value(), for(), GET_CHINA_FREQ, i, limit_tx_pwr(), mac_i_pan_coordinator, MAC_INVALID_PARAMETER, MAC_SUCCESS, MAC_UNSUPPORTED_ATTRIBUTE, macAckWaitDuration, macBattLifeExt, macBeaconOrder, macBeaconTxTime, macIeeeAddress, macMaxBE, macMaxCSMABackoffs, macMaxFrameRetries, macMinBE, macPANId, macPromiscuousMode, macShortAddress, macSuperframeOrder, NULL, phyCCAMode, phyCurrentChannel, phyCurrentPage, phyTransmitPower, ptr, RG_IEEE_ADDR_0, RG_PAN_ID_0, RG_PHY_TX_PWR, RG_SHORT_ADDR_0, RX_AACK_ON, set_default_tx_pwr(), set_trx_state(), SR_AACK_I_AM_COORD, SR_CC_NUMBER, SR_CCA_MODE, SR_CHANNEL, SR_MAX_BE, SR_MIN_BE, TAL_BUSY, TAL_IDLE, tal_pib, tal_rx_buffer, tal_rx_on_required, tal_state, TAL_TRX_ASLEEP, tal_trx_status, tal_trx_wakeup(), trx_bit_write(), TRX_OFF, trx_reg_write(), TRX_SLEEP, TRX_SUPPORTED_CHANNELS, and TRX_SUPPORTED_CHANNELS_CHINA.

void write_all_tal_pib_to_trx ( void  )

Write all shadow PIB variables to the transceiver.

This function writes all shadow PIB variables to the transceiver. It is assumed that the radio does not sleep.

References apply_channel_page_configuration(), CMD_RX_ON, convert_phyTransmitPower_to_reg_value(), for(), i, RG_IEEE_ADDR_0, RG_PAN_ID_0, RG_PHY_TX_PWR, RG_SHORT_ADDR_0, set_trx_state(), SR_AACK_I_AM_COORD, SR_CCA_MODE, SR_MAX_BE, SR_MAX_CSMA_RETRIES, SR_MAX_FRAME_RETRIES, SR_MIN_BE, tal_pib, trx_bit_write(), and trx_reg_write().