WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2016-May-03 22:44:16

charles_soyo
Member
Registered: 2016-Mar-01
Posts: 23

802.11v1.5 antenna array

Dear all

I tried to enable 4 RF mode of 802.11v1.5. I have done as:

Modify system.mhs and system.ucf;

Generated bitstream;

Export design to SDK;

Generated and setup New BSP;

Uncomment '#define WLAN_4RF_EN';

Program the board;

However the board is not working at all. (00 on Hex display, and LEDs on FMC keeps blinking )

When i comment out '#define WLAN_4RF_EN', the board works as normal 2RF 802.11, so i think my bsp and bitstream is right.

How could i solve the problem?


Thank u

Offline

 

#2 2016-May-04 08:45:24

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

Re: 802.11v1.5 antenna array

What does the UART for CPU Low print on boot?

In the MAP report (implementation/system_map.mrp), check that all of your design's IOBs were assigned to pins - search for "Number of LOCed IOBs" and confirm it is 100%.

Offline

 

#3 2016-May-09 03:18:11

charles_soyo
Member
Registered: 2016-Mar-01
Posts: 23

Re: 802.11v1.5 antenna array

Hi i got CPU low output as this.

----- Mango 802.11 Reference Design -----
----- v1.5 ------------------------------
----- wlan_mac_nomac --------------------
Compiled May  9 2016 17:16:59

Note: this UART is currently printing from CPU_LOW. To view prints from
and interact with CPU_HIGH, raise the right-most User I/O DIP switch bit.
This switch can be toggled live while the design is running.

------------------------
CM-MMCX Config C Detected:
  RF: Off-board
  Samp: Off-board
  MMCX Outputs: Disabled

Radios didn't lock! RC stat reg: 0x10101818
ERROR: (w3_node_init) Radio controller initialization failed with error code: -1
Error in w3_node_init()! Exiting



i think i changed:

iic_eeprom_init(FMC_EEPROM_BASEADDR, 0X64)  ---in wlan_phy_util.c line 197

to:

iic_eeprom_init(FMC_EEPROM_BASEADDR, 0X64, XPAR_CPU_ID)

in order to make C Files complied.

Which function is right? and how can i make it complied sucessfully


Thanks for helping sir!

Offline

 

#4 2016-May-09 19:03:11

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

Re: 802.11v1.5 antenna array

The output above indicates the node is using a CM-MMCX module, configured for the "tail" position in a daisy chain (external clock sources, clock outputs disabled). Is this the intended configuration?

The message 'Radios didn't lock! RC stat reg: 0x10101818' means the radio_controller did not observe a high "LD" signal from RF C and RF D. This occurs when the RF C/D radios are not connected to the radio_controller or when the RF C/D reference clocks are not enabled. Please check your design's MAP report (see my comment above) to confirm that all external I/O are bound to the correct pins.

We updated the 4 radio app note for v1.5. Did you use that as the guide for updating the MHS/UCF files?

i think i changed:

iic_eeprom_init(FMC_EEPROM_BASEADDR, 0X64)  ---in wlan_phy_util.c line 197

to:

iic_eeprom_init(FMC_EEPROM_BASEADDR, 0X64, XPAR_CPU_ID)

in order to make C Files complied.

Which function is right? and how can i make it complied sucessfully

Yes, that's correct. We changed the EEPROM driver API in v1.5 but forgot to update the (normally disabled) iic_eeprom_init() call for the FMC module EEPROM.

Offline

 

#5 2016-May-12 00:45:49

charles_soyo
Member
Registered: 2016-Mar-01
Posts: 23

Re: 802.11v1.5 antenna array

Radios didn't lock! RC stat reg: 0x10101818
ERROR: (w3_node_init) Radio controller initialization failed with error code: -1
Error in w3_node_init()! Exiting



Hi sir i remove the CM-MMCX module

But i still get the same error.

i checked map report: Number of LOCed IOBs is 100%

Hmm What should the error should be.

Thanks.

Offline

 

#6 2016-May-12 09:52:18

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

Re: 802.11v1.5 antenna array

There's a bug in our C code that is probably the underlying cause here. The C code should use the macro WLAN_4RF_EN to enable the clocks and radios for the FMC module. However the v1.5 code erroneously uses WARPLAB_CONFIG_4RF in one place, the result of copying the clock config code from the WARPLab Reference Design. Because of this your design is not enabling the clock outputs to the FMC module, leading to the radio_controller_init() error above. Try changing WARPLAB_CONFIG_4RF to WLAN_4RF_EN. Sorry for the error.

Offline

 

#7 2016-Jul-27 02:52:47

charles_soyo
Member
Registered: 2016-Mar-01
Posts: 23

Re: 802.11v1.5 antenna array

HI
i enabled 4 RF mode and i can set RF_C and RF_D in python without error and red led can light on RFC and RFD as well

However i cannot receive any OFDM or LTG on RF_C and RF_D(No log event of 'RX_OFDM').  and it seems RF_B became failed too.

What could cause this problem?

I am using V1.5.0

Thank U very much

Offline

 

#8 2016-Jul-28 23:13:27

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

Re: 802.11v1.5 antenna array

It doesn't make sense that adding IO for RF C/D would break RF B. Did you change anything else in the MHS or C code? What are the RF connections (cables+attenuators, antennas)?

Offline

 

#9 2016-Jul-31 21:13:51

charles_soyo
Member
Registered: 2016-Mar-01
Posts: 23

Re: 802.11v1.5 antenna array

Thank u for reply sir !

I re-compile C code and RF A and B is working good. But RF c and C is still down.

I modified UCF and MSH file in xps following the 4 radio app note. And double checked they r same.

The compile of bitstream has no error and Number of LOCed IOBs is 100%.

Then BSP is created and BSP_high setup is WARP_HW_VERSION =3.10.a, WARP_ip_udp =1.00.b; BSP_low setup is WARP_HW_VERSION =3.10.a

In C code WLAN_4RF_EN is changed to defined. One error here in DCF, is that XPAR_W3_ICC_EEPROM_BASEADDR is not linked to the definition in xparameter.c (xparameter.c is included).

However NOMAC compiling has no error(XPAR_W3_ICC_EEPROM_BASEADDR is linked).

So i used NOMAC for low mac to program the board and RF A, B is good and C_D is down(RED LED can be set to RF C, D).

i also tried replacing XPAR_W3_ICC_EEPROM_BASEADDR as the address in xparameter for DCF(to successfully compile), and programing the board(no error occurred) But still the same.

DIP switch on FMC is set to 001010.

RF A B C D are directly connected to antennas in same way.

I have checked the FMC board is not broken.

I think the error can be in C code, but its too hard to go through the whole project.

Can i have some clues?


Thank u very much !

Offline

 

#10 2016-Aug-02 17:07:45

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

Re: 802.11v1.5 antenna array

You may be running into a limitation in the current Rx PHY core. The packet detection block only implements auto-correlation detectors for the RF A and RF B inputs.

You can duplicate the detection logic for RF C and RF D in a custom Rx PHY core. These blocks are in the "Sync & Antenna Sel / Pkt Det/" subsystem.

Alternatively you can modify the C code to use RF A/B for detection and RF C/D as the IQ stream for the Rx pipeline. In this configuration the incoming waveform must be present at two antennas (one for detection, one for reception). This requires modifying the ANTC/ANTD cases in wlan_rx_config_ant_mode() in wlan_phy_util.c. The example below configures RF A as the detection source while selecting RF C or RF D as the Rx I/Q source.

Code:

        case RX_ANTMODE_SISO_ANTC:
            REG_SET_BITS(WLAN_RX_REG_CFG, WLAN_RX_REG_CFG_PKT_DET_EN_ANT_A);
            wlan_phy_select_rx_antenna(RX_ANTMODE_SISO_ANTC);
            radio_controller_setCtrlSource(RC_BASEADDR, (RC_RFA | RC_RFC), RC_REG0_RXEN_CTRLSRC, RC_CTRLSRC_HW);
            wlan_agc_config(RX_ANTMODE_SISO_ANTC);
        break;

        case RX_ANTMODE_SISO_ANTD:
            REG_SET_BITS(WLAN_RX_REG_CFG, WLAN_RX_REG_CFG_PKT_DET_EN_ANT_A);
            wlan_phy_select_rx_antenna(RX_ANTMODE_SISO_ANTD);
            radio_controller_setCtrlSource(RC_BASEADDR, (RC_RFA | RC_RFD), RC_REG0_RXEN_CTRLSRC, RC_CTRLSRC_HW);
            wlan_agc_config(RX_ANTMODE_SISO_ANTD);
        break;

Offline

 

#11 2016-Sep-08 22:29:49

charles_soyo
Member
Registered: 2016-Mar-01
Posts: 23

Re: 802.11v1.5 antenna array

Hi murphpo

Thank you for reply!

I change the c code of wlan_rx_config_ant_mode(), Now i can receive the signal from RF_C and RF_D.

however when i test the system, RF_B,RF_C,RF_D is not always receiving OFDM signal. Each time i restart the node, RF interfaces may work or fail randomly.(but RF_a is always good)

If i am lucky, all four will work, if not, only 1 or 2 or 3 will work.

Same thing happens when i upload default STA.bin provided in zip. RF_b is not always working, when i use it for receiving signal.

i searched through this forum, and i find one person said it is may caused by programming via sd card. is this possible?
https://warpproject.org/forums/viewtopic.php?id=2795


Can i have some clue on this?

Thank you very much

Offline

 

#12 2016-Sep-10 10:12:06

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

Re: 802.11v1.5 antenna array

The configuration source (SD card, JTAG) shouldn't affect how the design operates. You'll have to run some more controlled experiments to isolate factors that affect which interfaces work normally. I would definitely suggest removing antennas from the setup for these tests - over-the-air channels and interference introduce too many unknowns. Be sure any cabled connection between Tx/Rx has 30+ dB attenuation to avoid damaging the Rx circuits.

Offline

 

#13 2016-Sep-17 06:31:20

charles_soyo
Member
Registered: 2016-Mar-01
Posts: 23

Re: 802.11v1.5 antenna array

Hi sir
thank you for reply!
i find that RF A is always working for default 802.11v1.5.0 download bit file. RF b is not always working.

Similar thing happens  when i use 4 RF mode. RF_A and RF_C is always working. RF_B and RF_D is not always working

So i thought it the packet detection.


Then i set all rf det to RF_A like:

        case RX_ANTMODE_SISO_ANTA:
            REG_SET_BITS(WLAN_RX_REG_CFG, WLAN_RX_REG_CFG_PKT_DET_EN_ANT_A);
            wlan_phy_select_rx_antenna(RX_ANTMODE_SISO_ANTA);
            radio_controller_setCtrlSource(RC_BASEADDR, RC_RFA , RC_REG0_RXEN_CTRLSRC, RC_CTRLSRC_HW);
            wlan_agc_config(RX_ANTMODE_SISO_ANTC);
        break;

        case RX_ANTMODE_SISO_ANTB:
            REG_SET_BITS(WLAN_RX_REG_CFG, WLAN_RX_REG_CFG_PKT_DET_EN_ANT_A);
            wlan_phy_select_rx_antenna(RX_ANTMODE_SISO_ANTB);
            radio_controller_setCtrlSource(RC_BASEADDR, (RC_RFA | RC_RFB), RC_REG0_RXEN_CTRLSRC, RC_CTRLSRC_HW);
            wlan_agc_config(RX_ANTMODE_SISO_ANTD);
        break;
        case RX_ANTMODE_SISO_ANTC:
            REG_SET_BITS(WLAN_RX_REG_CFG, WLAN_RX_REG_CFG_PKT_DET_EN_ANT_A);
            wlan_phy_select_rx_antenna(RX_ANTMODE_SISO_ANTC);
            radio_controller_setCtrlSource(RC_BASEADDR, (RC_RFA | RC_RFC), RC_REG0_RXEN_CTRLSRC, RC_CTRLSRC_HW);
            wlan_agc_config(RX_ANTMODE_SISO_ANTC);
        break;

        case RX_ANTMODE_SISO_ANTD:
            REG_SET_BITS(WLAN_RX_REG_CFG, WLAN_RX_REG_CFG_PKT_DET_EN_ANT_A);
            wlan_phy_select_rx_antenna(RX_ANTMODE_SISO_ANTD);
            radio_controller_setCtrlSource(RC_BASEADDR, (RC_RFA | RC_RFD), RC_REG0_RXEN_CTRLSRC, RC_CTRLSRC_HW);
            wlan_agc_config(RX_ANTMODE_SISO_ANTD);
        break;


but still B and D is not working always

Is there anything asymmetry between RF_A and RF_B, or RF_C and RF_D?

This happens on all boards.

Can i have some clues to debug it?

thank you very much

Offline

 

#14 2016-Sep-20 08:30:49

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

Re: 802.11v1.5 antenna array

The 802.11 Reference Design Tx/Rx PHYs support operation on RF A and B with equal capability. The reference code configures the Tx and Rx PHY to use RF A for all operations. You can switch various Tx/Rx operations to RF B via the wlan_exp antenna mode methods. Is this how you are controlling which RF interface  your nodes use?

Offline

 

#15 2016-Sep-25 05:56:18

charles_soyo
Member
Registered: 2016-Mar-01
Posts: 23

Re: 802.11v1.5 antenna array

HI thanks for reply

Yes i do use WlanExpNode.set_rx_ant_mode('RF_B') to set antenna mode when testing with default 802.11v1.5.0 bit stream.

Every time i restart the device( power off and on), RF_B has around 50% chance to fail. and RF_B will never work until i restart the device.

But RF_A seems never be affected, always have signal.

i dnot think its python code error, since after i restart the device RF_B will come back.

That is y i am asking anything asymmetry between RF_A and RF_B. Probably in hardware?

This thing confused me for a long time.

Can i have a help on that?

thank you very much

Offline

 

#16 2016-Sep-26 08:50:43

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

Re: 802.11v1.5 antenna array

What do you mean by "RF_B has around 50% chance to fail". What defines "fail" here? The interface does not enter Rx mode? The radio PLL does not lock? Or that the PHY does not report any receptions? Please be specific - we cannot offer suggestions without details about the behavior you're observing.

Offline

 

#17 2016-Sep-29 00:10:18

charles_soyo
Member
Registered: 2016-Mar-01
Posts: 23

Re: 802.11v1.5 antenna array

Hi

thank you for reply.

Sry i did not explain clear before.

When RF_B fail, RX on RF_B is not working, i checked mb_low output is all right. but no RX event(rx_polling in C for OFDM always fails). but the board can enter RX_B mode, red led is on RF_b, and i checked that the C program do enter the functions setting RX_b. and no error happened.(this is checked by reading the output from mb_low)

I go through all the C code and pcore for RX, i did not see any asymmetry.

Also this can not be solved by swapping connection of antenna A and antenna B.

Offline

 

#18 2016-Oct-16 19:27:32

ben
Member
Registered: 2016-Sep-21
Posts: 7

Re: 802.11v1.5 antenna array

hi.
When RF B fail,  'mac_hw_status & WLAN_MAC_STATUS_MASK_RX_PHY_STARTED' will never return true when i set it to RF B.

Offline

 

#19 2016-Oct-17 11:10:45

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

Re: 802.11v1.5 antenna array

When RF B fail,  'mac_hw_status & WLAN_MAC_STATUS_MASK_RX_PHY_STARTED' will never return true when i set it to RF B.

This indicates the Rx PHY is never attempting to decode a packet. This could be because the packet detection logic is misconfigured, the RF B interface is not in Rx mode, the Rx PHY is configured to use the RF A inputs, etc.

Offline

 

Board footer