WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2018-Feb-07 01:30:15

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Radio Card Configuration of V2 Board

Sir,

I am using a V2 board with 2 radio cards, RF A & RFB. The provided .bit stream i am using is w2_WARPlAB_7.3.0_2RF.bit

With Reference to the Radio guide in your website (Rfe: http://warpproject.org/trac/wiki/Hardwa … Connectors). There is Two Port in a single board. As per Diagram , Port 1 can be Tx and Port 2 Can be Rx,. In the default configuration, Port 1 is used for both transmit and receive and Port 2 is unused.

How can i use Port 2 which is unused here, I want to make Port 1 as Tx and Port 2 as Rx in a single board. Is this application is possible with the same . bit file ? If yes please guide me the process.

Offline

 

#2 2018-Feb-07 21:04:04

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

First, please update to the latest version of WARPLab (currently v7.7.1). There have been *many* improvements and fixes since the v7.3 design.

Each RF interface supports Tx and Rx in half-duplex. One node can Tx and Rx simultaneously by configuring one interface for Tx and one interface for Rx. The Tx/Rx role of each interface is controlled from your M code using the (tx_buff_en, tx_en) vs (rx_buff_en, rx_en) commands.

Always take care to ensure >30dB attenuation between any Tx and Rx interfaces. The Rx circuits can be damaged by high input power, especially when connected directly via cable to a Tx interface. Use 30dB+ series attenuation for any Tx->Rx connections.

Offline

 

#3 2018-Feb-09 07:02:38

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

In a node. considering node (1), RF A can be configured as Tx/Rx and same for RX B using matlab Program, but how can i set RFA port 1 as TX and RFA port 2 as RX in a same node 1?

Offline

 

#4 2018-Feb-09 09:45:59

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

Apologies, I mis-read your initial post. For WARP v2 hardware you should use WARPLab v7.5.1.

The WARP Radio Board implements a single transceiver. Each RF interface is idle, transmitting, or receiving. One Radio Board cannot Tx and Rx at the same time; you must use two RF interfaces (two Radio Boards) to have one node transmit and receive simultaneously.

If you still want to map Tx/Rx to different antenna ports on the same Radio Board (even though the ports cannot be used at the same time), you need to modify the radio_controller Verilog. The Radio Board's antenna switch is controlled by the radio_controller core in the WARPLab ref design hardware. The radio_controller sets the antenna switch automatically based on the radio's Tx state - radio_controller / user_logic.v.

Offline

 

#5 2018-Feb-26 08:07:29

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

Hi,

I am facing two problem in signal reception
1. First case, I am using a single board, In which RF A working as transmitter and RF B working as receiver. A  Polyphase code of 350 numbers of bit is generated, Tx and RX is connected through a Cable with low BB & RF power, no antenna is used. Still at the receiver few bits is lost and the whole transmitted code is not retrieved in rx_IQ. TX RX  buffer length is open more enough.

2. In other Case The same Polyphase code is transmitted from a different generator, WARP RF A is working as receiver, same frequency is set in both side. Rx is receiving repeated copy of the transmitted code but here also received code is not clear. Here signal is transmitted over antenna.

please let me know how i can improve Rx signal for both case.

Offline

 

#6 2018-Feb-26 09:37:08

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

Tx and RX is connected through a Cable with low BB & RF power

First - you must have 30+dB attenuation when using a cable to connect any Tx interface to any Rx interface. The Tx circuits are cable of generating sufficiently loud signals to damage the Rx circuits. Reducing Tx gain is not sufficient to guarantee you don't damage the Rx circuits.

For debugging the actual Rx processing -
- Check your Rx gain settings. If the Rx gains are too high the ADC will clip and degrade the IQ samples. If the gains are too low the IQ will be heavily quantized and noisy.
- Is your Rx processing robust to delay and phase changes? Have your tested your Rx processing in simulation with simulated noise, phase and delays?

Offline

 

#7 2018-Feb-26 23:47:10

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

Thank you for your reply and suggestion.
I have tested RX section, it is working fine with provided examples. So, hopefully Rx is not damaged, I have tested Rx simulations also. Now i have connected antenna with 1 meter separation, can you advice me what should be the TX, Rx gain for this test, so that i should not loose any received bit.

Offline

 

#8 2018-Feb-27 08:49:07

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

can you advice me what should be the TX, Rx gain for this test, so that i should not loose any received bit.

This is not something we can determine for your - you need to determine the proper gain settings experimentally based on your waveform, Tx power, antenna selection+spacing, etc.

Offline

 

#9 2018-Feb-28 05:40:21

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

In TX/RX example i have just changed payload where i have generated a polyphase code as payload. The Tx waveform is  http://i63.tinypic.com/2djyuqg.jpg. 350 samples are available but in RX side few start and last sample are lost. RX is show in http://i64.tinypic.com/dbi44p.jpg. zoomed Rx is shown in http://i68.tinypic.com/9hs9j7.jpg.

Tx gain is set to wl_interfaceCmd(nodes, 'RF_ALL', 'tx_gains', 1, 10). and Rx gain is set to ManualRxGainRF = 1;ManualRxGainBB = 10;

Antenna is placed 2 meter apart. Rx is lost please suggest how i can improve it.

Last edited by smit_smu (2018-Mar-01 01:32:21)

Offline

 

#10 2018-Mar-01 19:10:34

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

I don't understand what problem you're seeing. The plots above look normal to me - the Rx signal has a clear preamble, then your payload, then a sinusoid (probably becasue your final Tx sample wasn't zero, so the Tx was sending a carrier signal - try padding your Tx waveform with zeros). What leads you to believe the Rx signal above is wrong?

Offline

 

#11 2018-Mar-01 23:56:53

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

No sir, actually Please look into the TX and and zoomed Rx waveform, I am sending 350 samples of Tx data after preamble, but in Rx side after preamble there is some zero then i am getting my Data then again zero. In receiver i am loosing almost 150 bits and receiving only 200 bits, which effecting in correlation gain.

Offline

 

#12 2018-Mar-02 09:15:43

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

Ah, I see the difference you're describing.

The payload of your waveform looks like a chirp signal. What is the frequency span of that signal? The WARPLab Ref Design operates the ADC/DACs at 40MSps, but the radio (MAX2829) applies ~20MHz low-pass filtering by default. Is your chirp wider than 20MHz (10MHz from DC)? If so you would expect the higher-frequency sections to be attenuated by the low-pass filters.

Offline

 

#13 2018-Mar-27 11:15:46

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

yes there was a problem with the sample rate. I have solved that, Thank you for your support.

Sir, I am transmitting the Signal from a different platform, receiving through WARP V2 board. As transmitter and receiver platform is different i am facing problem to trigger the receive signal. Receiver signal is placed in different index point in the received Frame. Every time received signal index is not fixed. Please suggest me how can i trigger WARP board using external signal.

Offline

 

#14 2018-Mar-27 15:08:25

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

You can use the WARP board's debug header to drive a trigger signal into the WARPLab FPGA cores. The WARPLab for WARP v2 user guide has details on pin assignments.

Offline

 

#15 2018-Mar-29 02:16:29

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

can I connect a external trigger signal to P12 (Trigger Input D0)? , which type of trigger signal is excepted by the board? If i connected a external signal into trigger Input pin, that will solve my problem?

Offline

 

#16 2018-Mar-29 09:53:01

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

The WARP v2 digital pins operate at 3.3v logic levels. An external trigger signal must be a 3.3v digital signal. Be sure to connect ground between the WARP node and trigger source along with the digital trigger signal.

Alternatively you could consider the energy trigger (see wl_example_siso_txrx_energyTrigger.m example). This logic uses a threshold compared to the radio's RSSI signal; when the Rx power exceeds the threshold it generates a trigger to the WARPLab logic.

Offline

 

#17 2018-Mar-31 10:03:42

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

Sir
I am using a Mixed Signal Generator as Transmitter, which is generating above transmitted signal.
Warp V2 board is used in MIMO mode, both RF as Receiver. I am trying to use wl_example_siso_txrx_energyTrigger to trigger my receive signal.

If i use the below line in my code

% For the receive node, we will allow the energy detector to trigger the buffer baseband and AGC core
node_rx.wl_triggerManagerCmd('output_config_input_selection', [T_OUT_BASEBAND, T_OUT_AGC], [T_IN_ENERGY]);

The receiver is holding the previous result. Even if i use "clear all" command in matlab, it is showing the previous result. Even if TX not present then also it is showing the previous result.

IF i dont use that line, then the normal receiver is working but the signal is not triggered. 

Even i tried the external trigger mode also, that is also not working. My external trigger signal is 5.1 volt digital signal.

Offline

 

#18 2018-Apr-01 09:07:06

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

Are you calling the 'output_state_clear' command like the example code does?

Even i tried the external trigger mode also, that is also not working. My external trigger signal is 5.1 volt digital signal.

As stated above - the WARP v2 digital pins are 3.3v inputs. A 5v signal will damage (possibly permanently) the FPGA input buffers.

Offline

 

#19 2018-Apr-02 01:18:16

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

I have just connected external trigger then run the program, and again disconnect it. I have tested it now, The board is working.
Thank you for your advice, i will not connect more than 3.3 further.

Yes Please refer the code below:


CHANNEL         = 13;         % Choose the channel we will receive on

NUM_SAMPLES     = 2^14;      % Number of samples to request

WRITE_PNG_FILES = 1;         % Enable writing plots to PNG

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Set up the WARPLab experiment
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
USE_AGC        = true;
% Parameters for the energy trigger
rssi_sum_len   = 10 ;
busy_threshold = rssi_sum_len ;
busy_minlength = 15;

% Plotting variables
iq_range    = 1;                       % Plots IQ values in the range:  [-1, 1]
rssi_range  = 1024;



% Create a node object
node = wl_initNodes(1);

node_rx = node(1);



% Read Trigger IDs into workspace
[T_IN_ETH_A, T_IN_ENERGY, T_IN_AGCDONE, T_IN_REG, T_IN_D0, T_IN_D1, T_IN_D2, T_IN_D3, T_IN_ETH_B] =  wl_getTriggerInputIDs(node);
[T_OUT_BASEBAND, T_OUT_AGC, T_OUT_D0, T_OUT_D1, T_OUT_D2, T_OUT_D3] = wl_getTriggerOutputIDs(node);

% % For both nodes, we will allow Ethernet to trigger the buffer baseband and the AGC
wl_triggerManagerCmd(node, 'output_config_input_selection', [T_OUT_BASEBAND, T_OUT_AGC], [T_IN_ETH_A]);

% For the receive node, we will allow the energy detector to trigger the buffer baseband and AGC core
node_rx.wl_triggerManagerCmd('output_config_input_selection', [T_OUT_BASEBAND, T_OUT_AGC], [T_IN_ENERGY]);

% Set the trigger output delays.
% NOTE:  We are waiting 3000 ns before starting the AGC so that there is time for the inputs
%   to settle before sampling the waveform to calculate the RX gains.

node.wl_triggerManagerCmd('output_config_delay', [T_OUT_BASEBAND], 0);     
node.wl_triggerManagerCmd('output_config_delay', [T_OUT_AGC], 3000);     % 3000 ns delay before starting the AGC

% Enable the hold mode for the triggers driven by energy detection. This will prevent the buffer
% from being overwritten before we have a chance to read it.
node_rx.wl_triggerManagerCmd('output_config_hold_mode', [T_OUT_BASEBAND, T_OUT_AGC], 'enable');

% Get IDs for the interfaces on the board.
[RFA,RFB] = wl_getInterfaceIDs(node);

% Use RFA as the receiver
RF_RX = [RFA,RFB];

% Set parameters for the energy trigger
node_rx.wl_triggerManagerCmd('energy_config_average_length', rssi_sum_len);
node_rx.wl_triggerManagerCmd('energy_config_busy_threshold', busy_threshold);
node_rx.wl_triggerManagerCmd('energy_config_busy_minlength', busy_minlength);
node_rx.wl_triggerManagerCmd('energy_config_interface_selection', RFA+RFB);

% % Print information to the console
%  fprintf('WARPLab Spectrogram Example:\n');
% fprintf('    Generating spectrogram using %.4f seconds of data (%d samples).\n', (NUM_SAMPLES * Ts), NUM_SAMPLES );

% Create a UDP broadcast trigger and tell each node to be ready for it
eth_trig = wl_trigger_eth_udp_broadcast;
wl_triggerManagerCmd(node, 'add_ethernet_trigger', [eth_trig]);

% Set up the interface for the experiment
wl_interfaceCmd(node, 'RF_ALL', 'channel', 2.4, CHANNEL);

if(USE_AGC)
     wl_interfaceCmd(node, 'RF_ALL', 'rx_gain_mode', 'automatic');
     wl_basebandCmd(node, 'agc_target', -10);
else
   
wl_interfaceCmd(node,RFA,'rx_gain_mode','manual');
    RxGainRF = 2; %Rx RF Gain in [1:3]
    RxGainBB = 10; %Rx Baseband Gain in [0:31]
    wl_interfaceCmd(node,RFA,'rx_gains',RxGainRF,RxGainBB);
   
   
    wl_interfaceCmd(node,RFB,'rx_gain_mode','manual');
    RxGainRF1 = 2; %Rx RF Gain in [1:3]
    RxGainBB1 = 10; %Rx Baseband Gain in [0:31]
    wl_interfaceCmd(node,RFB,'rx_gains',RxGainRF1,RxGainBB1);
   
  end
txLength = NUM_SAMPLES %min(NUM_SAMPLES , max_rx_samples);

% Check the number of samples
max_rx_samples = wl_basebandCmd(node, RF_RX, 'rx_buff_max_num_samples');

% Get the sample rate of the node
Ts = 1/(wl_basebandCmd(node, 'tx_buff_clk_freq'));
Ts_RSSI = 1/(wl_basebandCmd(node_rx,'rx_rssi_clk_freq'));


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Receive signal using WARPLab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Set capture lengths
RXLength    = txLength;
RSSILength  = RXLength/(Ts_RSSI/Ts);

% Set the receive length to the number of samples
wl_basebandCmd(node, 'rx_length', NUM_SAMPLES);

% Open up the transceiver's low-pass filter to its maximum bandwidth (36MHz)
wl_interfaceCmd(node, RFA, 'rx_lpf_corn_freq', 3);
wl_interfaceCmd(node, RFB, 'rx_lpf_corn_freq', 3);

% Enable to node to receive data
wl_interfaceCmd(node,RFA+RFB,'rx_en');
wl_basebandCmd(node,RFA+RFB,'rx_buff_en');



% Trigger the node to receive samples
%eth_trig.send();

% Wait for the reception to finish

eth_trig.send();
nsec = 1;
pause(nsec);


% Check that the energy trigger asserted the T_OUT_BASEBAND output trigger
% to the WARPLab buffers core.  This will prevent users from reading stale
% IQ data in the node.
trigger_asserted = node_rx.wl_triggerManagerCmd('output_state_read', [T_OUT_BASEBAND]);

if (trigger_asserted)
   
% Read the samples from the node
rx_IQ = wl_basebandCmd(node,RF_RX, 'read_IQ', 0, NUM_SAMPLES);
rx_RSSI  = wl_basebandCmd(node_rx, RF_RX, 'read_RSSI', 0, RSSILength);
rx_gains = wl_basebandCmd(node_rx, RF_RX, 'agc_state');

% Disable the RX buffers
wl_basebandCmd(node,'RF_ALL','tx_rx_buff_dis');
wl_interfaceCmd(node,'RF_ALL','tx_rx_dis');

% Clear the held energy detection trigger at our receiver
    node_rx.wl_triggerManagerCmd('output_state_clear', [T_OUT_BASEBAND, T_OUT_AGC]);
else
    error('Energy Trigger did not assert.  Please try lowering the energy detection threshold.');
end

Offline

 

#20 2018-Apr-02 01:20:08

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

My Tx is always on.

Offline

 

#21 2018-Apr-02 22:32:48

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

Sir, please guide me how i can solve the above problem...

Offline

 

#22 2018-Apr-03 09:18:08

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

The energy trigger source in WARPLab asserts on the rising edge of energy. If your Tx signal is active all the time the energy detector won't see a rising edge.

Offline

 

#23 2018-Apr-04 00:04:45

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

My Tx is always on.. In that case, can i use external trigger ??

Offline

 

#24 2018-Apr-04 08:44:07

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Radio Card Configuration of V2 Board

You can always use an external trigger. But if your Tx waveform is continuous, what is the actual trigger source? Why not just use the Ethernet trigger from M code, capture a long-enough Rx waveform, then handle any alignment in the Rx code?

Offline

 

#25 2018-Apr-05 01:06:08

smit_smu
Member
From: Sikkim, India
Registered: 2013-Feb-24
Posts: 73

Re: Radio Card Configuration of V2 Board

Sir,

murphpo wrote:

But if your Tx waveform is continuous, what is the actual trigger source?

I am using a Mixed Signal Generator ( Model No: Agilent N5182A). In which RF output port is always ON, and transmitting the Signal, This generator is also having a Trigger Output (BNC connector) which can be programmed and can Transmit a 5V Digital Signal. Which i will reduce down to 3.3 Volt and use as a External trigger.

murphpo wrote:

Why not just use the Ethernet trigger from M code, capture a long-enough Rx waveform, then handle any alignment in the Rx code?

I am using a Different transmitter which is not connected in the same IP domain of WARP board.

Last edited by smit_smu (2018-Apr-05 01:20:56)

Offline

 

Board footer