Adaptivity Test
Supported Chips
Ameba SoC |
RTL8721Dx |
RTL8726E |
RTL8720E |
RTL8730E |
---|---|---|---|---|
FreeRTOS |
Y |
Y |
Y |
Y |
Linux |
Y |
N |
N |
Y |
Adaptivity Test Introduction
Standard
Adaptivity is an automatic channel access protocol that inhibits a device from transmitting on a channel when ongoing transmissions are detected. Devices with a maximum declared RF output power level greater than 10 dBm effective isotropic radiated power (e.i.r.p.) are required to implement this Adaptivity protocol.
Since December 31, 2017, ETSI has required Adaptivity certification. The applicable standards are ETSI EN 300 328 V2.2.2 for 2.4 GHz bands and ETSI EN 301 893 V2.1.1 for 5 GHz bands.
The Adaptivity test procedures are specified by ETSI as follows:
Establish a connection between the DUT (Device Under Test) and the companion device and start data transmission.
Add the interference signal, and ensure that out-of-band blocking signals are also added for 2G compliance.
Check whether the DUT has stopped transmitting data.
The DUT is restricted to transmitting only short control signals, such as acknowledgment (ACK) frames, to the companion device.
Check the test result.
For 2G compliance, check whether the Tx duty cycle is below 10% within any 50ms interval. If yes, pass; otherwise, fail.
For 5G compliance, check whether the Tx duty cycle is below 5% within any 50ms interval. If yes, pass; otherwise, fail.
Repeat the steps above for each channel, bandwidth, and mode.
Interference Power
The energy detection formula specified by ETSI is as follows:
2G: TL = -70dBm/MHz + 10*log10(100mW/Pout)
5G: TL = -75dBm/MHz
Note
Pout is the maximum TX power of test object. The interference signal must exceed BW of the test object and have a 100% duty cycle.
Realtek conducts testing under the most stringent conditions in the LAB.
2G: TL = -70dBm/MHz
5G: TL = -75dBm/MHz
The table below illustrates the interference power with different frequencies and bandwidths. When the interference power exceeds the threshold, the MAC layer will be instructed to pause data transmission.
Item |
2G |
5G |
||||
---|---|---|---|---|---|---|
20MHZ |
40MHZ |
20MHZ |
40MHZ |
80MHZ |
160MHZ |
|
Interference Power (dBm) |
-57 |
-54 |
-62 |
-59 |
-56 |
-53 |
The following section details the software configuration and debug SOP essential for successfully passing the Adaptivity test.
Software Configuration
EDCCA Mode
Ameba supports four EDCCA mode types:
Mode |
description |
---|---|
RTW_EDCCA_NORM |
Dynamically adjusts the EDCCA threshold based on real-time RSSI measurements and is configured as the default mode. |
RTW_EDCCA_ADAPT |
Utilizes a fixed threshold to meet the requirements of ETSI Adaptivity test. |
RTW_EDCCA_CS |
Implements Carrier Sense to comply with Japan’s interference avoidance regulations. |
RTW_EDCCA_DISABLE |
Allows MAC transmission without EDCCA signal verification. |
The EDCCA mode types are specified in the file wifi_api_types.h
located under component/wifi/api/wifi_api_types.h
.
/*The enumeration lists the edcca mode types*/
enum rtw_edcca_mode {
RTW_EDCCA_NORM = 0, /* normal*/
RTW_EDCCA_ADAPT = 1, /* Adaptivity, ETSI*/
RTW_EDCCA_CS = 2, /*carrier sense, Japan*/
RTW_EDCCA_DISABLE = 9, /*disable*/
}
Static Adjustment
File path:
component/soc/usrcfg/amebadplus/ameba_wificfg.c
File path:
component/soc/usrcfg/amebalite/ameba_wificfg.c
File path:
component/soc/usrcfg/amebalite/ameba_wificfg.c
File path:
component/soc/usrcfg/amebalite/ameba_wificfg.c
File path:
component/soc/usrcfg/amebasmart/ameba_wificfg.c
Function:
wifi_set_user_config()
For the ETSI Adaptivity test, configure the EDCCA mode to RTW_EDCCA_ADAPT
wifi_user_config.rtw_edcca_mode = RTW_EDCCA_ADAPT;
For Carrier Sense, configure the EDCCA mode to RTW_EDCCA_CS
wifi_user_config.rtw_edcca_mode = RTW_EDCCA_CS;
The configuration will be applied during the Wi-Fi initialization process.
Dynamic Adjustment
Not support.
Static Adjustment
File path:
firmware/component/wifi/whc/whc_host_linux/fullmac/ipc/ameba_wificfg.c
Function:
wifi_set_user_config()
For the ETSI Adaptivity test, configure the EDCCA mode to RTW_EDCCA_ADAPT
wifi_user_config.rtw_edcca_mode = RTW_EDCCA_ADAPT;
For Carrier Sense, configure the EDCCA mode to RTW_EDCCA_CS
wifi_user_config.rtw_edcca_mode = RTW_EDCCA_CS;
The configuration will be applied during the Wi-Fi initialization process.
Dynamic Adjustment
EDCCA mode has been integrated at the path
/proc/net/whc_fullmac/wlan0/edcca_mode
. Use the following commands to read or write this setting:echo n > /proc/net/whc_fullmac/wlan0/edcca_mode cat /proc/net/whc_fullmac/wlan0/edcca_mode
Note
n is in [0, 1, 2, 9].
The network interface may not be designated as
wlan0
, utilize the actual interface identifier specific to the system configuration.
For example:
/ # echo 1 > /proc/net/whc_fullmac/wlan0/edcca_mode / # cat /proc/net/whc_fullmac/wlan0/edcca_mode 1
EDCCA Threshold
Once connected to the AP, retrieve the current EDCCA threshold using the following command:
AT+WLDBG=get_edcca_th
In most scenarios, the default settings suffice to pass the Adaptivity test. If modification is required, adjust the EDCCA threshold using the following command:
AT+WLDBG=fix_edcca_th <value>
Note
The value’s unit is dBm and the scope is [-60, -80], and the minimum step is 1.
For example:
AT+WLDBG=get_edcca_th
[WLDBG]: _AT_WLAN_IWPRIV_
[WLAN-A] [iwpriv_command] cmd name: get_edcca_th
[WLAN-A] edcca thre=-60 dbm
AT+WLDBG=fix_edcca_th -62
[WLDBG]: _AT_WLAN_IWPRIV_
[WLAN-A] [iwpriv_command] cmd name: fix_edcca_th
There is no command to set or retrieve the EDCCA threshold. Customers can use it by compiling the following code.
Get Current EDCCA Threshold
ATWZ get_edcca_th
Set EDCCA Threshold
ATWZ fix_edcca_th <value>
Note
The value’s unit is dBm and the scope is [-60, -80], and the minimum step is 1.
Customers can refer to the following link to add “ATWZ” commands, which should be adapted for the Linux operating system.
https://github.com/Ameba-AIoT/ameba-linux-development/tree/ameba-6.6.y/wifi/ATWZ
Once connected to the AP, retrieve the current EDCCA threshold using the following command:
ATWZ get_edcca_th
In most scenarios, the default settings suffice to pass the Adaptivity test. If modification is required, adjust the EDCCA threshold using the following command:
ATWZ fix_edcca_th <value>
Note
The value’s unit is dBm, the scope is [-60, -80], and the minimum step is 1.
For example:
/ # ATWZ get_edcca_th
[WLDBG]: _AT_WLAN_IWPRIV_
[WLAN-A] [iwpriv_command] cmd name: get_edcca_th
[WLAN-A] edcca thre=-60 dbm
/ # ATWZ fix_edcca_th -61
[WLAN-A] [iwpriv_command] cmd name: fix_edcca_th
/ # ATWZ get_edcca_th
[WLDBG]: _AT_WLAN_IWPRIV_
[WLAN-A] [iwpriv_command] cmd name: get_edcca_th
[WLAN-A] edcca thre=-61 dbm
Debug SOP
Checklist |
Points |
---|---|
Test SDK |
|
Test Environment |
|
Optimize the EDCCA threshold |
|
Country Code Setting
TBD
Transmit Power Setting
TBD
DFS
TBD