[[TracNav(WARPLab/TOC)]] = X245 Interface Module Module Implementation = The WARPLab Reference Design implements an [wiki:../../../Framework/Modules##InterfaceGroup Interface Group] module for controlling the MAX2829-based radio interfaces on WARP v2 and v3. A single X245 Interface Group module can support up to 4 radio interfaces. Essentially, this module wraps the [wiki:cores/radio_controller radio_controller] peripheral and driver. '''Related Components:''' * MATLAB: * [source:ResearchApps/PHY/WARPLAB/WARPLab7/M_Code_Reference/classes/wl_interface_group_X245.m wl_interface_group_X245] class * WARP Hardware: * [wiki:cores/radio_controller radio_controller] peripheral and driver * [source:ResearchApps/PHY/WARPLAB/WARPLab7/C_Code_Reference/wl_interface.c wl_interface] C software = X245 Interface Commands = Interface commands are selected as string inputs to the {{{wl_interfaceCmd}}} method in [browser:ResearchApps/PHY/WARPLAB/WARPLab7/M_Code_Reference/classes/wl_node.m wl_node.m]. These strings are each individual cases of the switch statement in {{{procCmd}}} method of [browser:ResearchApps/PHY/WARPLAB/WARPLab7/M_Code_Reference/classes/wl_interface_group_X245.m wl_interface_group_X245.m]. == Syntax == MATLAB allows two valid forms of syntax for calling methods * Let {{{N}}} be a scalar or vector of {{{wl_node}}} objects * Let {{{command_string}}} be a string containing a particular command * Let {{{interface_selection}}} be a collection of interfaces or the string {{{'RF_ALL'}}} * Let {{{arg}}} be an argument for that command (optional) Syntax 1: {{{wl_interfaceCmd(N, interface_selection, command_string, arg1, arg2, ..., argN)}}} Syntax 2: {{{N.wl_interfaceCmd(interface_selection, command_string, arg1, arg2, ..., argN)}}} These two different forms of syntax are identical and either may be used for issuing commands to WARP nodes. == Command List and Documentation == === {{{tx_en}}} === Enable transmit mode for selected interfaces[[BR]] '''Arguments:''' none '''Returns:''' none === {{{rx_en}}} === Enable receive mode for selected interfaces[[BR]] '''Arguments:''' none '''Returns:''' none === {{{tx_rx_dis}}} === Disable transmit and receive for selected interfaces (standby mode)[[BR]] '''Arguments:''' none '''Returns:''' none === {{{read_tx_rx_state}}} === Read the current state of the interface[[BR]] '''Requires BUFF_SEL:''' Yes '''Arguments:''' none '''Returns:''' Current state of the buffer: TX, RX or STANDBY === {{{channel}}} === Tune selected interfaces to the specified band and channel[[BR]] '''Arguments:''' (float BAND, int CHAN) BAND: Must be 2.4 or 5, to select 2.4GHz or 5GHz channels[[BR]] CHAN: Must be integer in ![1,14] for BAND=2.4, ![1,44] for BAND=5[[BR]] '''Returns:''' none BAND and CHAN must be scalars (same values for all specified interfaces) or[[BR]] 1-D vectors (one value per interface) with length equal to the length of the interface ID vector[[BR]] Band/Channel - Center Frequency Map:[[BR]] ||||= 2.4GHz =||||= 5GHz =|| || Chan || Freq || Chan || Freq || || 1 || 2412 || 1 || 5180 || || 2 || 2417 || 2 || 5190 || || 3 || 2422 || 3 || 5200 || || 4 || 2427 || 4 || 5220 || || 5 || 2432 || 5 || 5230 || || 6 || 2437 || 6 || 5240 || || 7 || 2442 || 7 || 5260 || || 8 || 2447 || 8 || 5270 || || 9 || 2452 || 9 || 5280 || || 10 || 2457 || 10 || 5300 || || 11 || 2462 || 11 || 5310 || || 12 || 2467 || 12 || 5320 || || 13 || 2472 || 13 || 5500 || || 14 || 2484 || 14 || 5510 || || || || 15 || 5520 || || || || 16 || 5540 || || || || 17 || 5550 || || || || 18 || 5560 || || || || 19 || 5580 || || || || 20 || 5590 || || || || 21 || 5600 || || || || 22 || 5620 || || || || 23 || 5630 || || || || 24 || 5640 || || || || 25 || 5660 || || || || 26 || 5670 || || || || 27 || 5680 || || || || 28 || 5700 || || || || 29 || 5710 || || || || 30 || 5720 || || || || 31 || 5745 || || || || 32 || 5755 || || || || 33 || 5765 || || || || 34 || 5785 || || || || 35 || 5795 || || || || 36 || 5805 || || || || 37 || 5825 || || || || 38 || 5860 || || || || 39 || 5870 || || || || 40 || 5875 || || || || 41 || 5880 || || || || 42 || 5885 || || || || 43 || 5890 || || || || 44 || 5865 || === {{{tx_gains}}} === Sets the gains for the variable gain amplifiers in the MAX2829 Tx path[[BR]] Refer to MAX2829 datasheet for curves of gain value vs actual gain at 2.4 and 5GHz[[BR]] '''Arguments:''' (int BB_GAIN, int RF_GAIN) BB_GAIN: Must be integer in ![0,1,2,3] for approx ![-5, -3, -1.5, 0]dB baseband gain[[BR]] RF_GAIN: Must be integer in ![0:63] for approx ![0:31]dB RF gain[[BR]] '''Returns:''' none BB_GAIN and RF_GAIN must be scalars (same values for all specified interfaces) or[[BR]] 1-D vectors (one value per interface) with length equal to the length of the interface ID vector[[BR]] NOTE: The parameters are in the order in which they are applied to the signal (ie baseband gain, then RF gain)[[BR]] === {{{rx_gains}}} === Sets the gains for the variable gain amplifiers in the MAX2829 Rx path[[BR]] Refer to MAX2829 datasheet for curves of gain value vs actual gain at 2.4 and 5GHz[[BR]] '''Arguments:''' (int RF_GAIN, int BB_GAIN) RF_GAIN: Must be integer in ![1,2,3] for approx ![0,15,30]dB RF gain[[BR]] BB_GAIN: Must be integer in ![0:31] for approx ![0:63]dB baseband gain[[BR]] '''Returns:''' none BB_GAIN and RF_GAIN must be scalars (same values for all specified interfaces) or[[BR]] 1-D vectors (one value per interface) with length equal to the length of the interface ID vector[[BR]] NOTE: The parameters are in the order in which they are applied to the signal (ie RF gain, then baseband gain)[[BR]] === {{{tx_lpf_corn_freq}}} === Sets the corner frequency for the MAX2829 Tx path low pass filter[[BR]] Refer to MAX2829 datasheet for curves of the frequency response with each setting[[BR]] '''Arguments:''' (int FILT) FILT: Must be integer in ![1,2,3] for approx ![12,18,24]MHz corner frequencies (![24,36,48]MHz bandwidths)[[BR]] '''Returns:''' none FILT must be scalar (same value for all specified interfaces) or 1-D vector (one value per interface) [[BR]] with length equal to the length of the interface ID vector[[BR]] === {{{rx_lpf_corn_freq_fine}}} === Sets the fine corner frequency for the MAX2829 Rx path low pass filter[[BR]] Refer to MAX2829 datasheet for curves of the frequency response with each setting[[BR]] '''Arguments:''' (int FILT) FILT: Must be integer in ![0,1,2,3,4,5] for[[BR]] ![90,95,100,105,110]% scaling to LPF corner frequency '''Returns:''' none FILT must be scalar (same value for all specified interfaces) or 1-D vector (one value per interface) [[BR]] with length equal to the length of the interface ID vector[[BR]] === {{{rx_lpf_corn_freq}}} === Sets the corner frequency for the MAX2829 Rx path low pass filter[[BR]] Refer to MAX2829 datasheet for curves of the frequency response with each setting[[BR]] '''Arguments:''' (int FILT) FILT: Must be integer in ![0,1,2,3] for approx ![7.5,9.5,14,18]MHz corner [[BR]] frequencies (![15,19,28,36]MHz bandwidths)[[BR]] '''Returns:''' none FILT must be scalar (same value for all specified interfaces) or 1-D vector (one value per interface) [[BR]] with length equal to the length of the interface ID vector[[BR]] === {{{rx_hpf_corn_freq}}} === Sets the corner frequency for the MAX2829 Rx path high pass filter when RXHP = 'disable' (ie 0)[[BR]] '''Arguments:''' (int MODE) MODE: Must be 0 (HPF corner of 100 Hz) or 1 (default; HPF corner of 30 kHz)[[BR]] '''Returns:''' none MODE must be scalar (same value for all specified interfaces) or 1-D vector (one value per interface) [[BR]] with length equal to the length of the interface ID vector[[BR]] The MAX2829 default setting is 1 (30 kHz corner frequency). This is the better setting for most[[BR]] applications. The lower cutoff frequency (100 Hz) should only be used when the Rx waveform has[[BR]] energy in the 60 kHz around DC.[[BR]] This filter setting is only used when RXHP is 'disable' (ie 0).[[BR]] === {{{rx_gain_mode}}} === Sets the gain selection mode[[BR]] '''Arguments:''' (string MODE) MODE: 'automatic' for AGC, or 'manual' for manual gain control[[BR]] '''Returns:''' none === {{{rx_rxhp}}} === Sets the RXHP mode on the node when in manual gain control[[BR]] '''Arguments:''' (boolean MODE) MODE: true enables RXHP on the node when in manual gain control[[BR]] false disables RXHP on the node when in manual gain control[[BR]] '''Returns:''' none