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.

WL1831MOD: Radiated electromagnetic field immunity test (RS) EN61000-4-3 FAIL

Part Number: WL1831MOD
Other Parts Discussed in Thread: WL1831, WL1837MOD, WL1835MOD, WL1837, WL1835

Dear Sir/Madame

I am hardware design engineer from Slovenia, Europe and I am involved in certification phase of our new device, which is using a WL1831MOD for  WiFi AP-access point and Bluetooth simultaneously. Module is populated on VAR-SOM-SOLO SBC, from manufacturer Variscite, which is then connected to our PCB. SBC is baesd on iMX6 processor on which we run Linux.  One of the main reasons why are we using this module is since it is CE certificated. We are using recommended antenna LARID CAF94505.

Past week we have been performing Radiated electromagnetic filed immunity test (RS) according to test standard EN61000-4-3, criterion A in a certified facility. During the test the DUT is exposed to electromagnetic field of 3V/m from 80MHz until 6000MHz. We are monitoring WL1837MOD WiFi by pinging it twice per second from PC located in corner of EMC chamber. The WL1831 operates as expected from 80MHz until 3000MHz. From 3000MHz until 6000MHz all ping messages are lost, which is really weird since this module operates only from 2400MHz - 2480MHz When the electromagnetic filed is turned off, WiFi start to operate normally at once. Also immediately after the disturbance is turned off we receive few ping messages with extremely long ping times. All along this time the Linux on iMX6 is running normally and we have not noticed any wifi errors in dmesg-es.

So our idea was to try to distinguish if the disturbance which stops WL1831MOD from working is coming from power lines over PCB or from antenna. So we extended antenna cable with 1.5m long coax cable and performed test in two different setups:

In first setup we have left our device on the testing table but moved WiFi antenna to the side of the EMC chamber. So the antenna was not in the middle of the radiated field. In this case we got ping replies, but the delay time was longer than without a disturbance.

In the second setup we left antenna on the table and moved the device away from EM field disturbance. In this case there was no ping reply as in the original test setup.

Thus our idea is that Wl1831MOD does not reply any ping messages, since there is too much disturbance on antenna.

So since the WL1831MOD is certified with the same tests as we have been performing, I started to investigate WiFi settings. According to SWRU422A I realized that we might have not performed first time configuration for WL1831 device with configure-device.sh script. I have noticed that wl18xx-conf.bin that we are using states that we are using two 2.4GHz antennas and one 5GHz, while in fact we are using only one 2.4GHz antenna. I am not sure about other settings. Could this be a reason why WiFi does not work correctly?I am attaching wl18xx-conf-dump.txt

Is the WL1835MOD_INI.ini the file from which the wl18xx_conf was generated for TI certification?

Current firmware and MAC version:

FRev 8.9.0.0.79
FRev 8.2.0.0.242

Best Regards

8463.wl18xx-conf-dump.txt
header.magic = 0x10e100ca
header.version = 0x00070007
header.checksum = 0x00000000
core.sg.params = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000f, 0x0000001b, 0x00000011, 0x000000aa, 0x00000032, 0x00000064, 0x00000320, 0x000000c8, 0x000000c8, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x0000003c, 0x00001388, 0x000004b0, 0x000003e8, 0x00000001, 0x00000003, 0x00000006, 0x0000000a, 0x0000000a, 0x00000002, 0x00000005, 0x0000001e, 0x00000003, 0x0000000a, 0x00000002, 0x00000000, 0x00000019, 0x00000019, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
core.sg.state = 0x01
core.rx.rx_msdu_life_time = 0x0007d000
core.rx.packet_detection_threshold = 0x00000000
core.rx.ps_poll_timeout = 0x000f
core.rx.upsd_timeout = 0x000f
core.rx.rts_threshold = 0x0931
core.rx.rx_cca_threshold = 0x0000
core.rx.irq_blk_threshold = 0xffff
core.rx.irq_pkt_threshold = 0x0000
core.rx.irq_timeout = 0x0258
core.rx.queue_type = 0x00
core.tx.tx_energy_detection = 0x00
core.tx.sta_rc_conf.enabled_rates = 0x00000000
core.tx.sta_rc_conf.short_retry_limit = 0x0a
core.tx.sta_rc_conf.long_retry_limit = 0x0a
core.tx.sta_rc_conf.aflags = 0x00
core.tx.ac_conf_count = 0x04
core.tx.ac_conf0.ac = 0x00
core.tx.ac_conf0.cw_min = 0x0f
core.tx.ac_conf0.cw_max = 0x003f
core.tx.ac_conf0.aifsn = 0x03
core.tx.ac_conf0.tx_op_limit = 0x0000
core.tx.ac_conf1.ac = 0x01
core.tx.ac_conf1.cw_min = 0x0f
core.tx.ac_conf1.cw_max = 0x003f
core.tx.ac_conf1.aifsn = 0x07
core.tx.ac_conf1.tx_op_limit = 0x0000
core.tx.ac_conf2.ac = 0x02
core.tx.ac_conf2.cw_min = 0x0f
core.tx.ac_conf2.cw_max = 0x003f
core.tx.ac_conf2.aifsn = 0x01
core.tx.ac_conf2.tx_op_limit = 0x0bc0
core.tx.ac_conf3.ac = 0x03
core.tx.ac_conf3.cw_min = 0x0f
core.tx.ac_conf3.cw_max = 0x003f
core.tx.ac_conf3.aifsn = 0x01
core.tx.ac_conf3.tx_op_limit = 0x05e0
core.tx.max_tx_retries = 0x64
core.tx.ap_aging_period = 0x012c
core.tx.tid_conf_count = 0x04
core.tx.tid_conf0.queue_id = 0x00
core.tx.tid_conf0.channel_type = 0x01
core.tx.tid_conf0.tsid = 0x00
core.tx.tid_conf0.ps_scheme = 0x00
core.tx.tid_conf0.ack_policy = 0x00
core.tx.tid_conf0.apsd_conf = 0x00000000, 0x00000000
core.tx.tid_conf1.queue_id = 0x01
core.tx.tid_conf1.channel_type = 0x01
core.tx.tid_conf1.tsid = 0x01
core.tx.tid_conf1.ps_scheme = 0x00
core.tx.tid_conf1.ack_policy = 0x00
core.tx.tid_conf1.apsd_conf = 0x00000000, 0x00000000
core.tx.tid_conf2.queue_id = 0x02
core.tx.tid_conf2.channel_type = 0x01
core.tx.tid_conf2.tsid = 0x02
core.tx.tid_conf2.ps_scheme = 0x00
core.tx.tid_conf2.ack_policy = 0x00
core.tx.tid_conf2.apsd_conf = 0x00000000, 0x00000000
core.tx.tid_conf3.queue_id = 0x03
core.tx.tid_conf3.channel_type = 0x01
core.tx.tid_conf3.tsid = 0x03
core.tx.tid_conf3.ps_scheme = 0x00
core.tx.tid_conf3.ack_policy = 0x00
core.tx.tid_conf3.apsd_conf = 0x00000000, 0x00000000
core.tx.tid_conf4.queue_id = 0x00
core.tx.tid_conf4.channel_type = 0x00
core.tx.tid_conf4.tsid = 0x00
core.tx.tid_conf4.ps_scheme = 0x00
core.tx.tid_conf4.ack_policy = 0x00
core.tx.tid_conf4.apsd_conf = 0x00000000, 0x00000000
core.tx.tid_conf5.queue_id = 0x00
core.tx.tid_conf5.channel_type = 0x00
core.tx.tid_conf5.tsid = 0x00
core.tx.tid_conf5.ps_scheme = 0x00
core.tx.tid_conf5.ack_policy = 0x00
core.tx.tid_conf5.apsd_conf = 0x00000000, 0x00000000
core.tx.tid_conf6.queue_id = 0x00
core.tx.tid_conf6.channel_type = 0x00
core.tx.tid_conf6.tsid = 0x00
core.tx.tid_conf6.ps_scheme = 0x00
core.tx.tid_conf6.ack_policy = 0x00
core.tx.tid_conf6.apsd_conf = 0x00000000, 0x00000000
core.tx.tid_conf7.queue_id = 0x00
core.tx.tid_conf7.channel_type = 0x00
core.tx.tid_conf7.tsid = 0x00
core.tx.tid_conf7.ps_scheme = 0x00
core.tx.tid_conf7.ack_policy = 0x00
core.tx.tid_conf7.apsd_conf = 0x00000000, 0x00000000
core.tx.frag_threshold = 0x0930
core.tx.tx_compl_timeout = 0x015e
core.tx.tx_compl_threshold = 0x000a
core.tx.basic_rate = 0x00000001
core.tx.basic_rate_5 = 0x00000008
core.tx.tmpl_short_retry_limit = 0x0a
core.tx.tmpl_long_retry_limit = 0x0a
core.tx.tx_watchdog_timeout = 0x00001388
core.tx.slow_link_thold = 0x03
core.tx.fast_link_thold = 0x1e
core.conn.wake_up_event = 0x02
core.conn.listen_interval = 0x01
core.conn.suspend_wake_up_event = 0x04
core.conn.suspend_listen_interval = 0x03
core.conn.bcn_filt_mode = 0x01
core.conn.bcn_filt_ie_count = 0x03
core.conn.bcn_filt_ie0.ie = 0x25
core.conn.bcn_filt_ie0.rule = 0x02
core.conn.bcn_filt_ie0.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie0.type = 0x00
core.conn.bcn_filt_ie0.version = 0x00, 0x00
core.conn.bcn_filt_ie1.ie = 0x3d
core.conn.bcn_filt_ie1.rule = 0x01
core.conn.bcn_filt_ie1.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie1.type = 0x00
core.conn.bcn_filt_ie1.version = 0x00, 0x00
core.conn.bcn_filt_ie2.ie = 0x2a
core.conn.bcn_filt_ie2.rule = 0x01
core.conn.bcn_filt_ie2.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie2.type = 0x00
core.conn.bcn_filt_ie2.version = 0x00, 0x00
core.conn.bcn_filt_ie3.ie = 0x00
core.conn.bcn_filt_ie3.rule = 0x00
core.conn.bcn_filt_ie3.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie3.type = 0x00
core.conn.bcn_filt_ie3.version = 0x00, 0x00
core.conn.bcn_filt_ie4.ie = 0x00
core.conn.bcn_filt_ie4.rule = 0x00
core.conn.bcn_filt_ie4.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie4.type = 0x00
core.conn.bcn_filt_ie4.version = 0x00, 0x00
core.conn.bcn_filt_ie5.ie = 0x00
core.conn.bcn_filt_ie5.rule = 0x00
core.conn.bcn_filt_ie5.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie5.type = 0x00
core.conn.bcn_filt_ie5.version = 0x00, 0x00
core.conn.bcn_filt_ie6.ie = 0x00
core.conn.bcn_filt_ie6.rule = 0x00
core.conn.bcn_filt_ie6.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie6.type = 0x00
core.conn.bcn_filt_ie6.version = 0x00, 0x00
core.conn.bcn_filt_ie7.ie = 0x00
core.conn.bcn_filt_ie7.rule = 0x00
core.conn.bcn_filt_ie7.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie7.type = 0x00
core.conn.bcn_filt_ie7.version = 0x00, 0x00
core.conn.bcn_filt_ie8.ie = 0x00
core.conn.bcn_filt_ie8.rule = 0x00
core.conn.bcn_filt_ie8.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie8.type = 0x00
core.conn.bcn_filt_ie8.version = 0x00, 0x00
core.conn.bcn_filt_ie9.ie = 0x00
core.conn.bcn_filt_ie9.rule = 0x00
core.conn.bcn_filt_ie9.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie9.type = 0x00
core.conn.bcn_filt_ie9.version = 0x00, 0x00
core.conn.bcn_filt_ie10.ie = 0x00
core.conn.bcn_filt_ie10.rule = 0x00
core.conn.bcn_filt_ie10.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie10.type = 0x00
core.conn.bcn_filt_ie10.version = 0x00, 0x00
core.conn.bcn_filt_ie11.ie = 0x00
core.conn.bcn_filt_ie11.rule = 0x00
core.conn.bcn_filt_ie11.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie11.type = 0x00
core.conn.bcn_filt_ie11.version = 0x00, 0x00
core.conn.bcn_filt_ie12.ie = 0x00
core.conn.bcn_filt_ie12.rule = 0x00
core.conn.bcn_filt_ie12.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie12.type = 0x00
core.conn.bcn_filt_ie12.version = 0x00, 0x00
core.conn.bcn_filt_ie13.ie = 0x00
core.conn.bcn_filt_ie13.rule = 0x00
core.conn.bcn_filt_ie13.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie13.type = 0x00
core.conn.bcn_filt_ie13.version = 0x00, 0x00
core.conn.bcn_filt_ie14.ie = 0x00
core.conn.bcn_filt_ie14.rule = 0x00
core.conn.bcn_filt_ie14.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie14.type = 0x00
core.conn.bcn_filt_ie14.version = 0x00, 0x00
core.conn.bcn_filt_ie15.ie = 0x00
core.conn.bcn_filt_ie15.rule = 0x00
core.conn.bcn_filt_ie15.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie15.type = 0x00
core.conn.bcn_filt_ie15.version = 0x00, 0x00
core.conn.bcn_filt_ie16.ie = 0x00
core.conn.bcn_filt_ie16.rule = 0x00
core.conn.bcn_filt_ie16.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie16.type = 0x00
core.conn.bcn_filt_ie16.version = 0x00, 0x00
core.conn.bcn_filt_ie17.ie = 0x00
core.conn.bcn_filt_ie17.rule = 0x00
core.conn.bcn_filt_ie17.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie17.type = 0x00
core.conn.bcn_filt_ie17.version = 0x00, 0x00
core.conn.bcn_filt_ie18.ie = 0x00
core.conn.bcn_filt_ie18.rule = 0x00
core.conn.bcn_filt_ie18.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie18.type = 0x00
core.conn.bcn_filt_ie18.version = 0x00, 0x00
core.conn.bcn_filt_ie19.ie = 0x00
core.conn.bcn_filt_ie19.rule = 0x00
core.conn.bcn_filt_ie19.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie19.type = 0x00
core.conn.bcn_filt_ie19.version = 0x00, 0x00
core.conn.bcn_filt_ie20.ie = 0x00
core.conn.bcn_filt_ie20.rule = 0x00
core.conn.bcn_filt_ie20.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie20.type = 0x00
core.conn.bcn_filt_ie20.version = 0x00, 0x00
core.conn.bcn_filt_ie21.ie = 0x00
core.conn.bcn_filt_ie21.rule = 0x00
core.conn.bcn_filt_ie21.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie21.type = 0x00
core.conn.bcn_filt_ie21.version = 0x00, 0x00
core.conn.bcn_filt_ie22.ie = 0x00
core.conn.bcn_filt_ie22.rule = 0x00
core.conn.bcn_filt_ie22.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie22.type = 0x00
core.conn.bcn_filt_ie22.version = 0x00, 0x00
core.conn.bcn_filt_ie23.ie = 0x00
core.conn.bcn_filt_ie23.rule = 0x00
core.conn.bcn_filt_ie23.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie23.type = 0x00
core.conn.bcn_filt_ie23.version = 0x00, 0x00
core.conn.bcn_filt_ie24.ie = 0x00
core.conn.bcn_filt_ie24.rule = 0x00
core.conn.bcn_filt_ie24.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie24.type = 0x00
core.conn.bcn_filt_ie24.version = 0x00, 0x00
core.conn.bcn_filt_ie25.ie = 0x00
core.conn.bcn_filt_ie25.rule = 0x00
core.conn.bcn_filt_ie25.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie25.type = 0x00
core.conn.bcn_filt_ie25.version = 0x00, 0x00
core.conn.bcn_filt_ie26.ie = 0x00
core.conn.bcn_filt_ie26.rule = 0x00
core.conn.bcn_filt_ie26.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie26.type = 0x00
core.conn.bcn_filt_ie26.version = 0x00, 0x00
core.conn.bcn_filt_ie27.ie = 0x00
core.conn.bcn_filt_ie27.rule = 0x00
core.conn.bcn_filt_ie27.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie27.type = 0x00
core.conn.bcn_filt_ie27.version = 0x00, 0x00
core.conn.bcn_filt_ie28.ie = 0x00
core.conn.bcn_filt_ie28.rule = 0x00
core.conn.bcn_filt_ie28.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie28.type = 0x00
core.conn.bcn_filt_ie28.version = 0x00, 0x00
core.conn.bcn_filt_ie29.ie = 0x00
core.conn.bcn_filt_ie29.rule = 0x00
core.conn.bcn_filt_ie29.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie29.type = 0x00
core.conn.bcn_filt_ie29.version = 0x00, 0x00
core.conn.bcn_filt_ie30.ie = 0x00
core.conn.bcn_filt_ie30.rule = 0x00
core.conn.bcn_filt_ie30.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie30.type = 0x00
core.conn.bcn_filt_ie30.version = 0x00, 0x00
core.conn.bcn_filt_ie31.ie = 0x00
core.conn.bcn_filt_ie31.rule = 0x00
core.conn.bcn_filt_ie31.oui = 0x00, 0x00, 0x00
core.conn.bcn_filt_ie31.type = 0x00
core.conn.bcn_filt_ie31.version = 0x00, 0x00
core.conn.synch_fail_thold = 0x0000000c
core.conn.bss_lose_timeout = 0x00000190
core.conn.beacon_rx_timeout = 0x00002710
core.conn.broadcast_timeout = 0x00004e20
core.conn.rx_broadcast_in_ps = 0x01
core.conn.ps_poll_threshold = 0x0a
core.conn.sig_weights.rssi_bcn_avg_weight = 0x00
core.conn.sig_weights.rssi_pkt_avg_weight = 0x00
core.conn.sig_weights.snr_bcn_avg_weight = 0x00
core.conn.sig_weights.snr_pkt_avg_weight = 0x00
core.conn.bet_enable = 0x01
core.conn.bet_max_consecutive = 0x32
core.conn.psm_entry_retries = 0x08
core.conn.psm_exit_retries = 0x10
core.conn.psm_entry_nullfunc_retries = 0x03
core.conn.dynamic_ps_timeout = 0x0096
core.conn.forced_ps = 0x00
core.conn.keep_alive_interval = 0x0000d6d8
core.conn.max_listen_interval = 0x14
core.conn.sta_sleep_auth = 0xff
core.conn.suspend_rx_ba_activity = 0x00
core.itrim.enable = 0x00
core.itrim.timeout = 0x0000c350
core.pm_config.host_clk_settling_time = 0x00001388
core.pm_config.host_fast_wakeup_support = 0x01
core.roam_trigger.trigger_pacing = 0x0001
core.roam_trigger.avg_weight_rssi_beacon = 0x14
core.roam_trigger.avg_weight_rssi_data = 0x0a
core.roam_trigger.avg_weight_snr_beacon = 0x14
core.roam_trigger.avg_weight_snr_data = 0x0a
core.scan.min_dwell_time_active = 0x00001d4c
core.scan.max_dwell_time_active = 0x00007530
core.scan.min_dwell_time_active_long = 0x000061a8
core.scan.max_dwell_time_active_long = 0x0000c350
core.scan.dwell_time_passive = 0x000186a0
core.scan.dwell_time_dfs = 0x000249f0
core.scan.num_probe_reqs = 0x0002
core.scan.split_scan_timeout = 0x0000c350
core.sched_scan.base_dwell_time = 0x00001d4c
core.sched_scan.max_dwell_time_delta = 0x000057e4
core.sched_scan.dwell_time_delta_per_probe = 0x000007d0
core.sched_scan.dwell_time_delta_per_probe_5 = 0x0000015e
core.sched_scan.dwell_time_passive = 0x000186a0
core.sched_scan.dwell_time_dfs = 0x000249f0
core.sched_scan.num_probe_reqs = 0x02
core.sched_scan.rssi_threshold = 0xa6
core.sched_scan.snr_threshold = 0x00
core.sched_scan.num_short_intervals = 0x0d
core.sched_scan.long_interval = 0x7530
core.ht.rx_ba_win_size = 0x20
core.ht.tx_ba_win_size = 0x40
core.ht.inactivity_timeout = 0x2710
core.ht.tx_ba_tid_bitmap = 0x3f
core.mem.num_stations = 0x01
core.mem.ssid_profiles = 0x01
core.mem.rx_block_num = 0x28
core.mem.tx_min_block_num = 0x28
core.mem.dynamic_memory = 0x01
core.mem.min_req_tx_blocks = 0x2d
core.mem.min_req_rx_blocks = 0x16
core.mem.tx_min = 0x1b
core.fm_coex.enable = 0x01
core.fm_coex.swallow_period = 0x05
core.fm_coex.n_divider_fref_set_1 = 0xff
core.fm_coex.n_divider_fref_set_2 = 0x0c
core.fm_coex.m_divider_fref_set_1 = 0xffff
core.fm_coex.m_divider_fref_set_2 = 0x0094
core.fm_coex.coex_pll_stabilization_time = 0xffffffff
core.fm_coex.ldo_stabilization_time = 0xffff
core.fm_coex.fm_disturbed_band_margin = 0xff
core.fm_coex.swallow_clk_diff = 0xff
core.rx_streaming.duration = 0x00000096
core.rx_streaming.queues = 0x01
core.rx_streaming.interval = 0x14
core.rx_streaming.always = 0x00
core.fwlog.mode = 0x00
core.fwlog.mem_blocks = 0x02
core.fwlog.severity = 0x00
core.fwlog.timestamp = 0x00
core.fwlog.output = 0x01
core.fwlog.threshold = 0x00
core.rate.rate_retry_score = 0x7d00
core.rate.per_add = 0x2000
core.rate.per_th1 = 0x0800
core.rate.per_th2 = 0x1000
core.rate.max_per = 0x1fa4
core.rate.inverse_curiosity_factor = 0x05
core.rate.tx_fail_low_th = 0x04
core.rate.tx_fail_high_th = 0x0a
core.rate.per_alpha_shift = 0x04
core.rate.per_add_shift = 0x0d
core.rate.per_beta1_shift = 0x0a
core.rate.per_beta2_shift = 0x08
core.rate.rate_check_up = 0x02
core.rate.rate_check_down = 0x0c
core.rate.rate_retry_policy = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
core.hangover.recover_time = 0x00000000
core.hangover.hangover_period = 0x14
core.hangover.dynamic_mode = 0x01
core.hangover.early_termination_mode = 0x01
core.hangover.max_period = 0x14
core.hangover.min_period = 0x01
core.hangover.increase_delta = 0x01
core.hangover.decrease_delta = 0x02
core.hangover.quiet_time = 0x04
core.hangover.increase_time = 0x01
core.hangover.window_size = 0x10
core.recovery.bug_on_recovery = 0x00
core.recovery.no_recovery = 0x00
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 = 0x04
wl18xx.phy.high_band_component = 0x01
wl18xx.phy.high_band_component_type = 0x09
wl18xx.phy.number_of_assembled_ant2_4 = 0x02
wl18xx.phy.number_of_assembled_ant5 = 0x01
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, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 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 = 0x64
wl18xx.phy.per_chan_pwr_limit_arr_11p = 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
wl18xx.phy.pwr_limit_reference_11p = 0x64
wl18xx.phy.spare1 = 0x00
wl18xx.phy.per_chan_bo_mode_11_abg = 0x40, 0x00, 0x04, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18
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 = 0x08
wl18xx.phy.med_power_val = 0x12
wl18xx.phy.high_power_val = 0x18
wl18xx.phy.per_sub_band_tx_trace_loss = 0x10, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
wl18xx.phy.per_sub_band_rx_trace_loss = 0x10, 0x18, 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 = 0x05
wl18xx.phy.med_power_val_2nd = 0x0a
wl18xx.phy.high_power_val_2nd = 0x14
wl18xx.phy.padding = 0x00
wl18xx.ap_sleep.idle_duty_cycle = 0x00
wl18xx.ap_sleep.connected_duty_cycle = 0x00
wl18xx.ap_sleep.max_stations_thresh = 0x04
wl18xx.ap_sleep.idle_conn_thresh = 0x08

  • Hi Urban, 

    You need to do the ini configuration to make the board work for a specific flavor of 183x device. You can run the configure.sh script and set the number of 2.4GHz antennas to 1 and number of 5GHz antenna to 0. pl let me know the results from these settings. as far as the other settings go you can leave them with the default. 

    Regards, 

    Sudharshan K N

  • Hi Sudharshan

    Through configure-device.sh script I have setup our device to WL1831, 1 antenna on 2.4GHz, 0 antenna on 5GHz and SISO20, but there was no change in immunity performance, which I have performed today. WL1831 was still unreachable form 3GHz on. I would like to know if you could let me know exactly which driver, firmware and INI file has TI used for their certification so I could use the same settings.

    Also I have noticed that there exists Wl1837_FCC_CE..ini file, but there is none for WL1835(from configure device script I noticed that script uses WL1835.ini for 1831)

    BR

  • Hi Urban, 

    yes. for WL1831 the same ini file for 1835 is valid. the official ini folder contains the ini files that were used for certification. 

    - Can you please send us the text dump of the INI file as before to verify the settings? 

    - Can you check in the normal mode you are able to get good throughput through iperf tool? 

    Regards, 

    Sudharshan K N

  • Hi,

    I am attaching dump txt. Could you provide me TI wl18xx-config.bin file used for certification in case there is a mismatch in dumped txt. Also could you provide me the firmware and driver rev used for certification.

    I will perfomre iperf test without RF disturbances and let you know the result. Anyway ping works fine while there is no other RF disturbance.

    BR

    wl18xx-conf-machWL1831.txt
    header.magic = 0x10e100ca
    header.version = 0x00070007
    header.checksum = 0x00000000
    core.sg.params = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000f, 0x0000001b, 0x00000011, 0x000000aa, 0x00000032, 0x00000064, 0x00000320, 0x000000c8, 0x000000c8, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x0000003c, 0x00001388, 0x000004b0, 0x000003e8, 0x00000001, 0x00000003, 0x00000006, 0x0000000a, 0x0000000a, 0x00000002, 0x00000005, 0x0000001e, 0x00000003, 0x0000000a, 0x00000002, 0x00000000, 0x00000019, 0x00000019, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
    core.sg.state = 0x01
    core.rx.rx_msdu_life_time = 0x0007d000
    core.rx.packet_detection_threshold = 0x00000000
    core.rx.ps_poll_timeout = 0x000f
    core.rx.upsd_timeout = 0x000f
    core.rx.rts_threshold = 0x0931
    core.rx.rx_cca_threshold = 0x0000
    core.rx.irq_blk_threshold = 0xffff
    core.rx.irq_pkt_threshold = 0x0000
    core.rx.irq_timeout = 0x0258
    core.rx.queue_type = 0x00
    core.tx.tx_energy_detection = 0x00
    core.tx.sta_rc_conf.enabled_rates = 0x00000000
    core.tx.sta_rc_conf.short_retry_limit = 0x0a
    core.tx.sta_rc_conf.long_retry_limit = 0x0a
    core.tx.sta_rc_conf.aflags = 0x00
    core.tx.ac_conf_count = 0x04
    core.tx.ac_conf0.ac = 0x00
    core.tx.ac_conf0.cw_min = 0x0f
    core.tx.ac_conf0.cw_max = 0x003f
    core.tx.ac_conf0.aifsn = 0x03
    core.tx.ac_conf0.tx_op_limit = 0x0000
    core.tx.ac_conf1.ac = 0x01
    core.tx.ac_conf1.cw_min = 0x0f
    core.tx.ac_conf1.cw_max = 0x003f
    core.tx.ac_conf1.aifsn = 0x07
    core.tx.ac_conf1.tx_op_limit = 0x0000
    core.tx.ac_conf2.ac = 0x02
    core.tx.ac_conf2.cw_min = 0x0f
    core.tx.ac_conf2.cw_max = 0x003f
    core.tx.ac_conf2.aifsn = 0x01
    core.tx.ac_conf2.tx_op_limit = 0x0bc0
    core.tx.ac_conf3.ac = 0x03
    core.tx.ac_conf3.cw_min = 0x0f
    core.tx.ac_conf3.cw_max = 0x003f
    core.tx.ac_conf3.aifsn = 0x01
    core.tx.ac_conf3.tx_op_limit = 0x05e0
    core.tx.max_tx_retries = 0x64
    core.tx.ap_aging_period = 0x012c
    core.tx.tid_conf_count = 0x04
    core.tx.tid_conf0.queue_id = 0x00
    core.tx.tid_conf0.channel_type = 0x01
    core.tx.tid_conf0.tsid = 0x00
    core.tx.tid_conf0.ps_scheme = 0x00
    core.tx.tid_conf0.ack_policy = 0x00
    core.tx.tid_conf0.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf1.queue_id = 0x01
    core.tx.tid_conf1.channel_type = 0x01
    core.tx.tid_conf1.tsid = 0x01
    core.tx.tid_conf1.ps_scheme = 0x00
    core.tx.tid_conf1.ack_policy = 0x00
    core.tx.tid_conf1.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf2.queue_id = 0x02
    core.tx.tid_conf2.channel_type = 0x01
    core.tx.tid_conf2.tsid = 0x02
    core.tx.tid_conf2.ps_scheme = 0x00
    core.tx.tid_conf2.ack_policy = 0x00
    core.tx.tid_conf2.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf3.queue_id = 0x03
    core.tx.tid_conf3.channel_type = 0x01
    core.tx.tid_conf3.tsid = 0x03
    core.tx.tid_conf3.ps_scheme = 0x00
    core.tx.tid_conf3.ack_policy = 0x00
    core.tx.tid_conf3.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf4.queue_id = 0x00
    core.tx.tid_conf4.channel_type = 0x00
    core.tx.tid_conf4.tsid = 0x00
    core.tx.tid_conf4.ps_scheme = 0x00
    core.tx.tid_conf4.ack_policy = 0x00
    core.tx.tid_conf4.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf5.queue_id = 0x00
    core.tx.tid_conf5.channel_type = 0x00
    core.tx.tid_conf5.tsid = 0x00
    core.tx.tid_conf5.ps_scheme = 0x00
    core.tx.tid_conf5.ack_policy = 0x00
    core.tx.tid_conf5.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf6.queue_id = 0x00
    core.tx.tid_conf6.channel_type = 0x00
    core.tx.tid_conf6.tsid = 0x00
    core.tx.tid_conf6.ps_scheme = 0x00
    core.tx.tid_conf6.ack_policy = 0x00
    core.tx.tid_conf6.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf7.queue_id = 0x00
    core.tx.tid_conf7.channel_type = 0x00
    core.tx.tid_conf7.tsid = 0x00
    core.tx.tid_conf7.ps_scheme = 0x00
    core.tx.tid_conf7.ack_policy = 0x00
    core.tx.tid_conf7.apsd_conf = 0x00000000, 0x00000000
    core.tx.frag_threshold = 0x0930
    core.tx.tx_compl_timeout = 0x015e
    core.tx.tx_compl_threshold = 0x000a
    core.tx.basic_rate = 0x00000001
    core.tx.basic_rate_5 = 0x00000008
    core.tx.tmpl_short_retry_limit = 0x0a
    core.tx.tmpl_long_retry_limit = 0x0a
    core.tx.tx_watchdog_timeout = 0x00001388
    core.tx.slow_link_thold = 0x03
    core.tx.fast_link_thold = 0x1e
    core.conn.wake_up_event = 0x02
    core.conn.listen_interval = 0x01
    core.conn.suspend_wake_up_event = 0x04
    core.conn.suspend_listen_interval = 0x03
    core.conn.bcn_filt_mode = 0x01
    core.conn.bcn_filt_ie_count = 0x03
    core.conn.bcn_filt_ie0.ie = 0x25
    core.conn.bcn_filt_ie0.rule = 0x02
    core.conn.bcn_filt_ie0.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie0.type = 0x00
    core.conn.bcn_filt_ie0.version = 0x00, 0x00
    core.conn.bcn_filt_ie1.ie = 0x3d
    core.conn.bcn_filt_ie1.rule = 0x01
    core.conn.bcn_filt_ie1.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie1.type = 0x00
    core.conn.bcn_filt_ie1.version = 0x00, 0x00
    core.conn.bcn_filt_ie2.ie = 0x2a
    core.conn.bcn_filt_ie2.rule = 0x01
    core.conn.bcn_filt_ie2.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie2.type = 0x00
    core.conn.bcn_filt_ie2.version = 0x00, 0x00
    core.conn.bcn_filt_ie3.ie = 0x00
    core.conn.bcn_filt_ie3.rule = 0x00
    core.conn.bcn_filt_ie3.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie3.type = 0x00
    core.conn.bcn_filt_ie3.version = 0x00, 0x00
    core.conn.bcn_filt_ie4.ie = 0x00
    core.conn.bcn_filt_ie4.rule = 0x00
    core.conn.bcn_filt_ie4.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie4.type = 0x00
    core.conn.bcn_filt_ie4.version = 0x00, 0x00
    core.conn.bcn_filt_ie5.ie = 0x00
    core.conn.bcn_filt_ie5.rule = 0x00
    core.conn.bcn_filt_ie5.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie5.type = 0x00
    core.conn.bcn_filt_ie5.version = 0x00, 0x00
    core.conn.bcn_filt_ie6.ie = 0x00
    core.conn.bcn_filt_ie6.rule = 0x00
    core.conn.bcn_filt_ie6.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie6.type = 0x00
    core.conn.bcn_filt_ie6.version = 0x00, 0x00
    core.conn.bcn_filt_ie7.ie = 0x00
    core.conn.bcn_filt_ie7.rule = 0x00
    core.conn.bcn_filt_ie7.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie7.type = 0x00
    core.conn.bcn_filt_ie7.version = 0x00, 0x00
    core.conn.bcn_filt_ie8.ie = 0x00
    core.conn.bcn_filt_ie8.rule = 0x00
    core.conn.bcn_filt_ie8.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie8.type = 0x00
    core.conn.bcn_filt_ie8.version = 0x00, 0x00
    core.conn.bcn_filt_ie9.ie = 0x00
    core.conn.bcn_filt_ie9.rule = 0x00
    core.conn.bcn_filt_ie9.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie9.type = 0x00
    core.conn.bcn_filt_ie9.version = 0x00, 0x00
    core.conn.bcn_filt_ie10.ie = 0x00
    core.conn.bcn_filt_ie10.rule = 0x00
    core.conn.bcn_filt_ie10.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie10.type = 0x00
    core.conn.bcn_filt_ie10.version = 0x00, 0x00
    core.conn.bcn_filt_ie11.ie = 0x00
    core.conn.bcn_filt_ie11.rule = 0x00
    core.conn.bcn_filt_ie11.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie11.type = 0x00
    core.conn.bcn_filt_ie11.version = 0x00, 0x00
    core.conn.bcn_filt_ie12.ie = 0x00
    core.conn.bcn_filt_ie12.rule = 0x00
    core.conn.bcn_filt_ie12.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie12.type = 0x00
    core.conn.bcn_filt_ie12.version = 0x00, 0x00
    core.conn.bcn_filt_ie13.ie = 0x00
    core.conn.bcn_filt_ie13.rule = 0x00
    core.conn.bcn_filt_ie13.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie13.type = 0x00
    core.conn.bcn_filt_ie13.version = 0x00, 0x00
    core.conn.bcn_filt_ie14.ie = 0x00
    core.conn.bcn_filt_ie14.rule = 0x00
    core.conn.bcn_filt_ie14.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie14.type = 0x00
    core.conn.bcn_filt_ie14.version = 0x00, 0x00
    core.conn.bcn_filt_ie15.ie = 0x00
    core.conn.bcn_filt_ie15.rule = 0x00
    core.conn.bcn_filt_ie15.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie15.type = 0x00
    core.conn.bcn_filt_ie15.version = 0x00, 0x00
    core.conn.bcn_filt_ie16.ie = 0x00
    core.conn.bcn_filt_ie16.rule = 0x00
    core.conn.bcn_filt_ie16.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie16.type = 0x00
    core.conn.bcn_filt_ie16.version = 0x00, 0x00
    core.conn.bcn_filt_ie17.ie = 0x00
    core.conn.bcn_filt_ie17.rule = 0x00
    core.conn.bcn_filt_ie17.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie17.type = 0x00
    core.conn.bcn_filt_ie17.version = 0x00, 0x00
    core.conn.bcn_filt_ie18.ie = 0x00
    core.conn.bcn_filt_ie18.rule = 0x00
    core.conn.bcn_filt_ie18.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie18.type = 0x00
    core.conn.bcn_filt_ie18.version = 0x00, 0x00
    core.conn.bcn_filt_ie19.ie = 0x00
    core.conn.bcn_filt_ie19.rule = 0x00
    core.conn.bcn_filt_ie19.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie19.type = 0x00
    core.conn.bcn_filt_ie19.version = 0x00, 0x00
    core.conn.bcn_filt_ie20.ie = 0x00
    core.conn.bcn_filt_ie20.rule = 0x00
    core.conn.bcn_filt_ie20.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie20.type = 0x00
    core.conn.bcn_filt_ie20.version = 0x00, 0x00
    core.conn.bcn_filt_ie21.ie = 0x00
    core.conn.bcn_filt_ie21.rule = 0x00
    core.conn.bcn_filt_ie21.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie21.type = 0x00
    core.conn.bcn_filt_ie21.version = 0x00, 0x00
    core.conn.bcn_filt_ie22.ie = 0x00
    core.conn.bcn_filt_ie22.rule = 0x00
    core.conn.bcn_filt_ie22.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie22.type = 0x00
    core.conn.bcn_filt_ie22.version = 0x00, 0x00
    core.conn.bcn_filt_ie23.ie = 0x00
    core.conn.bcn_filt_ie23.rule = 0x00
    core.conn.bcn_filt_ie23.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie23.type = 0x00
    core.conn.bcn_filt_ie23.version = 0x00, 0x00
    core.conn.bcn_filt_ie24.ie = 0x00
    core.conn.bcn_filt_ie24.rule = 0x00
    core.conn.bcn_filt_ie24.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie24.type = 0x00
    core.conn.bcn_filt_ie24.version = 0x00, 0x00
    core.conn.bcn_filt_ie25.ie = 0x00
    core.conn.bcn_filt_ie25.rule = 0x00
    core.conn.bcn_filt_ie25.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie25.type = 0x00
    core.conn.bcn_filt_ie25.version = 0x00, 0x00
    core.conn.bcn_filt_ie26.ie = 0x00
    core.conn.bcn_filt_ie26.rule = 0x00
    core.conn.bcn_filt_ie26.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie26.type = 0x00
    core.conn.bcn_filt_ie26.version = 0x00, 0x00
    core.conn.bcn_filt_ie27.ie = 0x00
    core.conn.bcn_filt_ie27.rule = 0x00
    core.conn.bcn_filt_ie27.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie27.type = 0x00
    core.conn.bcn_filt_ie27.version = 0x00, 0x00
    core.conn.bcn_filt_ie28.ie = 0x00
    core.conn.bcn_filt_ie28.rule = 0x00
    core.conn.bcn_filt_ie28.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie28.type = 0x00
    core.conn.bcn_filt_ie28.version = 0x00, 0x00
    core.conn.bcn_filt_ie29.ie = 0x00
    core.conn.bcn_filt_ie29.rule = 0x00
    core.conn.bcn_filt_ie29.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie29.type = 0x00
    core.conn.bcn_filt_ie29.version = 0x00, 0x00
    core.conn.bcn_filt_ie30.ie = 0x00
    core.conn.bcn_filt_ie30.rule = 0x00
    core.conn.bcn_filt_ie30.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie30.type = 0x00
    core.conn.bcn_filt_ie30.version = 0x00, 0x00
    core.conn.bcn_filt_ie31.ie = 0x00
    core.conn.bcn_filt_ie31.rule = 0x00
    core.conn.bcn_filt_ie31.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie31.type = 0x00
    core.conn.bcn_filt_ie31.version = 0x00, 0x00
    core.conn.synch_fail_thold = 0x0000000c
    core.conn.bss_lose_timeout = 0x00000190
    core.conn.beacon_rx_timeout = 0x00002710
    core.conn.broadcast_timeout = 0x00004e20
    core.conn.rx_broadcast_in_ps = 0x01
    core.conn.ps_poll_threshold = 0x0a
    core.conn.sig_weights.rssi_bcn_avg_weight = 0x00
    core.conn.sig_weights.rssi_pkt_avg_weight = 0x00
    core.conn.sig_weights.snr_bcn_avg_weight = 0x00
    core.conn.sig_weights.snr_pkt_avg_weight = 0x00
    core.conn.bet_enable = 0x01
    core.conn.bet_max_consecutive = 0x32
    core.conn.psm_entry_retries = 0x08
    core.conn.psm_exit_retries = 0x10
    core.conn.psm_entry_nullfunc_retries = 0x03
    core.conn.dynamic_ps_timeout = 0x0096
    core.conn.forced_ps = 0x00
    core.conn.keep_alive_interval = 0x0000d6d8
    core.conn.max_listen_interval = 0x14
    core.conn.sta_sleep_auth = 0xff
    core.conn.suspend_rx_ba_activity = 0x00
    core.itrim.enable = 0x00
    core.itrim.timeout = 0x0000c350
    core.pm_config.host_clk_settling_time = 0x00001388
    core.pm_config.host_fast_wakeup_support = 0x01
    core.roam_trigger.trigger_pacing = 0x0001
    core.roam_trigger.avg_weight_rssi_beacon = 0x14
    core.roam_trigger.avg_weight_rssi_data = 0x0a
    core.roam_trigger.avg_weight_snr_beacon = 0x14
    core.roam_trigger.avg_weight_snr_data = 0x0a
    core.scan.min_dwell_time_active = 0x00001d4c
    core.scan.max_dwell_time_active = 0x00007530
    core.scan.min_dwell_time_active_long = 0x000061a8
    core.scan.max_dwell_time_active_long = 0x0000c350
    core.scan.dwell_time_passive = 0x000186a0
    core.scan.dwell_time_dfs = 0x000249f0
    core.scan.num_probe_reqs = 0x0002
    core.scan.split_scan_timeout = 0x0000c350
    core.sched_scan.base_dwell_time = 0x00001d4c
    core.sched_scan.max_dwell_time_delta = 0x000057e4
    core.sched_scan.dwell_time_delta_per_probe = 0x000007d0
    core.sched_scan.dwell_time_delta_per_probe_5 = 0x0000015e
    core.sched_scan.dwell_time_passive = 0x000186a0
    core.sched_scan.dwell_time_dfs = 0x000249f0
    core.sched_scan.num_probe_reqs = 0x02
    core.sched_scan.rssi_threshold = 0xa6
    core.sched_scan.snr_threshold = 0x00
    core.sched_scan.num_short_intervals = 0x0d
    core.sched_scan.long_interval = 0x7530
    core.ht.rx_ba_win_size = 0x20
    core.ht.tx_ba_win_size = 0x40
    core.ht.inactivity_timeout = 0x2710
    core.ht.tx_ba_tid_bitmap = 0x3f
    core.mem.num_stations = 0x01
    core.mem.ssid_profiles = 0x01
    core.mem.rx_block_num = 0x28
    core.mem.tx_min_block_num = 0x28
    core.mem.dynamic_memory = 0x01
    core.mem.min_req_tx_blocks = 0x2d
    core.mem.min_req_rx_blocks = 0x16
    core.mem.tx_min = 0x1b
    core.fm_coex.enable = 0x01
    core.fm_coex.swallow_period = 0x05
    core.fm_coex.n_divider_fref_set_1 = 0xff
    core.fm_coex.n_divider_fref_set_2 = 0x0c
    core.fm_coex.m_divider_fref_set_1 = 0xffff
    core.fm_coex.m_divider_fref_set_2 = 0x0094
    core.fm_coex.coex_pll_stabilization_time = 0xffffffff
    core.fm_coex.ldo_stabilization_time = 0xffff
    core.fm_coex.fm_disturbed_band_margin = 0xff
    core.fm_coex.swallow_clk_diff = 0xff
    core.rx_streaming.duration = 0x00000096
    core.rx_streaming.queues = 0x01
    core.rx_streaming.interval = 0x14
    core.rx_streaming.always = 0x00
    core.fwlog.mode = 0x00
    core.fwlog.mem_blocks = 0x02
    core.fwlog.severity = 0x00
    core.fwlog.timestamp = 0x00
    core.fwlog.output = 0x01
    core.fwlog.threshold = 0x00
    core.rate.rate_retry_score = 0x7d00
    core.rate.per_add = 0x2000
    core.rate.per_th1 = 0x0800
    core.rate.per_th2 = 0x1000
    core.rate.max_per = 0x1fa4
    core.rate.inverse_curiosity_factor = 0x05
    core.rate.tx_fail_low_th = 0x04
    core.rate.tx_fail_high_th = 0x0a
    core.rate.per_alpha_shift = 0x04
    core.rate.per_add_shift = 0x0d
    core.rate.per_beta1_shift = 0x0a
    core.rate.per_beta2_shift = 0x08
    core.rate.rate_check_up = 0x02
    core.rate.rate_check_down = 0x0c
    core.rate.rate_retry_policy = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    core.hangover.recover_time = 0x00000000
    core.hangover.hangover_period = 0x14
    core.hangover.dynamic_mode = 0x01
    core.hangover.early_termination_mode = 0x01
    core.hangover.max_period = 0x14
    core.hangover.min_period = 0x01
    core.hangover.increase_delta = 0x01
    core.hangover.decrease_delta = 0x02
    core.hangover.quiet_time = 0x04
    core.hangover.increase_time = 0x01
    core.hangover.window_size = 0x10
    core.recovery.bug_on_recovery = 0x00
    core.recovery.no_recovery = 0x00
    wl18xx.ht.mode = 0x02
    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, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 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 = 0x64
    wl18xx.phy.per_chan_pwr_limit_arr_11p = 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
    wl18xx.phy.pwr_limit_reference_11p = 0x64
    wl18xx.phy.spare1 = 0x00
    wl18xx.phy.per_chan_bo_mode_11_abg = 0x40, 0x00, 0x04, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18
    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 = 0xff
    wl18xx.phy.med_power_val = 0xff
    wl18xx.phy.high_power_val = 0xff
    wl18xx.phy.per_sub_band_tx_trace_loss = 0x10, 0x10, 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 = 0xff
    wl18xx.phy.med_power_val_2nd = 0xff
    wl18xx.phy.high_power_val_2nd = 0xff
    wl18xx.phy.padding = 0x00
    wl18xx.ap_sleep.idle_duty_cycle = 0x00
    wl18xx.ap_sleep.connected_duty_cycle = 0x00
    wl18xx.ap_sleep.max_stations_thresh = 0x04
    wl18xx.ap_sleep.idle_conn_thresh = 0x08
    

  • Hi Sudharshan,

    as I have mentiond in previous post, we have been performing test in EMC chamber yesterday. According to our suspicion from testing one that the main source of distirbuance comes over antenna, we had an idea to implement a bandepass filter. So we built one, which passes through signal between 2400MHz and 2500 Mhz and reject everything else. At 3GHz we are measuring 20dB rejection and at 4GHz 30dB rejection. But while performing immunity test between 3GHz and 6GHz, it did not made any differnece. Ping messages still stoped. But everytime that we stopped the RF disturbance, we got a burst of around 5-10 ping replies wih extremly long delay time.

    This got us thinking that WL1831 is infact able to receive ping messages, but does not reply back anything as long there is RF disturbance. As if it would be performing CCA-ED(Clear Channel Assesment-Energy Detect and realizes there is too much power on the input and it stops transmitting.So we performed iperf3 tests with WL1831 set up as a server and PC as a client and started to transmit data over udp protocol. UDP packets were received by WL1831 without interuption even after ping messages stoped.

    I have noticed that there is a Core.rx.rx_cca_threshold paramter in wlconf. Is this the treshold used to decide if WL1831 should transmit or not? Is there any other parameter which defines it?

    Still there is an ambuigity about the noise... since the only noise that is passing filter is in the 2.4-2.5GHz range. And this noise should be set to 0, since  the range of the distirbuance is from 3GHz on. We will try to collect some more data about RF distirbuances in the EMC chamber, the next time we performe the test.

    BR

  • Hi Urban,

    for this issue you may want to check with the test house to see if the operation you are seeing would be considered normal operation. That is when you see the ping messages stop between 3GHz and 6GHz, the requirement is that after the disturbance, the radio is able to come back up and continue its operation. It's not necessarily that you need to continue to transmit normally during the EMI instance. It sounds like the radio is operating shortly after without a reset.

    Thanks,

    Riz

  • Hello,

    Yesterday we have performed the Radiated immunity test in EMC chamber again and now we can confirm our theory that Wl1831 stops replying ping messages because of to high noise floor level on WiFi frequencies.  So at facility in which we are performing test, they use one amplifier in 1Ghz-3Ghz region and another one from 3GHz and 6GHz. It turns out that noise floor level at 2.4GHz is 10dBm higher when second amplifier operates compared to when first amplifier operates. Thus WL1831 does not work anywhere in the 3Ghz to 6GHz region.

    Also during past week I have figured out that by changing BG2 RX loss in PerSubBandRxTraceLoss in WL1835MOD_INI file I change what RSSI WL1831 measures and consequentially if the  WL1831 transimits or not according to CCA. So in the test yesterday I have lowered the loss of the rx path for 3dB and WL1831 started to transmit between 3GHz and 6GHz.

    I think that PerSubBandRxTraceLoss parameter is totally layout and antenna specific and so it must be set specifically for each device, but I have not found any application note that would state that this parameter should/must be corrected for specific device? Also I would like to know to what extent does this setting influence other RF certification related properties?

    BR

  • Hi Urban,

    In order to re-use our certification you no modifications should be made to the .INI file. For starters the correct .INI file to use is the WL1835MOD_C2PC.INI file. I see from your post that you are using the WL1835MOD_INI file. You need to ensure that the C2PC version of the file is the one to use. It is the C2PC file that all our certifications follow.

    If you look at the .INI file you will see that the RX and TX trace loss parameters are the same. This make sense since the loss from the IC to the antenna port would be the same. The 2.4GHZ path shares the RX/TX pin. Our application note: http://www.ti.com/lit/an/swru422a/swru422a.pdf explains the use of these parameters.

    Looking at the C2PC file, the BG2 RX loss parameter is actually se to 3dB! so if you use the correct file, hopefully your issue will be resolved. Sorry I did not catch this earlier, I assumed the correct .INI file was being used.

    Trace loss in the WL1835MOD.INI file is below:

    PerSubBandTxTraceLoss           = 10 10 00 00 00 00 00 00 00 00

    PerSubBandRxTraceLoss           = 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    Trace loss in the WL1835MOD_C2PC.INI file is below:

    PerSubBandTxTraceLoss           = 10 18 00 00 00 00 00 00 00 00

    PerSubBandRxTraceLoss           = 10 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    If you go thru the configuration of the device, you want to ensure that you see the use of the C2PC file as yes. This will ensure that the correct one is loaded. I have also attached the correct WL1835MOD_C2PC.INI file for you: WL1835MOD_C2PC.INI

    The WL18xx wlconfig app note can be found here:

     

    Thanks,

    Riz

  • Hello Rizwan

    Thanks for the answer. So in order to reuse certification for WL1831MOD we must run ./configure-device, select 1835 as chip flavour and select yes to c2pc option. What about SISO40 mode?

    So since you are not allowed to change PerSubBandRxTraceLoss, I guess this is rx path loss from IC until the pad of WL1837MOD? And not until antenna as was my initial idea. Am I correct ?

    BR

  • Hi Urban,

    You can choose SIS40 if you are going to run 40MHz BW modulations. If your product is only 20MHz, then you can select no to this. The trace loss parameter is that of the internal path of the module to the IC + the PCB reference board to the U.FL connector. The method that we used for certification is called the cabinet radiated method. That is the results ae done conducted and the max gain of the antenna added to the conducted data to get the final EIRP value. So the tought is that the RF path to the antenna must be a minimum of our reference design. We actually recently did a C2PC on our onw ID allowing the loss of the output of the Module pad to the antenna to be 1dB in the form of a Pi-pad, RF cable loss, or trace loss. Note this must be "design" related, and not done via the .INI trace loss parameter.

    Thanks,

    Riz