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 provisioning
- The Silicon Labs device is advertising as BLE_CONFIGURATOR. Click on BLE_CONFIGURATOR, the device gets connected to Connect App.
BLE connected
List of Access Points
Connect 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 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 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.