Hlavní navigace

ESP32 má sedm hardwarových chyb, opraveny budou v únoru

22. 11. 2016
Doba čtení: 3 minuty

Sdílet

Toužebně očekávaný nástupce ESP8266 s názvem ESP32 je tady. Bohužel má ale sedm nepříjemných hardwarových chyb. Výrobce slibuje druhou revizi, která vyjde začátkem roku.

Už téměř rok se těšíme na nástupce oblíbeného Wi-Fi čipu ESP8266: ESP32. Od září ho intenzivně hledáme v e-shopech po celém světě a někteří šťastlivci už jej dokonce mají doma. Připomeňme si ve zkratce jeho úžasné parametry (úmyslně v originále, přesně opsáno z propagačního tweetu, aby se nic neztratilo v překladu):

  • WiFi 802.1BGN HT40 (150 Mbps)
  • Bluetooth Classic
  • Bluetooth Low Energy
  • Proprietary Long Range Wi-Fi (1 km range)
  • Dual core CPU
  • 7-stage pipeline CPU
  • 2× FPU (Single precision)
  • 240 MHz CPU clock
  • 240 MHz bus clock
  • 32×32 multiplier
  • 32-bit Integer divide
  • 40-bit MAC
  • 10× PWM
  • 512 kByte SRAM
  • 8 kB low power retention memory
  • Dynamic biasing
  • Instruction cache
  • 8 MByte Flash
  • 12× timer
  • 32× GPIO
  • 5µA low power
  • Memory protection unit
  • 4096-bit RSA hardware accelerator
  • Elliptical curve cryptography accelerator
  • AES-256 accelerator
  • Hardware flash encryption
  • Secure boot
  • 1024-bit OTP memory
  • 3× SPI
  • 3× I2C
  • SD-card Interface
  • LCD Interface
  • Camera Interface
  • PWM driver
  • 10× capacitive touch sensor
  • Hall sensor
  • Low noise amplifier
  • Slow clock
  • 12-channel dual ADC
  • Dual 10-bit DAC
  • Internal calibrated 8MHz clock
  • 160kHz low power RTC
  • Ethernet MAC
  • 32kHz crystal oscillator
  • 2.0V to 3.6V supply voltage

Takto vybavený (nebál bych se slova „nabušený“) čip o velikosti 6×6 mm a aktuální ceně kolem 5 dolarů slibuje stát se opravdovou revolucí nejen v internetu věcí. Bohužel není nebe bez mráčku a ani čerstvě vyvinutý čip není bez chyby. Espressif IOT Team právě uveřejnil dokument nazvaný ECO and Workarounds for Bugs in ESP32 [PDF], který popisuje hned sedm chyb přítomných v čipu ESP32 revize 0 (to je ta vydaná 1. září, jak jsme psali v článku).

První chyba se týká watchdogu, který nesprávně vyvolá reset jak po zapnutí napájení, tak i po probuzení z hlubokého spánku. Zatímco resetu po zapnutí se vyhnout nelze, reset po probuzení je možno obejít softwarově vymazáním jednoho příznaku v MMU.

Druhá chyba nastává při přístupu do externí SRAM paměti skrz keš, kdy při střídání operací čtení a zápisu dochází k náhodným chybám. Softwarově to opravit nejde, musí se pečlivě vyprazdňovat pipeline mezi čtením a zápisem do externí SRAM paměti (nebo mezi čtením a zápisem použít strojovou instrukci MEMW).

Třetí chyba se týká náhodných ztrát dat, které nastávají při opakovaném zápisu na stejnou adresu registrů periférií. Zde má pomoci přeskládat adresy registrů pro přístup k perifériím podle tabulky ve výše zmíněném dokumentu.

Čtvrtou chybou je, že nefunguje Brown-out Reset, tedy reset při poklesu napětí pod určitou mez. Na to nepomůže žádná softwarová klička.

Pátou chybou je pád procesoru („CPU crash“) při přepnutí jeho frekvence z 240 MHz na 80 nebo 160 MHz. Doporučovaná obezlička je docela vtipná: pokud už běžíte na 240 MHz, tak snižujte jedině na 40 MHz. Z 40 MHz můžete snížit na 2 MHz, a z 2 MHz pak můžete jít nahoru na požadovaných 80 nebo 160 MHz.

Šestá chyba zřejmě plyne z velké konfigurovatelnosti pinů procesoru ESP32. Některé piny jsou přístupné jak přes GPIO funkce, tak i přes RTC_GPIO registry. A zrovna tyto piny mají tu smůlu, že jejich pull-up a pull-down rezistory nejdou zapnout přes GPIO funkce, jak by člověk očekával, ale je nutno použít RTC_GPIO registry. Tato chyba je výjimečná i tím, že jako jediná nebude opravena ani v nové revizi čipu.

ict ve školství 24

Poslední zatím známou chybou v ESP32 je omezený rozsah frekvencí „audio PLL“. V nové revizi čipu bude pro výpočet výstupní frekvence platit jiný vzorec než pro dnešní revizi 0.

No a kdy že bude nová revize ESP32, která opraví šest ze sedmi výše zmíněných chyb, dostupná? Výrobce plánuje, že ji pustí na trh v únoru 2017. Dokument tvrdí, že novou revizi poznáme podle nastavení bitu eFuse. Kardinální otázka ovšem je, jak to my kupující poznáme při vybírání hotových modulů s ESP32 v e-shopu. Pravděpodobně jediná možnost bude počkat nejméně do dubna/května, než se vyprodají zásoby starých čipů (za předpokladu, že tato chybná revize půjde na dračku a nezůstane ležet někde ve skladech). Mezitím nám alespoň poklesnou ceny, jak jsem prorokoval už v minulém článku.

Autor článku

Petr Stehlík vystudoval aplikovanou informatiku a pracuje jako vývojář webových aplikací a administrátor linuxových serverů. Provozuje vlastní server tvpc.cz.