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.
The Silicon Labs device is advertising as BLE_CONFIGURATOR. Click on BLE_CONFIGURATOR, the device gets connected to Connect App.
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 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:
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,
RS9116W drives WAKEUP_FROM_DEV pin low ('0').
Host should wakeup and take the packet from RS9116W.
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.