This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WL1801MOD: Low tx power levels

Part Number: WL1801MOD
Other Parts Discussed in Thread: WL1835MOD

Using the WL1801MOD and attempting to get full control of the transmit power levels.

calibrator get drv_info wlan0

Driver wl18xx_driver
version 4.19.0-Vesper
FW version Rev 8.9.0.0.81
Bus info wl18xx.0.auto
HW version 0x6030111

Fetching the configuration with wlconf outputs the following (snippet of just the phy settings):

wl18xx.ht.mode = 0x01
wl18xx.phy.phy_standalone = 0x00
wl18xx.phy.spare0 = 0x08
wl18xx.phy.enable_clpc = 0x00
wl18xx.phy.enable_tx_low_pwr_on_siso_rdl = 0x00
wl18xx.phy.auto_detect = 0x00
wl18xx.phy.dedicated_fem = 0x00
wl18xx.phy.low_band_component = 0x02
wl18xx.phy.low_band_component_type = 0x05
wl18xx.phy.high_band_component = 0x01
wl18xx.phy.high_band_component_type = 0x09
wl18xx.phy.number_of_assembled_ant2_4 = 0x01
wl18xx.phy.number_of_assembled_ant5 = 0x00
wl18xx.phy.pin_muxing_platform_options = 0x00, 0x00
wl18xx.phy.external_pa_dc2dc = 0x00
wl18xx.phy.tcxo_ldo_voltage = 0x00
wl18xx.phy.xtal_itrim_val = 0x04
wl18xx.phy.srf_state = 0x00
wl18xx.phy.srf1 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
wl18xx.phy.srf2 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
wl18xx.phy.srf3 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
wl18xx.phy.io_configuration = 0x01
wl18xx.phy.sdio_configuration = 0x00
wl18xx.phy.settings = 0x00
wl18xx.phy.rx_profile = 0x00

wl18xx.phy.per_chan_pwr_limit_arr_11abg = 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff

wl18xx.phy.pwr_limit_reference_11_abg = 0xaa
wl18xx.phy.per_chan_pwr_limit_arr_11p = 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
wl18xx.phy.pwr_limit_reference_11p = 0xaa
wl18xx.phy.spare1 = 0x00
wl18xx.phy.per_chan_bo_mode_11_abg = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
wl18xx.phy.per_chan_bo_mode_11_p = 0x00, 0x00, 0x00, 0x00
wl18xx.phy.primary_clock_setting_time = 0x05
wl18xx.phy.clock_valid_on_wake_up = 0x00
wl18xx.phy.secondary_clock_setting_time = 0x05
wl18xx.phy.board_type = 0x02
wl18xx.phy.psat = 0x00
wl18xx.phy.low_power_val = 0x14
wl18xx.phy.med_power_val = 0x14
wl18xx.phy.high_power_val = 0x14
wl18xx.phy.per_sub_band_tx_trace_loss = 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
wl18xx.phy.per_sub_band_rx_trace_loss = 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
wl18xx.phy.tx_rf_margin = 0x01
wl18xx.phy.low_power_val_2nd = 0x14
wl18xx.phy.med_power_val_2nd = 0x14
wl18xx.phy.high_power_val_2nd = 0x14
wl18xx.phy.padding = 0x00

 

When run with the calibrator on ch2 using,

calibrator wlan0 wl18xx_plt set_tx_power 20000 0 0 2 0 0 0 1 0 0 0 0

I am only able to get ~10dBm at the ANT1 (BG2) port. This is measured directly at a UMC (routed directly to ANT1 through 100p) and straight into a spectrum analyser (cable loss accounted for). With this configuration I was expecting to see ~17dBm (which is reported in the datasheet as typical). I observe that when I run the set_tx_power with a lower power e.g. 3000, I get a similar result of 10dBm, which confirms that the tx_trace_loss setting is being applied. I set this to the maximum to try and get 17dBm. When run with debug using,

calibrator wlan0 wl18xx_plt set_tx_power 20000 0 0 2 0 0 0 0 0 1 0 0

I see it increase to ~13dBm. It appears as if there is some kind of hardlimit being applied in the fw that prevents any higher output powers. With the current configuration I would expect the limits to be set to [17 + 15] dB i.e. no effective sw limits with the module trying to make up another 15dB on the ANT1 port. I was expecting that in one of these modes of operation I would see the output max out at ~17dBm.

What am I missing here? Ultimately I would like to gain control of the tx power in AP mode under normal operation for some product range testing,

  • Should I expect to be able to get ~17dBm with these configuration settings on the WL1801MOD?
  • Is it possible there is something else overriding these settings and hard limiting the power output?
  • What is the best way to control maximum power output under normal operating modes?
  • What are the BO table settings that get applied by the fw? Is there any way to disable this?

Thanks for your help.

Carl. 

  • Hi ,

    - Are you using TI module ?

    - If yes, make sure you are using right INI files :

    - Run configure device script :  

    For WL1801MOD , select WL1805, configure number of 2.4GHz antennas to 1 and answer "Y" to C2PC changes  and re-test .

    Thanks

    Saurabh

  • I am using the WL1801MODGBMOC

    I have tried your suggestion and the result is no different. To be clear the following configuration has been applied:

    ./wlconf -o test8-conf.bin -I official_inis/WL1835MOD_INI_C2PC.ini
    ./wlconf -i test8-conf.bin -o test8-conf.bin -s wl18xx.phy.number_of_assembled_ant2_4=1
    ./wlconf -i test8-conf.bin -o test8-conf.bin -s wl18xx.phy.number_of_assembled_ant5=0
    ./wlconf -i test8-conf.bin -o test8-conf.bin -s wl18xx.phy.high_band_component_type=0x09
    ./wlconf -i test8-conf.bin -o test8-conf.bin -s wl18xx.ht.mode=2

    The best I can achieve is ~10dBm or ~14dBm in debug mode (accounting for cable loss).

    Any idea why there is a limitation? The difference between debug and normal mode of 4dB is interesting.
    14dBm under normal operation would provide a much better result.
    Is there anyway to configure debug levels to be used under normal operation?
    Any other ideas on things to check and try?



    Thanks
    Carl.

  • HI Carl,

    Are you using a customer board or our EVM board? if this is on our EVM board, did you move the resistor/cap that is going to the antenna over to the SAM connector?

    Thanks,

    Riz

  • Hi Riz,

    This is on a custom board, measuring from a UMC coax connection right at the ANT1 output.

    This has been tried on more than one board and the result is consistently low output power. If we cannot resolve this we will be forced to start evaluating alternative vendors which I really do not want to do.

    Can you send through some example spectrum analyser plots and calibrator commands to run to get 17dBm out of a WL1801MOD, this will give me something to compare my setup to.

    Thanks

    Carl.

  • Hi Carl,

    Reading back thru the thread I noticed that you are using a 100pF capacitor as the DC block here. This is a high value for 2.4GHz and could be why you are loosing power. Can you try this with a 10pF capacitor?

    For our calibrator commands you can refer to our wiki-page:

    As an example for 11B rate on CH 7 you can use the following:

    calibrator wlan0 wl18xx_plt stop_tx
    calibrator wlan0 wl18xx_plt tune_channel  7 0 1
    calibrator wlan0 wl18xx_plt set_tx_power 20000 0 0 7 0 0 0 1 0 0 0 0
    calibrator wlan0 wl18xx_plt start_tx 500 3 500 0 0 1 0 0 00:11:22:33:44:55 01:02:03:04:05:06 0

    Turing off the 5th last lit in the set_tx_power will remove the FW limit at max out the power to the device. Note that this is only for testing the requirement is FW limits for production and use of the certification.

    The next step here would be to review the schematic and layout. Ensure that we don't see any issues, but lowering the cap hopefully is the issue here.

    Thanks,

    Riz

  • Hi Riz,

    Thats not how reactance works Im afraid. 100pF should perform better than a 10pF as a DC block.

    Can you send me a spectrum analyser measurement of the ANT1 port so I can compare my measurement setup to your test setup?

    The commands you have posted here are the same as I am using. 

    When you mention that the fw limits the power output by default are you referring to the default back off values or something else? From the support materials it seems the intent is for the ini file to be able to set the maximum power limits that are applied to each channel using:

    PwrLimitReference11ABG = 0xC8

    PerChanPwrLimitArr11ABG = ff ff ...

    PerSubBandTxTraceLoss = 7F 7F 00 ...

    Where essentially (PwrLimitReference11ABG + PerChanPwrLimitArr11ABG + PerSubBandTxTraceLoss) = max available power.

    So for the values above 20 + 15 = 35dBm with the module trying to make up another ~15dB on the ANT1 port, right? This is not achievable of course, but I would expect it to max out at the 17dBm advertised on the datasheet. Is this a valid expectation? Or does the fw just limit the output power with no regard for the ini file? If so, what are the limits that it applies?

    Thanks
    Carl. 

  • Hi Carl,

    I understand your point on the dc blocking capacitor however in for practical applications there are parasitics associated with the capacitor package, board parasitics, non-idea 50 ohm source, etc that come into play here. Thus if you were to use an 0402 DC block vs and 0603 DC block, for example, the parasitics are different. As per our reference design we use a 10pF DC blocking capacitor. I would still suggest that you try this to see if you have an improvement in you results. Note that the 10pF capacitor is for an 0402 size component.

    Do you have our com8 board + DMMC board so that you can measure our reference design? If you do this you can use RTTT which is a GUI based test method for our reference design:

    The other think we can offer is a schematic/layout review of your design to see if there is anything there. You can start this process here:

    Now in terms of your questions on calibrator. For the calibrator commands that you are using the 20000 is trying to set the radio to 20dBm output power. When we have the FW flag set to "1" it is basically using the INI limit such that the FW is looking to ensure that the power you are trying to set will be less than or equal to the FW limit.

    As an example if the FW limit is set to 15dBm and you try and set the power to 16dBm, our FW will limit you to 15dBm as the flag is set. However if you set this flag to "0",then you will be able to get 16dBm.

    You are also correct in that our radio cannot produce 20 + 15dBm. In this case it will be PSAT of the PA and this will be around 20dBm.

    You can find our regulator test reports on TI.com as well which will show you measured data that you can compare against for your measurements. Our COM8 board was used here:

    A good reference would be the FCC or CE reports.

    I hope this helps.

    Thanks,

    Riz