radio_controller_ext.c File Reference

Extended functionality of the radio boards, over the basic controller. More...

#include "radio_controller_ext.h"

Go to the source code of this file.

Functions

void WarpRadio_v1_24AmpEnable (unsigned int radios)
 Enable the 2.4GHz power amplifier.
void WarpRadio_v1_24AmpDisable (unsigned int radios)
 Disable the 2.4GHz power amplifier.
char WarpRadio_v1_LockDetect (unsigned int radios)
 Read lock detect from the radio.
char WarpRadio_v1_SoftwareTxGainControl (short mode, unsigned int radios)
 Control transmit gain in software/hardware.
void WarpRadio_v1_BaseBandTxGain (char value, unsigned int radios)
 Set the transmit baseband gain.
void WarpRadio_v1_TxVGAGainControl (char value, unsigned int radios)
 Adjust total transmit gain.
char WarpRadio_v1_SoftwareRxGainControl (short mode, unsigned int radios)
 Control recieve gain in software/hardware.
void WarpRadio_v1_RxLNAGainControl (char value, unsigned int radios)
 Adjust upper receive gain.
void WarpRadio_v1_RxVGAGainControl (char value, unsigned int radios)
 Adjust lower receive gain.
void WarpRadio_v1_SetTxTiming (unsigned int radios, unsigned char dly_TxEn, unsigned char dly_TxStart, unsigned char dly_GainRampEn, unsigned char dly_PowerAmpEn)
 Setup timing parameters for the transmit state machine.
void WarpRadio_v1_SetTxGainTiming (unsigned int radios, unsigned char TxGainTarget, unsigned char TxGainStep, unsigned char TxGainTimeStep)
 Setup gain parameters for transmit state machine.
void WarpRadio_v1_TxLpfCornFreqCoarseAdj (char value, unsigned int radios)
 Set lowpass filter corner frequency on transmit (coarse adjustment).
void WarpRadio_v1_RxLpfCornFreqCoarseAdj (char value, unsigned int radios)
 Set lowpass filter corner frequency on receive (coarse adjustment).
char WarpRadio_v1_RxLpfCornFreqFineAdj (char value, unsigned int radios)
 Set lowpass filter corner frequency on receive (fine adjustment).
void WarpRadio_v1_RxHighPassCornerFreq (char value, unsigned int radios)
 Set corner frequency for receive high pass filter.
unsigned int WarpRadio_v1_RSSIData (unsigned int radios)
 Read instantaneous RSSI.


Detailed Description

Extended functionality of the radio boards, over the basic controller.

Version:
1.09
Author:
Siddharth Gupta
Drivers for more complex functions of the radio boards. This includes finer control of receive and transmit gains, both in hardware and software, transmit state machine and control of filter parameters.

Definition in file radio_controller_ext.c.


Function Documentation

void WarpRadio_v1_24AmpDisable ( unsigned int  radios  ) 

Disable the 2.4GHz power amplifier.

Disable the 2.4GHz amplifier for the boards specified. Unless an amplifier is enabled, none will turn on during transmit.

Parameters:
radios Radio boards affected.

Definition at line 45 of file radio_controller_ext.c.

References RAD_24PA_MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mReadSlaveReg1, and RADIO_CONTROLLER_mWriteSlaveReg1.

void WarpRadio_v1_24AmpEnable ( unsigned int  radios  ) 

Enable the 2.4GHz power amplifier.

Enable the 2.4GHz amplifier for the boards specified. The amplifier turns on during the transmit state machine's execution.

Parameters:
radios Radio boards affected.

Definition at line 32 of file radio_controller_ext.c.

References RAD_24PA_MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mReadSlaveReg1, and RADIO_CONTROLLER_mWriteSlaveReg1.

void WarpRadio_v1_BaseBandTxGain ( char  value,
unsigned int  radios 
)

Set the transmit baseband gain.

Set the transmit baseband gain. Always set by software. Gains:

Parameters:
value Value from the above list corresponding to the gain needed.
radios The radios affected.

Definition at line 144 of file radio_controller_ext.c.

References RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg7, REG_RAD1_TX_LINEARITY, REG_RAD2_TX_LINEARITY, REG_RAD3_TX_LINEARITY, REG_RAD4_TX_LINEARITY, SLAVEMASK, and transRadio().

Referenced by warpphy_init().

char WarpRadio_v1_LockDetect ( unsigned int  radios  ) 

Read lock detect from the radio.

Reads the LockDetect pin of the radios requested. Outputs lock detects as {LD4, LD3, LD2, LD1}. Not requested radios have a zero on the output.

Parameters:
radios Radios to read from
Returns:
An output of 1 indicates that the radio is locked while 0 indicates that it is not.

Definition at line 69 of file radio_controller_ext.c.

References RAD_LD_MASK, radio_controller_baseaddr, and RADIO_CONTROLLER_mReadSlaveReg1.

unsigned int WarpRadio_v1_RSSIData ( unsigned int  radios  ) 

Read instantaneous RSSI.

Reads the RSSI values for a single radio only.

Parameters:
radios Radio from to read data.
Returns:
RSSI data

Definition at line 673 of file radio_controller_ext.c.

References RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mReadSlaveReg3, and RADIO_CONTROLLER_mReadSlaveReg4.

void WarpRadio_v1_RxHighPassCornerFreq ( char  value,
unsigned int  radios 
)

Set corner frequency for receive high pass filter.

Set the Recieve Highpass Filter Corner Frequency when RXHP=0.

Parameters:
value 0: 100Hz, 1: 30kHz
radios Radios affected by function.

Definition at line 627 of file radio_controller_ext.c.

References RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg7, REG_RAD1_RX_CONTROL, REG_RAD2_RX_CONTROL, REG_RAD3_RX_CONTROL, REG_RAD4_RX_CONTROL, SLAVEMASK, and transRadio().

Referenced by main(), and warpphy_init().

void WarpRadio_v1_RxLNAGainControl ( char  value,
unsigned int  radios 
)

Adjust upper receive gain.

This function combined with RxVGAGainControl adjusts the total recieve gain when using software control. The 2 bits of this function map to B7:B6 of gain bus. 00 is the lowest possible gain.

See also:
WarpRadio_v1_SoftwareRxGainControl, WarpRadio_v1_RxVGAGainControl
Parameters:
value Gain value, 2 bits wide.
radios Radios affected.

Definition at line 296 of file radio_controller_ext.c.

References RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg7, REG_RAD1_RX_GAIN, REG_RAD2_RX_GAIN, REG_RAD3_RX_GAIN, REG_RAD4_RX_GAIN, SLAVEMASK, and transRadio().

void WarpRadio_v1_RxLpfCornFreqCoarseAdj ( char  value,
unsigned int  radios 
)

Set lowpass filter corner frequency on receive (coarse adjustment).

Set the Recieve Lowpass Filter Corner Frequency. This is the Coarse adjustment. The values are chosen from the following list:

Parameters:
value Chosed from the above list.
radios Radios affected.
Returns:
Returns OUT_OF_RANGE if value is out of range, WARP_SUCCESS if successful.

Definition at line 522 of file radio_controller_ext.c.

References RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg7, REG_RAD1_LOWPASS_FILTER, REG_RAD2_LOWPASS_FILTER, REG_RAD3_LOWPASS_FILTER, REG_RAD4_LOWPASS_FILTER, SLAVEMASK, and transRadio().

Referenced by main(), and warpphy_init().

char WarpRadio_v1_RxLpfCornFreqFineAdj ( char  value,
unsigned int  radios 
)

Set lowpass filter corner frequency on receive (fine adjustment).

Set the Recieve Lowpass Filter Corner Frequency. This is the Fine adjustment. The values are chosen from the following list:

Parameters:
value Chosed from the above list.
radios Radios affected.
Returns:
Returns OUT_OF_RANGE if value is out of range, WARP_SUCCESS if successful.

Definition at line 576 of file radio_controller_ext.c.

References OUT_OF_RANGE, RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg7, REG_RAD1_LOWPASS_FILTER, REG_RAD2_LOWPASS_FILTER, REG_RAD3_LOWPASS_FILTER, REG_RAD4_LOWPASS_FILTER, SLAVEMASK, transRadio(), and WARP_SUCCESS.

void WarpRadio_v1_RxVGAGainControl ( char  value,
unsigned int  radios 
)

Adjust lower receive gain.

This function combined with RxLNAGainControl adjusts the total recieve gain when using software control. The 5 bits of this function map to B5:B1 of gain bus. 00000 is the lowest possible gain.

See also:
WarpRadio_v1_SoftwareRxGainControl, WarpRadio_v1_RxLNAGainControl
Parameters:
value Gain value, 5 bits wide.
radios Radios affected.

Definition at line 344 of file radio_controller_ext.c.

References RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg7, REG_RAD1_RX_GAIN, REG_RAD2_RX_GAIN, REG_RAD3_RX_GAIN, REG_RAD4_RX_GAIN, SLAVEMASK, and transRadio().

void WarpRadio_v1_SetTxGainTiming ( unsigned int  radios,
unsigned char  TxGainTarget,
unsigned char  TxGainStep,
unsigned char  TxGainTimeStep 
)

Setup gain parameters for transmit state machine.

The gain parameters are used when the gain ramp is triggered by WarpRadio_v1_SetTxTiming. The gain ramping is automatic and for it to be valid, the gain settings for transmit must be in hardware control as the ramping is done using the gain bus.

See also:
WarpRadio_v1_SetTxTiming, WarpRadio_v1_SoftwareTxGainControl
Parameters:
radios Radios affected by these settings.
TxGainTarget Target transmit gain, x0 to x3F
TxGainStep Step with which to ramp to required gain
TxGainTimeStep Time paused on each gain step

Definition at line 434 of file radio_controller_ext.c.

References RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg10, RADIO_CONTROLLER_mWriteSlaveReg11, RADIO_CONTROLLER_mWriteSlaveReg12, RADIO_CONTROLLER_mWriteSlaveReg9, and SLAVEMASK.

Referenced by warpphy_init(), warpphy_setGainMinus(), and warpphy_setGainPlus().

void WarpRadio_v1_SetTxTiming ( unsigned int  radios,
unsigned char  dly_TxEn,
unsigned char  dly_TxStart,
unsigned char  dly_GainRampEn,
unsigned char  dly_PowerAmpEn 
)

Setup timing parameters for the transmit state machine.

The transmit state machine gets triggered by the TxEnable function. When called, there is a delay in turning on the TxEnable pin, the trigger for data transmission, the amplifier and the gain ramp cycle (parameters set by WarpRadio_v1_SetTxGainTiming). All these paramenters are setup here. For the gain parameters to be valid, must be in hardware gain control. Atleast one amplifier must be enabled for the power amp enable to work.

See also:
WarpRadio_v1_SetTxGainTiming
Parameters:
radios Radios affected by these settings.
dly_TxEn OPB clock cycles to wait before turning on transmit enable. dly_TxEn=0 enables TxEn forever; dly_TxEn=255 disables TxEn forever
dly_TxStart OPB clock cycles to wait before sending enabling data transmission model. dly_TxStart=0 enables TxStart forever; dly_TxStart=255 disables TxStart forever
dly_GainRampEn OPB clock cycles to wait before turning on gain ramp cycle. dly_GainRampEn=255 disables the gain ramp
dly_PowerAmpEn OPB clock cycles to wait before turning on amplifier. dly_PowerAmpEn=0 enables PowerAmpEn forever; dly_PowerAmpEn=255 disables PowerAmpEn forever

Definition at line 398 of file radio_controller_ext.c.

References RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg13, RADIO_CONTROLLER_mWriteSlaveReg14, RADIO_CONTROLLER_mWriteSlaveReg15, RADIO_CONTROLLER_mWriteSlaveReg16, and SLAVEMASK.

Referenced by warpphy_init().

char WarpRadio_v1_SoftwareRxGainControl ( short  mode,
unsigned int  radios 
)

Control recieve gain in software/hardware.

Enable or disable receive VGA/LNA Gain programming using software. If in software, RxVGAGainControl and RxLNAGainControl must be used to set gain value.

See also:
WarpRadio_v1_RxVGAGainControl, WarpRadio_v1_RxLNAGainControl
Parameters:
mode 0: Receive VGA/LNA Gain programmed with external ports, 1: programmed with functions mentioned above
radios Radios affected.
Returns:
Returns INVALID_MODE if the mode is an invalid input, WARP_SUCCESS if successful.

Definition at line 240 of file radio_controller_ext.c.

References INVALID_MODE, RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg7, REG_RAD1_RX_CONTROL, REG_RAD2_RX_CONTROL, REG_RAD3_RX_CONTROL, REG_RAD4_RX_CONTROL, SLAVEMASK, transRadio(), and WARP_SUCCESS.

Referenced by warpphy_init().

char WarpRadio_v1_SoftwareTxGainControl ( short  mode,
unsigned int  radios 
)

Control transmit gain in software/hardware.

Enable or disable transmit VGA Gain programming using software. If in software, TxVGAGainControl must be used to set gain value. If not, then the transmit state machine must be setup to use gain values.

See also:
WarpRadio_v1_TxVGAGainControl, WarpRadio_v1_setTxGainTiming
Parameters:
mode 0: Transmit VGA Gain programmed with external ports, 1: Transmit VGA Gain programmed with TxVGAGainControl function
radios Radios affected.
Returns:
Returns INVALID_MODE if the mode is an invalid input, WARP_SUCCESS if successful.

Definition at line 86 of file radio_controller_ext.c.

References INVALID_MODE, RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg7, REG_RAD1_TX_LINEARITY, REG_RAD2_TX_LINEARITY, REG_RAD3_TX_LINEARITY, REG_RAD4_TX_LINEARITY, SLAVEMASK, transRadio(), and WARP_SUCCESS.

Referenced by warpphy_init().

void WarpRadio_v1_TxLpfCornFreqCoarseAdj ( char  value,
unsigned int  radios 
)

Set lowpass filter corner frequency on transmit (coarse adjustment).

Set the Transmit Lowpass Filter Corner Frequency. This is the Coarse adjustment. The values are chosen from the following list:

Parameters:
value Chosed from the above list.
radios Radios affected.
Returns:
Returns OUT_OF_RANGE if value is out of range, WARP_SUCCESS if successful.

Definition at line 470 of file radio_controller_ext.c.

References RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg7, REG_RAD1_LOWPASS_FILTER, REG_RAD2_LOWPASS_FILTER, REG_RAD3_LOWPASS_FILTER, REG_RAD4_LOWPASS_FILTER, SLAVEMASK, and transRadio().

Referenced by warpphy_init().

void WarpRadio_v1_TxVGAGainControl ( char  value,
unsigned int  radios 
)

Adjust total transmit gain.

This function adjusts the total transmit gain when using software control. The 6 bits of this function map to B6:B1 of the gain bus. 000000 is the lowest possible gain.

See also:
WarpRadio_v1_SoftwareTxGainControl
Parameters:
value Gain value, 6 bits wide.
radios Radios affected.

Definition at line 191 of file radio_controller_ext.c.

References RAD1MASK, RAD2MASK, RAD3MASK, RAD4MASK, radio_controller_baseaddr, RADIO_CONTROLLER_mWriteSlaveReg7, REG_RAD1_TX_VGA_GAIN, REG_RAD2_TX_VGA_GAIN, REG_RAD3_TX_VGA_GAIN, REG_RAD4_TX_VGA_GAIN, SLAVEMASK, and transRadio().


Updated on Wed Aug 6 13:29:32 2008 WARP