News Espressif: ESP_IDF in Version 5.1 bringt Unterstützung für H2 und C6


von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Angehängte Dateien:

Lesenswert?

Wenige Monate nach der Auslieferung der Version 5.0 von ESP_IDF legt Espressif eine Nachfolgeversion vor. Am wichtigsten ist die Unterstützung für die neuen Chips H2 und C6; außerdem gibt es Fehlerbehebungen und Änderungen, die Anpassungen an vorhandenem Applikationscode erforderlich machen.

Worum geht es hier?

Wer die maximale Leistung seines ESP32 ausnutzen möchte, setzt auf die native Entwicklungsumgebung ESP_IDF. Systeme wie der Arduino basieren intern übrigens ebenfalls auf IDF - die als Arduino Core bezeichnete Arbeitsumgebung ist eine Softwareschicht, die über dem eigentlichen IDF-Framework liegt und die Ausführung der Sketches ermöglicht.

Unterstützung für C6 und H2

Die für den Smart Home-Bereich und Protokolle wie Matter vorgesehenen Chip-Varianten ESP32-C6 und ESP32-H2 waren bisher nur teilweise unterstützt - die neue Version erweitert die Unterstützung. Weitere Informationen zu den Unterstützungsgraden der Peripheriegeräte finden sich für den C6 unter https://github.com/espressif/esp-idf/issues/10423, während der H2 unter https://github.com/espressif/esp-idf/issues/11038 abgehandelt wird. Zu beachten ist, dass Engineering Sample-Varianten der H2-Chips in 5.1 nicht mehr unterstützt werden!

Zu beachten ist außerdem, dass der ESP32-C6 bei Nutzung dieser Version mit den folgenden Problemen zu kämpfen hat:

1
In ESP32-C6, there is a small chance of core dump when it sends advertisement and scanning 
2
     In ESP32-C6, DUT might crash or disconnect with AP when light sleep is enabled 
3
     On ESP32-C6, sometimes chip can't wakeup under low temperature, RTC memory lost under high temperature, unexpected power on reset when GPIO wakeup enabled in Deep-sleep. Can't wakeup properly under high temperature from Light-sleep

Zudem gilt, dass die FPU in manchen Fällen Probleme bekommt:

1
When using the FPU from multiple tasks on the same core there is a change that the FPU state will be corrupted, causing invalid results. Issue affects ESP32 and ESP32-S3 (#11690)

Liste der Breaking Changes

Espressif spricht in der unter https://github.com/espressif/esp-idf/releases/tag/v5.1 bereitstehenden Ankündigung des Releases - wie in der Abbildung gezeigt - davon, dass die neue Version von ESP_IDF „im Allgemeinen“ mit schon vorhandenem Code kompatibel sein sollte.

Bildquelle: Espressif.

In der Praxis gibt es allerdings einige Probleme, die folgendermaßen aufgelistet sind:

1
bootloader_support: The API bootloader_common_get_partition_description has now been made private, the alternative function esp_ota_get_partition_description should be used (a2f028a) 
2
     SDMMC/SDSPI: SD cards accept custom frequencies, not only fixed values 20 MHz or 40 MHz. See Storage migration guide for details (7d28aba) 
3
     ESSL: The esp_serial_slave_link is removed from the esp-idf components. Now user should use the component manager to pull it in. See example examples/peripherals/sdio/host/main/idf_component.yml for more details (03d8059) 
4
     Sleep: esp_light_sleep_start now returns two error num when sleep fails: ESP_ERR_SLEEP_REJECT and ESP_ERR_SLEEP_TOO_SHORT_SLEEP_DURATION (f191b2f) 
5
     Storage: All the partition handling APIs and data-type definitions have been moved from the 'spi_flash' to the new component 'esp_partition'. See Storage 5.x migration guide for more details (b14116f) 
6
     esp_chip_info() returns the chip version in the format = 100 * major eFuse version + minor eFuse version. (c546de8) 
7
     Wi-Fi: Modified maximum SoftAP connection number and ESPNOW encrypted connection number. (d89a512) 
8
     Wi-Fi: Changed ESP-NOW receive callback function type (esp_now_recv_cb_t). This change is made to fix potential security issues mentioned in #8574. (8223a59) 
9
     ADC: No longer support ADC2 continuous (DMA) mode on ESP32-S3 and ESP32-C3, search for errata on Espressif website to know more details. Users can force use it by enabling ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 (6569be4) 
10
     ADC: No longer support ADC2 oneshot mode on ESP32-C3, search for errata on Espressif website to know more details. Users can force use it by enabling ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 (6569be4) 
11
     I2S STD: Enabled left_align in the default slot configuration. For the default and most used case, data_bit_width equals to slot_bit_width, which means left_align does not matter in this case
12
For the case that data_bit_width is shorter than slot_bit_width, enabling left_align is a quite typical usage for almost all the codecs. (190e9e7) 
13
     NimBLE: Updated return type for nimble_port_init / nimble_port_deinit functions. (9916eb6) 
14
     IDF: All dynamic memory allocated by FreeRTOS now defaults to internal memory. To allocate FreeRTOS objects in special memory (e.g., external memory), please use one of the CreateWithCaps() functions in #include "freertos/idf_additions.h" (daf4150)

Was ist neu?

Neben der „Erweiterung“ der unterstützten Chips führte Espressif Verbesserungen im Bereich der Funkmodule bzw. der Coexistenz verschiedener Funkprotokolle durch:

1
Bluetooth: Bluetooth support use main XTAL in light sleep mode on ESP32-C3/ESP32-S3 (33f1747) 
2
     Bluetooth: Supported Bluetooth to release .bss and .data segment memory on ESP32-C3 and ESP32-S3 (d530630) 
3
     Bluetooth: Supported Bluetooth to release .bss and .data segment memory on ESP32-C2 (8ea3865) 
4
     NimBLE: Added stack support for LE Power Control (8facf6f) 
5
     NimBLE: Migrated to nimble-1.5 (07d8862) 
6
     Wi-Fi: Added WPS registrar support in SoftAP mode. (f27a95c) 
7
     Wi-Fi: Added support for SAE-PK (Public Key) authentication for station. (e44c7fb) 
8
     Wi-Fi: Added support of WPA3 Personal (SAE) in SoftAP. (146a5c4) 
9
     Wi-Fi: Added Wi-Fi Aware (NAN) support(currently only ESP32/ESP32S2 support)(d5f53fb) 
10
     Wi-Fi: Added support for WPA2/WPA3, mixed mode for SoftAP. (146a5c4) 
11
     OpenThread: Added support of Ethernet interface for Openthread br (6ca5db1) 
12
     OpenThraed: Supported CSL feature (bb9200a) 
13
     OpenThread: Supported Link Metrics feature (bb9200a) 
14
     OpenThread: Added SPI support in Radio Co-Processor (c0097c1) 
15
     Coexistence: Added external coexistence(leader mode) support on ESP32-S3 and ESP32-C2 (895d97d) 
16
     Coexistence: Added external coexistence(follower mode) support on ESP32-C2 (895d97d) 
17
     Coexistence: Added force RX mode in external coexistence on ESP32-C2 (895d97d)

Im Bereich der neu hinzugekommenen Funktionen finden sich im Allgemeinen Detailverbesserungen; die auf RISC-V-Technologie basierenden ULP-Zellen von S2 und S3 sind nun zur Kommunikation per I2C befähigt. Espressif behob außerdem die folgenden bekannten Fehler:

1
Flash MMAP: Fixed issue that only only limited vaddr ranges can be mapped to instructions/rodata on Flash on ESP32-S2, C3, S3, C2 (#10373, 1c69929) 
2
     MSPI: Fixed timing tuning issue for 80MHz Octal PSRAM on ESP32S3, which would lead to system stall at early stage (34e5a80) 
3
     MSPI: Fixed timing turning issue on high frequency lead to crash when entering sleep on ESP32-S3 (3b62bf5) 
4
     Fixed POWER ON reset when using RTC IO as input in deepsleep on ESP32-S2/ESP32-C3/ESP32-C2 (cfcb573) 
5
     Fixed RTC memory lost in high temperature in deepsleep on ESP32-S2/ESP32-C3 (cfcb573) 
6
     Support 8MD256 as RTC slow clock work properly ESP32-S2/ESP32-C3/ESP32-C2/ESP32 (cfcb573) 
7
     Fixed dangerous power parameters in sleep modes on ESP32-S2 (cfcb573) 
8
     PHY: Fix the iPhone disconnects immediately after connecting when BLE and wifi coexist on ESP32-C3 and ESP32-S3 (e8dba71)

Ausblick und Mehr

Espressif bietet unter der URL https://docs.espressif.com/projects/esp-idf/en/latest/esp32/migration-guides/release-5.x/5.1/index.html umfangreiche Dokumentation an, die auf die Änderungen und Neuerungen eingeht. Der Changelog unter der URL https://github.com/espressif/esp-idf/releases/tag/v5.1 ist ebenfalls interessant, weil er „Verweise“ auf die zu den jeweiligen Änderungen gehörenden Diskussionen anbietet. Zu guter letzt sei noch darauf hingewiesen, dass Espressif - naturgemäß - schon an der Nachfolgeversion 5.2 arbeitet. Weitere Informationen hierzu werden unter der URL https://docs.espressif.com/projects/esp-idf/en/latest/esp32/migration-guides/release-5.x/5.2/index.html zur Verfügung gestellt - zum Zeitpunkt der Drucklegung gibt es noch nur den folgenden Breaking Change:

1
UART
2
     UART_FIFO_LEN is deprecated. Please use UART_HW_FIFO_LEN instead.

: Bearbeitet durch NewsPoster
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.