60-SIPT/60-2230C

Introduction

This application note describes the functionality of configuring Wi-Fi on the 60 Series radio for SISO mode operation. To accomplish this, minor changes must be made in software for all configurations and in hardware for some. To understand how to properly implement SISO mode, you must first understand how Wi-Fi and Bluetooth are both physically and logically implemented in the 60 Series.

Hardware

The 60 Series has two antenna traces that require a 50 Ohm load regardless of hardware configuration. This means that if the design requires a single antenna, the unused trace must be terminated with a 50 Ohm load. For more information, please see the datasheet. Each antenna has a designated name in the datasheet and schematics which is also silkscreened on the M.2 60-2230C module. Below is a table describing the physical functionality of each antenna and their corresponding names in hardware.

HW Name Functionality
ANT0 Wi-Fi only
ANT1 Wi-Fi and BT share the same path

MIMO, SISO and BT

Terminology

The terminology of SISO and MIMO modes in this implementation are referring to Wi-Fi specifically and not the radio as a whole. The options available will only affect Wi-Fi.

  • Bluetooth technology only relies on a single antenna and will always operate on ANT1 regardless of any settings.
  • Wi-Fi can be configured to operate on both antennas at the same time (MIMO mode).
  • Wi-Fi can be configured to operate exclusively on ANT0 or ANT1 (SISO mode).

Wi-Fi/BT coexistence

It is important to consider that Wi-Fi/Bluetooth coexistence algorithms exist in firmware. The shared Wi-Fi/BT ANT1 will prioritize BT traffic over Wi-Fi regardless of any settings. This implies that the original intended application is to have Wi-Fi configured in MIMO mode which can use the dedicated Wi-Fi path on ANT0 while BT is using the shared path on ANT1. In this same configuration when BT is not in use, Wi-Fi will be able to operate at its fullest potential by utilizing both antennas at the same time.

Implementation in software

Configuring Wi-Fi for SISO mode can be accomplished upon loading the lrdmwl kernel module with the parameter SISO_mode. Please take care to not confuse the SISO_mode options with the antenna names. There are a total of three options available.

SISO_mode (param) ANT0 ANT1 Wi-Fi Functionality
0 (Default) Wi-Fi Wi-Fi+BT MIMO
1 Wi-Fi BT SISO
2 unused Wi-Fi+BT SISO

In the examples below, MIMO mode is displayed as a reference followed by each SISO mode. Notice that the Wi-Fi antenna configuration is reported on the console output (lines 19 and 21). Though SDIO is used in the demonstration below, this guide applies to all interface options for the 60 Series radios.

MIMO example

# modprobe lrdmwl
# modprobe lrdmwl_sdio
[  386.661499] lrdmwl: Reset GPIO 31 configured
[  386.664251] <<Summit 60 Series Wireless Network Driver version 6.0.0.92-P22.2-20180509>>
[  386.675025] ieee80211 phy0: lrdmwl_sdio: SDIO FUNC1 IO port: 0x10000
[  386.675759] ieee80211 phy0: mwl_sdio_init_irq, register IRQ
[  386.678942] ieee80211 phy0: lrdmwl: found firmware image <lrdmwl/88W8997_sdio.bin>
[  386.678972] ieee80211 phy0: Downloading FW image (356756 bytes)
[  386.682631] ieee80211 phy0: =>mwl_sdio_enable_int(): disable host interrupt ok
[  387.489773] ieee80211 phy0: FW download over, size 356756 bytes
[  387.489801] ieee80211 phy0: Checking fw status 100
[  388.569211] ieee80211 phy0: Waiting on fw status 10 0x0
[  388.809227] ieee80211 phy0: firmware is ready 12
[  388.809308] ieee80211 phy0: =>mwl_sdio_enable_int(): enable host interrupt ok
[  389.849978] ieee80211 phy0: firmware version: 0x2050a03
[  389.851520] ieee80211 phy0: Setting strict regulatory
[  389.851545] ieee80211 phy0: firmware region code: ff
[  389.852062] ieee80211 phy0: OTP data len = 0
[  389.852551] ieee80211 phy0: mwl_set_caps: Antcfg = 00000003(2) 00000003(2)
[  389.887473] ieee80211 phy0: 2G enabled, 5G enabled
[  389.887505] ieee80211 phy0: 2 TX antennas, 2 RX antennas
[  389.988943] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[  389.995337] ieee80211 phy0: WMM Turbo=1

SISO ANT0 example

# modprobe lrdmwl SISO_mode=1
# modprobe lrdmwl_sdio
[  132.528552] lrdmwl: Reset GPIO 31 configured
[  132.533384] <<Summit 60 Series Wireless Network Driver version 6.0.0.92-P22.2-20180509>>
[  132.548933] ieee80211 phy0: lrdmwl_sdio: SDIO FUNC1 IO port: 0x10000
[  132.551219] ieee80211 phy0: mwl_sdio_init_irq, register IRQ
[  132.621480] ieee80211 phy0: lrdmwl: found firmware image <lrdmwl/88W8997_sdio.bin>
[  132.621514] ieee80211 phy0: Downloading FW image (356756 bytes)
[  132.621624] ieee80211 phy0: =>mwl_sdio_enable_int(): disable host interrupt ok
[  133.410672] ieee80211 phy0: FW download over, size 356756 bytes
[  133.410701] ieee80211 phy0: Checking fw status 100
[  134.489261] ieee80211 phy0: Waiting on fw status 10 0x0
[  134.729259] ieee80211 phy0: firmware is ready 12
[  134.729342] ieee80211 phy0: =>mwl_sdio_enable_int(): enable host interrupt ok
[  135.770011] ieee80211 phy0: firmware version: 0x2050a03
[  135.771583] ieee80211 phy0: Setting strict regulatory
[  135.771610] ieee80211 phy0: firmware region code: ff
[  135.772147] ieee80211 phy0: OTP data len = 0
[  135.772659] ieee80211 phy0: mwl_set_caps: Antcfg = 00000001(1) 00000001(1)
[  135.790953] ieee80211 phy0: 2G enabled, 5G enabled
[  135.791010] ieee80211 phy0: 1 TX antennas, 1 RX antennas
[  135.956822] ieee80211 phy0: WMM Turbo=1

SISO ANT1 example

# modprobe lrdmwl SISO_mode=2
# modprobe lrdmwl_sdio
[  452.621889] lrdmwl: Reset GPIO 31 configured
[  452.624596] <<Summit 60 Series Wireless Network Driver version 6.0.0.92-P22.2-20180509>>
[  452.639562] ieee80211 phy0: lrdmwl_sdio: SDIO FUNC1 IO port: 0x10000
[  452.640314] ieee80211 phy0: mwl_sdio_init_irq, register IRQ
[  452.643024] ieee80211 phy0: lrdmwl: found firmware image <lrdmwl/88W8997_sdio.bin>
[  452.643054] ieee80211 phy0: Downloading FW image (356756 bytes)
[  452.643164] ieee80211 phy0: =>mwl_sdio_enable_int(): disable host interrupt ok
[  453.441458] ieee80211 phy0: FW download over, size 356756 bytes
[  453.441486] ieee80211 phy0: Checking fw status 100
[  454.519282] ieee80211 phy0: Waiting on fw status 10 0x0
[  454.759202] ieee80211 phy0: firmware is ready 12
[  454.759284] ieee80211 phy0: =>mwl_sdio_enable_int(): enable host interrupt ok
[  455.849978] ieee80211 phy0: firmware version: 0x2050a03
[  455.851547] ieee80211 phy0: Setting strict regulatory
[  455.851574] ieee80211 phy0: firmware region code: ff
[  455.852090] ieee80211 phy0: OTP data len = 0
[  455.852592] ieee80211 phy0: mwl_set_caps: Antcfg = 00000002(1) 00000002(1)
[  455.887324] ieee80211 phy0: 2G enabled, 5G enabled
[  455.887356] ieee80211 phy0: 1 TX antennas, 1 RX antennas
[  456.020187] ieee80211 phy0: WMM Turbo=1