Radio#
Functions#
Get the maximum Wi-Fi transmit power.
Set the maximum Wi-Fi transmit power.
Set the Wi-Fi antenna for an interface.
Get the Wi-Fi antenna for an interface.
Get the current channel for the given Wi-Fi interface.
Set the channel for the given Wi-Fi Access Point interface.
Set the Wi-Fi transmit rate for the given 802.11 protocol on the specified Wi-Fi interface.
Get the Wi-Fi transmit rate for the given 802.11 protocol on the specified Wi-Fi interface.
Set the Wi-Fi client interface listen interval.
Get the Wi-Fi client listen interval.
Assign the user configurable channel gain values in different regions to the module from user.
Function Documentation#
sl_wifi_get_max_tx_power#
sl_status_t sl_wifi_get_max_tx_power (sl_wifi_interface_t interface, uint8_t * max_tx_power)
Get the maximum Wi-Fi transmit power.
[in] | interface | Wi-Fi interface as identified by sl_wifi_interface_t |
[out] | max_tx_power | A variable that contains current maximum transmit power in dBm. |
sl_wifi_init should be called before this API.
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
Note
This function gets the transmit power for a particular radio interface: SL_WIFI_2_4GHZ_INTERFACE or SL_WIFI_5GHZ_INTERFACE.
181
of file components/protocol/wifi/inc/sl_wifi.h
sl_wifi_set_max_tx_power#
sl_status_t sl_wifi_set_max_tx_power (sl_wifi_interface_t interface, uint8_t max_tx_power)
Set the maximum Wi-Fi transmit power.
[in] | interface | Wi-Fi interface as identified by sl_wifi_interface_t |
[in] | max_tx_power | Maximum transmit power to set in dBm. |
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
Note
This function sets the transmit power for a particular radio interface: SL_WIFI_2_4GHZ_INTERFACE or SL_WIFI_5GHZ_INTERFACE. Eg: Setting transmit power for client interface at 2.4GHz will also set transmit power of the AP interface at 2.4GHz.
196
of file components/protocol/wifi/inc/sl_wifi.h
sl_wifi_set_antenna#
sl_status_t sl_wifi_set_antenna (sl_wifi_interface_t interface, sl_wifi_antenna_t antenna)
Set the Wi-Fi antenna for an interface.
[in] | interface | Wi-Fi interface as identified by sl_wifi_interface_t |
[in] | antenna | Antenna to select as identified by sl_wifi_antenna_t |
sl_wifi_init should be called before this API.
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
210
of file components/protocol/wifi/inc/sl_wifi.h
sl_wifi_get_antenna#
sl_status_t sl_wifi_get_antenna (sl_wifi_interface_t interface, sl_wifi_antenna_t * antenna)
Get the Wi-Fi antenna for an interface.
[in] | interface | Wi-Fi interface as identified by sl_wifi_interface_t |
[out] | antenna | sl_wifi_antenna_t object that contains current antenna selection. |
sl_wifi_init should be called before this API.
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
224
of file components/protocol/wifi/inc/sl_wifi.h
sl_wifi_get_channel#
sl_status_t sl_wifi_get_channel (sl_wifi_interface_t interface, sl_wifi_channel_t * channel)
Get the current channel for the given Wi-Fi interface.
[in] | interface | Wi-Fi interface as identified by sl_wifi_interface_t |
[out] | channel | sl_wifi_channel_t object that contains current channel information. |
sl_wifi_init should be called before this API.
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
238
of file components/protocol/wifi/inc/sl_wifi.h
sl_wifi_set_channel#
sl_status_t sl_wifi_set_channel (sl_wifi_interface_t interface, sl_wifi_channel_t channel)
Set the channel for the given Wi-Fi Access Point interface.
[in] | interface | Wi-Fi interface as identified by sl_wifi_interface_t |
[in] | channel | Channel as identified by sl_wifi_channel_t |
sl_wifi_init should be called before this API.
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
252
of file components/protocol/wifi/inc/sl_wifi.h
sl_wifi_set_transmit_rate#
sl_status_t sl_wifi_set_transmit_rate (sl_wifi_interface_t interface, sl_wifi_rate_protocol_t rate_protocol, sl_wifi_rate_t mask)
Set the Wi-Fi transmit rate for the given 802.11 protocol on the specified Wi-Fi interface.
[in] | interface | Wi-Fi interface as identified by sl_wifi_interface_t |
[in] | rate_protocol | 802.11 protocol as identified by sl_wifi_rate_protocol_t |
[in] | mask | Data rate as identified by sl_wifi_rate_t |
sl_wifi_init should be called before this API.
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
268
of file components/protocol/wifi/inc/sl_wifi.h
sl_wifi_get_transmit_rate#
sl_status_t sl_wifi_get_transmit_rate (sl_wifi_interface_t interface, sl_wifi_rate_protocol_t * rate_protocol, sl_wifi_rate_t * mask)
Get the Wi-Fi transmit rate for the given 802.11 protocol on the specified Wi-Fi interface.
[in] | interface | Wi-Fi interface as identified by sl_wifi_interface_t |
[out] | rate_protocol | 802.11 protocol as identified by sl_wifi_rate_protocol_t |
[out] | mask | Data rate as identified by sl_wifi_rate_t |
sl_wifi_init should be called before this API.
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
286
of file components/protocol/wifi/inc/sl_wifi.h
sl_wifi_set_listen_interval#
sl_status_t sl_wifi_set_listen_interval (sl_wifi_interface_t interface, sl_wifi_listen_interval_t listen_interval)
Set the Wi-Fi client interface listen interval.
[in] | interface | Wi-Fi interface as identified by sl_wifi_interface_t |
[in] | listen_interval | sl_wifi_listen_interval_t object |
sl_wifi_init should be called before this API.
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
Note
This API is not yet implemented.
304
of file components/protocol/wifi/inc/sl_wifi.h
sl_wifi_get_listen_interval#
sl_status_t sl_wifi_get_listen_interval (sl_wifi_interface_t interface, sl_wifi_listen_interval_t * listen_interval)
Get the Wi-Fi client listen interval.
[in] | interface | Wi-Fi interface as identified by sl_wifi_interface_t |
[out] | listen_interval | sl_wifi_listen_interval_t object that will contain the current listen interval. |
sl_wifi_init should be called before this API.
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
Note
This API is not yet implemented.
320
of file components/protocol/wifi/inc/sl_wifi.h
sl_wifi_update_gain_table#
sl_status_t sl_wifi_update_gain_table (uint8_t band, uint8_t bandwidth, uint8_t * payload, uint16_t payload_len)
Assign the user configurable channel gain values in different regions to the module from user.
[in] | band | 1 - 2.4GHz, 2 - 5GHz |
[in] | bandwidth | 0 - 20 MHz, 1 - 40 MHz |
[in] | payload | Pass channel gain values for different regions in a given array format. |
[in] | payload_len | Max payload length (table size) in 2.4GHz is 128 bytes and in 5GHz is 64 bytes. |
This method is used for overwriting default gain tables that are present in firmware.
Customer can load all the three gain tables (i.e., 2.4GHz-20Mhz, 5GHz-20Mhz, 5GHz-40Mhz) one the after other by changing band and bandwidth values.
This is a blocking API.
sl_wifi_init should be called before this API.
Returns
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
Note
This frame has to be used only by customers who has done FCC/ETSI/TELEC/KCC certification with their own antenna. Silicon Labs is not liable for inappropriate usage of this frame that may result in violation of FCC/ETSI/TELEC/KCC or any certifications.
Internally, firmware maintains two tables : Worldwide table & Region based table. Worldwide table is populated by firmware with max power values that chip can transmit and meet target specs like EVM. Region based table has default gain value set.
When certifying with user antenna, Region has to be set to Worldwide and sweep the power from 0 to 21dBm. Arrive at max power level that is passing certification especially band-edge.
These FCC/ETSI/TELEC/KCC max power level should be loaded in end-to-end mode via WLAN User Gain table. This has to be called done for every boot-up as this information is not saved inside the flash. Region based user gain table sent by application is copied onto Region based table. SoC uses this table in FCC/ETSI/TELEC/KCC to limit the power and to not violate the allowed limits.
For Worldwide region, the firmware uses Worldwide table for Tx. For other regions(FCC/ETSI/TELEC/KCC), the firmware uses min value out of Worldwide & Region based table for Tx. Also, there will be part to part variation across the chips. Offsets that are estimated during the flow of manufacture will be applied as correction factor during normal mode of operation.
In 2.4Ghz band, 40Mhz is not supported.
353
of file components/protocol/wifi/inc/sl_wifi.h