Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Espressif ESP32-S3 - zaprojektowany dla AIoT

khoam 10 Apr 2022 21:53 2115 8
Computer Controls
  • Espressif ESP32-S3 - zaprojektowany dla AIoT
    Witajcie moi drodzy :)
    ESP32-S3 to nowy układ SoC firmy Espressif, który został zaprojektowany specjalnie z myślą o potrzebach rynku AIoT. Wyposażony jest w dwurdzeniowy procesor Tensilica LX7 (do pracy z częstotliwością 240 MHz) wraz dodatkowymi instrukcjami wektorowymi do akceleracji AI oraz dodatkowy procesorem ULP do obsługi trybów niskiego poboru mocy. Oprócz 512 KB wewnętrznej pamięci SRAM, jest również wyposażony w zintegrowany układ łączności Wi-Fi 2.4 GHz, 802.11 b/g/n oraz Bluetooth 5 (LE), który zapewnia obsługę dalekiego zasięgu. Posiada 45 programowalnych GPIO i obsługuje dość bogaty zestaw urządzeń peryferyjnych. W porównaniu z ESP32 obsługuje szybsze pamięci flash po SPI (w trybie Octal SPI) oraz posiada PSRAM z konfigurowalną pamięcią podręczną danych i instrukcji. Na poniższym diagramie zaprezentowane są części składowe układu ESP32-S3, gdzie odpowiednimi kolorami wyróżniono, które z nich mogą pracować w określonych trybach poboru mocy.

    Espressif ESP32-S3 - zaprojektowany dla AIoT


    Pamięć wewnętrzna ESP32-S3 zawiera:
    * 384 KB ROM: do uruchamiania oraz podstawowe funkcji wykorzystywane m.in. przez bootloader.
    * 512 KB SRAM: na dane i instrukcje, działająca z konfigurowalną częstotliwością do 240 MHz.
    * RTC FAST: 8 KB SRAM, która obsługiwana jest przez główny procesor; może przechowywać dane w trybie głębokiego uśpienia.
    * RTC SLOW: 8 KB SRAM, która obsługiwana jest przez główny procesor lub koprocesor ULP; może przechowywać dane w trybie głębokiego uśpienia.
    * 4 Kbit eFuse: 1792 bity są zarezerwowane dla danych użytkownika, takich jak klucz szyfrowania i identyfikator urządzenia.
    * SiP flash: wbudowana pamięć PSRAM o pojemności do 8 MB, pracująca w trybie Octal SPI.

    ESP32-S3 obsługuje do 1 GB zewnętrznej pamięci flash i pamięci RAM oraz wspiera sprzętowe szyfrowanie/odszyfrowywanie w oparciu o XTS-AES w celu ochrony programu i danych w pamięci flash oraz zewnętrznej pamięci RAM.

    ESP32-S3 ma dwa koprocesory ULP, jeden jest oparty na architekturze zestawu instrukcji RISC-V (ULP-RISC-V), drugi na tzw. automacie skończonym (ULP-FSM). Zegarem koprocesorów jest wewnętrzny szybki oscylator RC. Te dwa koprocesory nie mogą działać jednocześnie.

    ESP32-S3 obsługuje Wi-Fi 2.4 GHz (802.11 b/g/n) z szerokością pasma 20 lub 40 MHz. Wsparcie dla trybów STA, SoftAP oraz STA+SoftAP (w tym samym kanale). Podsystem Bluetooth Low Energy zapewnia duży zasięg dzięki Coded PHY. ESP32-S3 wspiera funkcjonalność antenna diversity z zewnętrznym przełącznikiem RF. Ten przełącznik może być kontrolowany przez jeden lub więcej GPIO i służyć do wyboru najlepszej anteny.

    ESP32-S3 zapewnia obsługę instrukcji wektorowych w MCU, co pomocne jest się do znacznego przyspieszenia obliczeń dla SSN oraz DSP. Espressif udostępnia następujące biblioteki na github, które wykorzystują te instrukcje wektorowe:
    ESP-DSP (biblioteka funkcji dla DSP): https://github.com/espressif/esp-dsp
    ESP-NN (biblioteka funkcji dla SSN): https://github.com/espressif/esp-nn
    ESP-WHO (przetwarzanie obrazu): https://github.com/espressif/esp-who
    ESP-Skainet (inteligentny asystent głosowy): https://github.com/espressif/esp-skainet

    ESP32-S3 jest również wyposażony, podobnie jak ESP32 w procesor FPU. Obsługuje on jedynie liczby zmiennoprzecinkowe o pojedynczej precyzji. Niestety wydajność tego FPU jest również podobna, jak w przypadku ESP32.

    Ciekawym rozwiązaniem jest tzw. World Controller, który może podzielić zasoby sprzętowe ESP32-S3 na dwa obszary, Secure World oraz Non-Secure World w celu zapobiegania sabotażowi lub dostępowi do informacji o urządzeniu. Zadaniem takiego kontrolera jest:
    * Przełączanie procesora pomiędzy Secure World oraz Non-Secure World wraz z zapisem logów tego przełączania.
    * Sterowanie 15 urządzeniami peryferyjnymi DMA przełączającymi się pomiędzy Secure World oraz Non-Secure World.
    * Ekranowanie (shielding) przerwań NMI procesora (sic!).
    Domyślnie, wszystkie zasoby w ESP32-S3 są współdzielone. Użytkownik może natomiast przydzielić zasób do jednego z tych dwóch „światów”, korzystając z Permission Controller. Niestety nie udało mi się dotrzeć do bardziej szczegółowych informacji na temat tego rozwiązania, ani też przykładowych programów.

    Dostępne są trzy tryby uśpienia, podobnie jak w przypadku ESP32:
    * Modem-sleep: Procesor działa i można zmniejszyć prędkość zegara. Wi-Fi oraz BLE są wyłączone, ale połączenie Wi-Fi pozostaje aktywne. Wielkość poboru prądu przez układ zależy od wykorzystania urządzeń peryferyjnych.
    * Light-sleep: Procesor jest wstrzymany. Urządzenia peryferyjne RTC, a także koprocesor ULP mogą być okresowo wybudzane przez zegar. Wszelkie zdarzenia budzenia (MAC, host, zegar RTC lub przerwania zewnętrzne) zostaną obsłużone. Połączenie Wi-Fi pozostaje aktywne. Użytkownik może decydować, jakie urządzenia peryferyjne mają być wyłączone lub utrzymane. W tym trybie układ pobiera 240 µA prądu.
    * Deep-sleep: Procesor i większość urządzeń peryferyjnych jest wyłączona. Tylko pamieć RTC jest zasilana, a zasilanie urządzeń peryferyjnych RTC jest opcjonalne. Dane ostatniego połączenia Wi-Fi są przechowywane w pamięci zegara RTC, koprocesor ULP działa. W tym trybie układ pobiera 8 µA prądu.

    Podobnie, jak dla pozostałych układów ESP Espressif dostarcza SDK (ESP-IDF) dla rozwoju oprogramowania w oparciu o ESP32-S3. Ostatnia wersja stabilna ESP-IDF 4.4 wspiera ESP32-S3. Dostępna jest również szczegółowa dokumentacja SDK wraz z przykładami. Oprogramowanie napisane dla ESP32 jest w pełni przenoszalne (na poziomie kodu źródłowego) do ESP32-S3, o czym przekonał się autor niniejszego artykułu ;)

    Arduino Core w najnowszej, stabilnej wersji 2.0.2 nie wspiera ESP32-S3, ale jest już wersja 2.0.3-RC1, która takie wsparcie zapewnia. Co ciekawe, najnowsza wersja rozwojowa Tasmota już korzysta z aktualnej wersji Arduino Core 2.0.3.

    Espressif zaprojektował płytki rozwojowe z ESP32-S3 o nazwie ESP32-S3-DevKitC-1 (obrazek poniżej) oraz ESP32-S3-DevKitM-1. Zasadniczo różnią się one ilością dostępnej pamięci flash oraz PSRAM. Przyznam się, że nie rozumiem tej maniery umieszczania diody LED RGB (konkretnie to SK68XXMINI-HS, sterowanej zgodnie z protokołem Unipolar RZ), zamiast zwykłej diody LED. Jako mostka USB/UART użyto CP2102N, który zapewnia transfer danych do 3 Mbps. Zastosowany LDO to SGM2212 o dopuszczalnym prądzie wyjściowym 800 mA.

    Espressif ESP32-S3 - zaprojektowany dla AIoT


    Na dzień pisania tego artykułu, cena tych płytek rozwojowych na popularnym chińskim portalu wynosiła ok. 150 PLN za ESP32-S3-DevKitC-1 oraz ok. 100 PLN za ESP32-S3-DevKitM-1.

    Dobrą alternatywą dla płytek Espressif (lub ich klonów) jest płytka rozwojowa o nazwie NanoESP32-S3 (obrazek poniżej). Zasadnicza różnica pomiędzy NanoESP32-S3 a płytkami ESP32-S3-DevKit jest taka, że zamiast mostka USB/UART zastosowano układ APM32F103, czyli ARM Cortex-M3 :) W APM32F103 znajduje się firmware o nazwie ESPLink, który jest modyfikacją znanego ze świata ARM oprogramowania DAPLink. DAPLink to projekt oprogramowania typu open source, który umożliwia programowanie i debugowanie układów ARM Cortex. W NanoESP32-S3 firmware ten został zmodyfikowany dla potrzeb programowania i debugowania ESP32-S3 i występuje pod nazwą ESPLink :) Na stronie producenta NanoESP32-S3 znajdują się informację o ESPLink i użyciu jego z OpenOCD-ESP32 dla celów debugowania. Oczywiście ESPLink umożliwia również ładowanie programów za pośrednictwem portu USB. Używam tych płytek (również w wersjach z ESP32-C3 oraz ESP32-S2) i mogę je polecić.

    Espressif ESP32-S3 - zaprojektowany dla AIoT


    Na dzień pisania tego artykułu, cena płytek NanoESP32-S3 wynosiła od 100 do 120 PLN w zależności od modelu płytki (dostępnej wielkości pamięci PSRAM).

    Na koniec krótko wspomnę o ciekawym module rozwojowym. W zasadzie jest to już praktycznie gotowe urządzenie o nazwie ESP32-S3-BOX (obrazek poniżej). Jest to platforma sprzętowa do sterowania sprzętem AGD z wykorzystaniem Voice Assistance wraz z kontrolerem dotyku, ekranem (tylko 2.4 cala z rozdzielczością 320x240), czujnikiem i kontrolerem podczerwieni oraz inteligentnej bramki Wi-Fi. Strona projektu ESP32-S3-BOX jest na github, gdzie można znaleźć wszystkie potrzebne informacje do programowania tego urządzenia.

    Espressif ESP32-S3 - zaprojektowany dla AIoT


    W załączeniu umieszczam dwa dokumenty, ich najbadziej aktualne wersje: ESP32-S3 Series Datasheet oraz Technical Reference Manual. Nowsze wersje tych dokumentów można śledzić pod: Link.

    ---
    Źródło: Espressif

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    khoam
    Level 41  
    Offline 
    khoam wrote 8682 posts with rating 1176, helped 671 times. Live in city Piaseczno. Been with us since 2007 year.
  • Computer Controls
  • #2
    gulson
    System Administrator
    Dzięki za super publikacje i umożliwienie użytkownikom bycie na bieżąco z popularną serią ESP!

    khoam wrote:
    popularnym chińskim portalu wynosiła ok. 150 PLN za ESP32-S3-DevKitC-1 oraz ok. 100 PLN za ESP32-S3-DevKitM-1.

    vs ESP8266 10zł vs ESP32 27zł. To przestaje być kraj dla biednych elektroników :(
  • #3
    khoam
    Level 41  
    Cieszę się, że są chociaż od "ręki" i nie trzeba czekać 6 albo 12 miesięcy.
  • Computer Controls
  • #4
    Armadon
    Level 15  
    W mouserze jest dużo taniej niż na ali, tylko tam trzeba zamówić za tyle żeby przesyłka była darmo, inaczej średnio opłacalne.
    I mają wszystko - od gołych chipów po devkity.
    Nie żebym reklamował, po prostu "popularny chiński portal" ostatnio trochę przeszarżował z cenami więc warto sprawdzać alternatywne źródła żeby się nie dać robić w wała.
  • #5
    khoam
    Level 41  
    Armadon wrote:
    po prostu "popularny chiński portal" ostatnio trochę przeszarżował z cenami więc warto sprawdzać alternatywne źródła żeby się nie dać robić w wała.

    Niestety jest to prawda. Na ali ceny devkitów z ESP32-S3 są 5-6 razy droższe niż z ESP32 i na pewno nie wynika to z ceny SoC. Być może przyczyną jest bardzo mała podaż płytek z ESP32-S3 w stosunku do ESP32. To się może jeszcze zmienić.
  • #6
    khoam
    Level 41  
    khoam wrote:
    Być może przyczyną jest bardzo mała podaż płytek z ESP32-S3 w stosunku do ESP32. To się może jeszcze zmienić.

    Właśnie się pojawiły na ali tańsze moduły deweloperskie z ESP32-S3, ze stajni Ai-Thinker o nazwie ESP32S-S3-12K. Cena ok. 45 PLN.
    SoC (ESP32-S3-32S) kosztują natomiast ok. 25 PLN.
  • #7
    gulson
    System Administrator
    Faktycznie, robi się coraz ciekawiej. Skorzystam z tematu, jeśli ktoś chciałby zrecenzować moduł, opisać, stworzyć serię artykułów lub kurs na elektrodzie to piszcie ;)
  • #8
    gdL
    Level 27  
    khoam wrote:
    khoam wrote:
    Być może przyczyną jest bardzo mała podaż płytek z ESP32-S3 w stosunku do ESP32. To się może jeszcze zmienić.

    Właśnie się pojawiły na ali tańsze moduły deweloperskie z ESP32-S3, ze stajni Ai-Thinker o nazwie ESP32S-S3-12K. Cena ok. 45 PLN.
    SoC (ESP32-S3-32S) kosztują natomiast ok. 25 PLN.


    Jeszcze niedawno brałem na Ali moduł ESP32 za 8zł, płytkę devkit za 13zł. Wziąłem ze 30, bo stwierdziłem, że do końca życia tyle mi wystarczy :-)
    Serio, bardzo fajny sprzęt za te pieniądze i ma wszystko co trzeba. Nawet jak nie będzie już działać komunikacja wifi to dalej poważna moc obliczeniowa, a opcja połączenia bezpośredniego zostanie.

    Ale oczywiście kibicuję dalej rozwojowi ESPRESSIF. Zobaczymy jak będzie z wolumenem, bo ich chyba klepie TSMC a nie SMIC.
  • #9
    khoam
    Level 41  
    gdL wrote:
    Jeszcze niedawno brałem na Ali moduł ESP32 za 8zł, płytkę devkit za 13zł.

    Teraz trochę podrożały. Devkit z ESP32 to 20zł, a sam ESP32 - najtańsze 10 zł. Ale w porównaniu z cenami w świecie ARM to nic to :)