Wireless Features And Mechanisms#

This document briefs about the following wireless features and mechanisms.

  • Connect Application

  • Firmware Update Mechanism

  • Wake on Wireless

  • DFS client (802.11h)

  • PTA 3-Wire Co-Existence

Connect Application#

Description#

  • The BLE Wi-Fi Provisioning example is designed to showcase the provisioning of Wi-Fi parameters (SSID, network key, etc.) over a BLE connection.

  • Wi-Fi provisioning over BLE provides various benefits such as eliminating the need to explicitly connect to a shared network.

  • Connect Application explains how to establish WLAN Connection using BLE provisioning

In this application,

  • Silicon Labs Module BLE starts advertising and with BLE Provisioning the Access Point details are fetched

  • Silicon Labs device is configured as a WiFi station and connects to an Access Point.

Application Steps#

  • Configure the Access point in OPEN/WPA-PSK/WPA2-PSK/WPA3-PSK mode to connect the Silicon Labs device in STA mode.

  • Open any serial console for prints.

  • Connect App is available in the release 'utils' folder. Currently, this App will be available for Android devices only. Path for the application: RS9116.NB0.WC.GENR.OSI.x.x.x/util.

  • Launch the Connect App.

  • Click on BLE Provisioning.

BLE provisioningBLE provisioning

  • The Silicon Labs device is advertising as BLE_CONFIGURATOR. Click on BLE_CONFIGURATOR, the device gets connected to Connect App.

BLE connectedBLE connected

List of Access PointsList of Access Points

Connect to the APConnect to the AP

..

..

Wake On Wireless#

RS9116 Module can send packets to host in wake on wireless mode in any of the two modes listed below.

Active High Interrupt Mode#

If config_feature_bit_map[16] is enabled in opermode command, then active high interrupt mode is enabled.

When the RS9116 Module wants to send packets to host, it asserts WAKEUP_FROM_DEV pin.

The following are the sequence of steps in UART mode:

Wakeup Assert#

RS9116 Module asserts WAKEUP_FROM_DEV pin when data is pending from module and polls for ack (HOST_WAKEUP_INDICATION pin to be high) before starting the transfer.

Request ACK#

After recognizing WAKEUP_FROM_DEV pin asserted, host should ack the request from module by asserting HOST_WAKEUP_INDICATION pin and poll WAKEUP_FROM_DEV pin for module confirmation (WAKEUP_FROM_DEV is low).

De-assert Wakeup#

After recognizing ack ( HOST_WAKEUP_INDICATION pin high) from host, module de- asserts WAKEUP_FROM_DEV pin and start transfer.

Once WAKEUP_FROM_DEV is de-asserted, host should de-assert HOST_WAKEUP_INDICATION pin and receive the packet from module.

The flow chart below shows how the data is received from RS9116 Module in active high interrupt mode :

Active High Interrupt ModeActive High Interrupt Mode

Active Low Interrupt Mode#

If BIT(16) of config_feature_bit_map is not enabled in opermode command, then active low interrupt mode is enabled.

When the RS9116 Module wants to send packets to host, it de-asserts WAKEUP_FROM_DEV pin.

The following are the sequence of steps in UART mode:

  • Poll for ACK: RS9116 Module de-asserts WAKEUP_FROM_DEV pin when data is pending from module and polls for ack (HOST_WAKEUP_INDICATION pin to be high) before starting the transfer.

  • Host Request: After recognizing WAKEUP_FROM_DEV pin de-asserted, host should ack the request from module by asserting HOST_WAKEUP_INDICATION pin and poll WAKEUP_FROM_DEV pin for module confirmation (WAKEUP_FROM_DEV pin is high).

  • Start Transfer: After recognizing ack (HOST_WAKEUP_INDICATION pin high) from host, module asserts WAKEUP_FROM_DEV pin and start transfer.

  • Host Rx Packet: Once WAKEUP_FROM_DEV is asserted, host should de-assert HOST_WAKEUP_INDICATION pin and receive the packet from module.

The flow chart below shows how the data is received from RS9116 Module in active low interrupt mode:

Active Low Interrupt ModeActive Low Interrupt Mode


Note! Since UART is asynchronous interface, Polling mechanism is suggested. Polling for HOST_WAKEUP_INDICATION is valid only if BIT(11) in custom feature bit map of opermode command is enabled in UART mode. If BIT(11) of custom_feature_bit_map is not enabled in opermode command, the WOW feature in UART follows the below steps like other interfaces.


For other host interfaces like SDIO /SPI /USB-CDC: When RS9116W wants to send packets to host,

  1. RS9116W drives WAKEUP_FROM_DEV pin low ('0').

  2. Host should wakeup and take the packet from RS9116W.

  3. Once the packet is received by host, RS9116W drives WAKEUP_FROM_DEV pin high ('1').


Note! BIT(11) of custom_feature_bit_map is not valid in SPI/SDIO/USB-CDC interfaces.


DFS Client (802.11h)#

Description#

DFS client implementation is internal to the Silicon Labs module. In 5 GHz band, the module does only passive scan in DFS channels. If the Access Point, to which the Module (client) is connected, detects RADAR signals and indicates to switch to a different channel, then the module performs channel switch as per the APs channel switch parameter. There is no command required to enable this feature, it is enabled by default.

PTA 3-Wire Co-Existence#

Description#

  • RS9116 provides the functionality of PTA (Packet Transmission Arbitration) arbitrator for wireless co-existence with external device providing BT/BLE/Zigbee/Thread connectivity.

  • This is done through 3 wires connected between RS9116 and the external device.

  • Transmission arbitration is controlled through handshakes across these connections.

  • See BIT[21], BIT[23:22] of config_feature_bitmap for configuring PTA.