Můžeme nahradit ESP12F (ESP8266) výkonnějším modulem ESP32-C3F (ESP32-C3) ve stávajícím zařízení?
- August 11 2021
- ESP32, ESP8266, NodeMCU , Wemos, RTLDuino...
- 2569x Přečteno
Plánujete vylepšit zařízení novějším Wi-Fi modulem s ESP32-C3 namísto staršího a slabšího modulu s ESP8266? Ač je ESP32-C3F (s ESP32-C3) rozměrově kompatibilní s ESP12F (s ESP8266), záměna není tak jednoduchá - prostá výměna modulů.
Čím je modul s ESP32-C3 lepším oproti modulu s ESP8266?
Získáte k Wi-Fi i Bluetooth (BLE 5.0), nižší spotřebu, výkonnější čip. Tedy za stejné peníze, rozměrově stejný modul s lepšími parametry.
Poděkování patří e-shopu laskarduino.cz, který mi exkluzivně poskytl modul ESP32-C3F s čipem ESP32-C3 a také jejich vývojovou desku microESP.
Během mého bádání jsem čerpal z těchto zdrojů a informace z nich jsem sepsal do tohoto článku.
Modul ESP32-C3F - https://docs.ai-thinker.com/
Modul ESP12F - https://docs.ai-thinker.com/
ESP32-C3 dev kit od Espressif System - https://dl.espressif.com/
ESP8266 datasheet - https://www.espressif.com/
ESP32-C3 datasheet - https://www.espressif.com/
Schéma microESP - https://github.com/LaskaKit/microESP
Rozložení modulu
ESP32-C3F a ESP12F jsou sice rozměrově stejné, bohužel pinově až tak stejné nejsou - a to je kámen úrazu jednoduchého prohození modulů a získání vylepšení (nejen) vašeho zařízení.
Jak můžete vidět na obrázku výše, kromě jiných označení GPIO pinů, které jsou ale významově stejné, se liší ve čtyřech důležitých pinech.
Přepnutí do bootloader režimu - GPIO0 (ESP12F) vs. GPIO9 (ESP32-C3F)
Začneme pinem GPIO0 (ESP12F) a GPIO9 (ESP32-C3F).
Tímto pinem, jak u ESP8266 tak i ESP32-C3, se rozhoduje, zda čip přepne do boot režimu či nikoliv.
Klasické zapojení automatického přepnutí čipu do boot režimu je následující
ESP8266
ESP32-C3
Jak můžete vidět, u ESP8266 se tahá za GPIO0, u ESP32-C3 zase za GPIO9.
Významově jsou piny stejné.
ESP8266
ESP32-C3
Automatický reset pro nahrání programu
Bohužel to ale neplatí u RESET pinu, který je přítomný u ESP8266, ale už ne u ESP32-C3. A to je jeden z problémů, který je těžko řešitelný a je potřeba větší změny do návrhu desky.
ESP8266
ESP32-C3
GPIO15 (ESP8266) vs. GPIO8 (ESP32-C3F)
GPIO15 u ESP8266 je běžně připojen přes pull-down rezistor na GND (programování přes UART nebo běh z SPI).
GPIO8 (ESP32-C3F) má ale logiku opačnou, zde musí být připojen přes pull-up rezistor k 3.3V. U modulu ESP32-C3F je tento rezistor už přítomen a není třeba jej osazovat na vaši desku.
Pokud chcete ESP12F za ESP32-C3F vyměnit, musíte pull-down rezistor odstranit, pokud to neuděláte, napětí na pinu stále definuje pin jako logická 0 - tedy opačné než potřebujeme.
ESP8266
ESP32-C3F
GPIO2 (ESP12F) vs. GPIO10 (ESP32-C3F)
A posledním pinem je GPIO2 u ESP12F, kde je pin připojen na 3.3V.
Stejná situace je i u ESP32-C3F. V tomto případě musí pull-up rezistor zůstat.
Závěr
Jaký je závěr tohoto článku? Prostá výměna modulu ESP12F (ESP8266) modulem ESP32-C3F (ESP32-C3) není možná bez dodatečných úprav.
Na GPIO15 (ESP8266) nesmí být pull-down rezistor.
Na ESP12F není reset pin, pro ESP32-C3F je nutné stáhnout k zemi ENABLE pin (CHIP_PU) - tohle je asi největší překážka ve výměně modulů.
To je vlastně návod i pro nový design desek s ESP32-C3F.
K automatickému přepnutí do boot režimu je nutné přizemnit Enable pin (CHIP_PU).
GPIO8 musí zůstat BEZ pull-down rezistoru. Pull-up rezistor je už v modulu ESP32-C3F.
Interní pull-up má i Enable pin (CHIP_PU) u ESP32-C3F.
GPIO10 také potřebuje pull-up rezistor.