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.