Skip to content

Commit 2c6c65f

Browse files
authored
Merge branch 'espressif:release/v5.4' into release/v5.4
2 parents 198a087 + d4aa25a commit 2c6c65f

File tree

5 files changed

+274
-155
lines changed

5 files changed

+274
-155
lines changed

components/esp_hw_support/port/esp32h2/Kconfig.hw_support

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,16 @@ choice ESP32H2_REV_MIN
1515
bool "Rev v0.1 (ECO1)"
1616
config ESP32H2_REV_MIN_2
1717
bool "Rev v0.2 (ECO2)"
18+
config ESP32H2_REV_MIN_102
19+
bool "Rev v1.2"
1820
endchoice
1921

2022
config ESP32H2_REV_MIN_FULL
2123
int
2224
default 0 if ESP32H2_REV_MIN_0
2325
default 1 if ESP32H2_REV_MIN_1
2426
default 2 if ESP32H2_REV_MIN_2
27+
default 102 if ESP32H2_REV_MIN_102
2528

2629
config ESP_REV_MIN_FULL
2730
int
@@ -31,26 +34,21 @@ config ESP_REV_MIN_FULL
3134
# MAX Revision
3235
#
3336

34-
comment "Maximum Supported ESP32-H2 Revision (Rev v0.99)"
37+
comment "Maximum Supported ESP32-H2 Revision (Rev v1.99)"
3538
# Maximum revision that IDF supports.
3639
# It can not be changed by user.
3740
# Only Espressif can change it when a new version will be supported in IDF.
3841
# Supports all chips starting from ESP32H2_REV_MIN_FULL to ESP32H2_REV_MAX_FULL
3942

4043
config ESP32H2_REV_MAX_FULL
4144
int
42-
default 199 if ESP32H2_REV100_DEVELOPMENT
43-
default 99 if !ESP32H2_REV100_DEVELOPMENT
45+
default 199
4446
# keep in sync the "Maximum Supported Revision" description with this value
4547

4648
config ESP_REV_MAX_FULL
4749
int
4850
default ESP32H2_REV_MAX_FULL
4951

50-
config ESP32H2_REV100_DEVELOPMENT
51-
bool "Develop on ESP32-H2 v1.0 and above (Preview)"
52-
default y if IDF_CI_BUILD
53-
5452
config ESP_EFUSE_BLOCK_REV_MIN_FULL
5553
int "Minimum Supported ESP32-H2 eFuse Block Revision"
5654
default 0

docs/en/api-guides/coexist.rst

Lines changed: 108 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ RF Coexistence
66
Overview
77
---------------
88

9-
ESP boards now support three modules: Bluetooth (BT & BLE), IEEE802.15.4, and Wi-Fi. Each type of board has only one 2.4 GHz ISM band RF module, shared by two or three modules. Consequently, a module cannot receive or transmit data while another module is engaged in data transmission or reception. In such scenarios, {IDF_TARGET_NAME} employs the time-division multiplexing method to manage the reception and transmission of packets.
9+
ESP boards now support three modules: Bluetooth (BT & BLE), IEEE 802.15.4 (Thread / Zigbee), and Wi-Fi. Each type of board has only one 2.4 GHz ISM band RF module, shared by two or three modules. Consequently, a module cannot receive or transmit data while another module is engaged in data transmission or reception. In such scenarios, {IDF_TARGET_NAME} employs the time-division multiplexing method to manage the reception and transmission of packets.
1010

1111

1212
Supported Coexistence Scenario for {IDF_TARGET_NAME}
@@ -16,32 +16,32 @@ Supported Coexistence Scenario for {IDF_TARGET_NAME}
1616

1717
.. table:: Supported Features of Wi-Fi and BLE Coexistence
1818

19-
+-------+--------+-----------+-----+------------+-----------+----------+
20-
| |BLE |
21-
+ +-----+------------+-----------+----------+
22-
| |Scan |Advertising |Connecting |Connected |
23-
+-------+--------+-----------+-----+------------+-----------+----------+
24-
| Wi-Fi |STA |Scan |Y |Y |Y |Y |
25-
+ + +-----------+-----+------------+-----------+----------+
26-
| | |Connecting |Y |Y |Y |Y |
27-
+ + +-----------+-----+------------+-----------+----------+
28-
| | |Connected |Y |Y |Y |Y |
29-
+ +--------+-----------+-----+------------+-----------+----------+
30-
| |SOFTAP |TX Beacon |Y |Y |Y |Y |
31-
+ + +-----------+-----+------------+-----------+----------+
32-
| | |Connecting |C1 |C1 |C1 |C1 |
33-
+ + +-----------+-----+------------+-----------+----------+
34-
| | |Connected |C1 |C1 |C1 |C1 |
35-
+ +--------+-----------+-----+------------+-----------+----------+
36-
| |Sniffer |RX |C1 |C1 |C1 |C1 |
37-
+ +--------+-----------+-----+------------+-----------+----------+
38-
| |ESP-NOW |RX |S |S |S |S |
39-
+ + +-----------+-----+------------+-----------+----------+
40-
| | |TX |Y |Y |Y |Y |
41-
+-------+--------+-----------+-----+------------+-----------+----------+
42-
43-
44-
.. only:: esp32
19+
+-------+--------+-----------+-----+------------+----------+
20+
| |BLE |
21+
+ +-----+------------+----------+
22+
| |Scan |Advertising |Connected |
23+
+-------+--------+-----------+-----+------------+----------+
24+
| Wi-Fi |STA |Scan |Y |Y |Y |
25+
+ + +-----------+-----+------------+----------+
26+
| | |Connecting |Y |Y |Y |
27+
+ + +-----------+-----+------------+----------+
28+
| | |Connected |Y |Y |Y |
29+
+ +--------+-----------+-----+------------+----------+
30+
| |SOFTAP |TX Beacon |Y |Y |Y |
31+
+ + +-----------+-----+------------+----------+
32+
| | |Connecting |C1 |C1 |C1 |
33+
+ + +-----------+-----+------------+----------+
34+
| | |Connected |C1 |C1 |C1 |
35+
+ +--------+-----------+-----+------------+----------+
36+
| |Sniffer |RX |C1 |C1 |C1 |
37+
+ +--------+-----------+-----+------------+----------+
38+
| |ESP-NOW |RX |S |S |S |
39+
+ + +-----------+-----+------------+----------+
40+
| | |TX |Y |Y |Y |
41+
+-------+--------+-----------+-----+------------+----------+
42+
43+
44+
.. only:: SOC_WIFI_SUPPORTED and SOC_BT_CLASSIC_SUPPORTED
4545

4646
.. table:: Supported Features of Wi-Fi and Classic Bluetooth (BT) Coexistence
4747

@@ -69,31 +69,62 @@ Supported Coexistence Scenario for {IDF_TARGET_NAME}
6969
| | |TX |Y |Y |Y |Y |Y |
7070
+-------+--------+-----------+--------+-------------+-----+----------+-----------+
7171

72+
.. only:: SOC_WIFI_SUPPORTED and SOC_IEEE802154_SUPPORTED
73+
74+
.. table:: Supported Features of Wi-Fi and IEEE 802.15.4 (Thread / Zigbee) Coexistence
75+
76+
+-------+--------+-----------+--------+---------+-----------+
77+
| |Thread / Zigbee |
78+
+ +--------+---------+-----------+
79+
| |Scan |Router |End Device |
80+
+-------+--------+-----------+--------+---------+-----------+
81+
| Wi-Fi |STA |Scan |C1 |C1 |Y |
82+
+ + +-----------+--------+---------+-----------+
83+
| | |Connecting |C1 |C1 |Y |
84+
+ + +-----------+--------+---------+-----------+
85+
| | |Connected |C1 |C1 |Y |
86+
+ +--------+-----------+--------+---------+-----------+
87+
| |SOFTAP |TX Beacon |Y |X |Y |
88+
+ + +-----------+--------+---------+-----------+
89+
| | |Connecting |C1 |X |C1 |
90+
+ + +-----------+--------+---------+-----------+
91+
| | |Connected |C1 |X |C1 |
92+
+ +--------+-----------+--------+---------+-----------+
93+
| |Sniffer |RX |C1 |X |C1 |
94+
+-------+--------+-----------+--------+---------+-----------+
95+
96+
.. only:: SOC_BLE_SUPPORTED and SOC_IEEE802154_SUPPORTED
97+
98+
.. table:: Supported Features of IEEE 802.15.4 (Thread / Zigbee) and BLE Coexistence
99+
100+
+-----------------+-------------+-----+------------+----------+
101+
| |BLE |
102+
+ +-----+------------+----------+
103+
| |Scan |Advertising |Connected |
104+
+-----------------+-------------+-----+------------+----------+
105+
| Thread / Zigbee |Scan |X |Y |Y |
106+
+ +-------------+-----+------------+----------+
107+
| |Router |X |Y |Y |
108+
+ +-------------+-----+------------+----------+
109+
| |End Device |C1 |Y |Y |
110+
+-----------------+-------------+-----+------------+----------+
111+
112+
.. note::
113+
114+
.. list::
115+
116+
- Y: supported and the performance is stable
117+
- C1: supported but the performance is unstable
118+
- X: not supported
119+
:SOC_WIFI_SUPPORTED: - S: supported and the performance is stable in STA mode, otherwise not supported
120+
72121
.. only:: SOC_IEEE802154_SUPPORTED
73122

74-
.. table:: Supported Features of Thread (IEEE802.15.4) and BLE Coexistence
75-
76-
+--------+-----------------+-----+------------+-----------+----------+
77-
| |BLE |
78-
+ +-----+------------+-----------+----------+
79-
| |Scan |Advertising |Connecting |Connected |
80-
+--------+-----------------+-----+------------+-----------+----------+
81-
| Thread |Scan |X |Y |Y |Y |
82-
+ +-----------------+-----+------------+-----------+----------+
83-
| |Connecting |X |Y |Y |Y |
84-
+ +-----------------+-----+------------+-----------+----------+
85-
| |Connected |X |Y |Y |Y |
86-
+ +-----------------+-----+------------+-----------+----------+
87-
| |Connected | | | | |
88-
| |(high throughput)|X |C1 |C1 |C1 |
89-
+--------+-----------------+-----+------------+-----------+----------+
123+
.. note::
90124

91-
.. note::
125+
Routers in Thread and Zigbee networks maintain unsynchronized links with their neighbors, requiring continuous signal reception. With only a single RF path, increased Wi-Fi or BLE traffic may lead to higher packet loss rates for Thread and Zigbee communications.
92126

93-
Y: supported and performance is stable
94-
C1: supported but the performance is unstable
95-
X: not supported
96-
S: supported and performance is stable in STA mode, otherwise not supported
127+
To build a Wi-Fi based Thread Border Router or Zigbee Gateway product, we recommend using a dual-SoC solution (e.g., ESP32-S3 + ESP32-H2) with separate antennas. This setup enables simultaneous reception of Wi-Fi and 802.15.4 signals, ensuring optimal performance.
97128

98129

99130
Coexistence Mechanism and Policy
@@ -102,7 +133,7 @@ Coexistence Mechanism and Policy
102133
Coexistence Mechanism
103134
^^^^^^^^^^^^^^^^^^^^^^^^^^^
104135

105-
The RF resource allocation mechanism is based on priority. As shown below, both Bluetooth module and Wi-Fi module request RF resources from the coexistence module, and the coexistence module decides who will use the RF resource based on their priority.
136+
The RF resource allocation mechanism is based on priority. As shown below, Wi-Fi, Bluetooth and 802.15.4 modules request RF resources from the coexistence module, and the coexistence module decides who will use the RF resource based on their priority.
106137

107138
.. blockdiag::
108139
:scale: 100%
@@ -122,12 +153,14 @@ The RF resource allocation mechanism is based on priority. As shown below, both
122153
# node labels
123154
Wi-Fi [shape = box];
124155
Bluetooth [shape = box];
156+
802.15.4 [shape = box];
125157
Coexistence [shape = box, label = 'Coexistence module'];
126158
RF [shape = box, label = 'RF module'];
127159

128160
# node connections
129161
Wi-Fi -> Coexistence;
130162
Bluetooth -> Coexistence;
163+
802.15.4 -> Coexistence;
131164
Coexistence -> RF;
132165
}
133166

@@ -137,45 +170,48 @@ The RF resource allocation mechanism is based on priority. As shown below, both
137170
Coexistence Policy
138171
^^^^^^^^^^^^^^^^^^^^^^^^^^^
139172

140-
Coexistence Period and Time Slice
141-
""""""""""""""""""""""""""""""""""""""""
173+
.. only:: SOC_WIFI_SUPPORTED and SOC_BT_SUPPORTED
142174

143-
.. only:: esp32
175+
Coexistence Period and Time Slice
176+
""""""""""""""""""""""""""""""""""""""""
144177

145-
Wi-Fi, BT, and BLE have their fixed time slice to use the RF. A coexistence period is divided into 3 time slices in the order of Wi-Fi, BT, and BLE. In the Wi-Fi slice, Wi-Fi's request to the coexistence arbitration module will have higher priority. Similarly, BT/BLE can enjoy higher priority at their own time slices. The duration of the coexistence period and the proportion of each time slice are divided into four categories according to the Wi-Fi status:
178+
.. only:: SOC_BLE_SUPPORTED and SOC_BT_CLASSIC_SUPPORTED
146179

180+
Wi-Fi, BT, and BLE have their fixed time slice to use the RF. A coexistence period is divided into 3 time slices in the order of Wi-Fi, BT, and BLE. In the Wi-Fi slice, Wi-Fi's request to the coexistence arbitration module will have higher priority. Similarly, BT/BLE can enjoy higher priority at their own time slices. The duration of the coexistence period and the proportion of each time slice are divided into four categories according to the Wi-Fi status:
147181

148-
.. only:: SOC_WIFI_SUPPORTED and SOC_BLE_SUPPORTED and not esp32
149182

150-
Wi-Fi and BLE have their fixed time slice to use the RF. In the Wi-Fi time slice, Wi-Fi will send a higher priority request to the coexistence arbitration module. Similarly, BLE can enjoy higher priority at their own time slice. The duration of the coexistence period and the proportion of each time slice are divided into four categories according to the Wi-Fi status:
183+
.. only:: not SOC_BT_CLASSIC_SUPPORTED
151184

152-
.. only:: SOC_IEEE802154_SUPPORTED
185+
Wi-Fi and BLE have their fixed time slice to use the RF. In the Wi-Fi time slice, Wi-Fi will send a higher priority request to the coexistence arbitration module. Similarly, BLE can enjoy higher priority at their own time slice. The duration of the coexistence period and the proportion of each time slice are divided into four categories according to the Wi-Fi status:
153186

154-
Currently, the only supported strategy ensures that the priority of BLE always takes precedence over IEEE802.15.4.
187+
.. list::
155188

156-
.. list::
189+
:SOC_BLE_SUPPORTED and SOC_BT_CLASSIC_SUPPORTED: 1) IDLE status: the coexistence of BT and BLE is controlled by Bluetooth module.
190+
:not SOC_BT_CLASSIC_SUPPORTED: 1) IDLE status: RF module is controlled by Bluetooth module.
191+
#) CONNECTED status: the coexistence period starts at the Target Beacon Transmission Time (TBTT) and is more than 100 ms.
192+
#) SCAN status: Wi-Fi slice and coexistence period are longer than in the CONNECTED status. To ensure Bluetooth performance, the Bluetooth time slice will also be adjusted accordingly.
193+
#) CONNECTING status: Wi-Fi slice is longer than in the CONNECTED status. To ensure Bluetooth performance, the Bluetooth time slice will also be adjusted accordingly.
157194

158-
:esp32: 1) IDLE status: the coexistence of BT and BLE is controlled by Bluetooth module.
159-
:SOC_WIFI_SUPPORTED and SOC_BLE_SUPPORTED and not esp32: 1) IDLE status: RF module is controlled by Bluetooth module.
160-
#) CONNECTED status: the coexistence period starts at the Target Beacon Transmission Time (TBTT) and is more than 100 ms.
161-
#) SCAN status: Wi-Fi slice and coexistence period are longer than in the CONNECTED status. To ensure Bluetooth performance, the Bluetooth time slice will also be adjusted accordingly.
162-
#) CONNECTING status: Wi-Fi slice is longer than in the CONNECTED status. To ensure Bluetooth performance, the Bluetooth time slice will also be adjusted accordingly.
163195

196+
According to the coexistence logic, different coexistence periods and time slice strategies will be selected based on the Wi-Fi and Bluetooth usage scenarios. A Coexistence policy corresponding to a certain usage scenarios is called a "coexistence scheme". For example, the scenario of Wi-Fi CONNECTED and BLE CONNECTED has a corresponding coexistence scheme. In this scheme, the time slices of Wi-Fi and BLE in a coexistence period each account for 50%. The time allocation is shown in the following figure:
164197

165-
According to the coexistence logic, different coexistence periods and time slice strategies will be selected based on the Wi-Fi and Bluetooth usage scenarios. A Coexistence policy corresponding to a certain usage scenarios is called a "coexistence scheme". For example, the scenario of Wi-Fi CONNECTED and BLE CONNECTED has a corresponding coexistence scheme. In this scheme, the time slices of Wi-Fi and BLE in a coexistence period each account for 50%. The time allocation is shown in the following figure:
198+
.. figure:: ../../_static/coexist_wifi_connected_and_ble_connected_time_slice.png
199+
:align: center
200+
:alt: Time Slice Under the Status of Wi-Fi CONNECTED and BLE CONNECTED
201+
:figclass: align-center
166202

167-
.. figure:: ../../_static/coexist_wifi_connected_and_ble_connected_time_slice.png
168-
:align: center
169-
:alt: Time Slice Under the Status of Wi-Fi CONNECTED and BLE CONNECTED
170-
:figclass: align-center
203+
Time Slice Under the Status of Wi-Fi CONNECTED and BLE CONNECTED
204+
205+
.. only:: SOC_IEEE802154_SUPPORTED
171206

172-
Time Slice Under the Status of Wi-Fi CONNECTED and BLE CONNECTED
207+
The IEEE 802.15.4 module requests RF resources based on pre-assigned priorities. Normal receive operations are assigned the lowest priority, meaning Wi-Fi and BLE will take over the RF whenever needed, while 802.15.4 can only receive during the remaining time. Other 802.15.4 operations, such as transmitting or receiving ACKs and transmitting or receiving at given time, are assigned higher priorities. However, their access to RF ultimately depends on the priorities of Wi-Fi and BLE operations at that moment.
173208

209+
.. only:: SOC_WIFI_SUPPORTED and SOC_BT_SUPPORTED
174210

175-
Dynamic Priority
176-
""""""""""""""""""""""""""""
211+
Dynamic Priority
212+
""""""""""""""""""""""""""""
177213

178-
The coexistence module assigns varying priorities to different statuses of each module, and these priorities are dynamic. For example, in every N BLE Advertising events, there is always one event with high priority. If a high-priority BLE Advertising event occurs within the Wi-Fi time slice, the right to use the RF may be preempted by BLE.
214+
The coexistence module assigns varying priorities to different statuses of each module, and these priorities are dynamic. For example, in every N BLE Advertising events, there is always one event with high priority. If a high-priority BLE Advertising event occurs within the Wi-Fi time slice, the right to use the RF may be preempted by BLE.
179215

180216
.. only:: SOC_WIFI_SUPPORTED
181217

0 commit comments

Comments
 (0)