wtorek, 6 lutego 2024

D1 MINI w wersji ESP 32 cz, I


Przeglądając ofertę  chińskiego sklepu widać wyraźnie, że ulubionym procesorem gadżetów IoT staje się ESP 32 w różnych jego odmianach. Oznacza to, prędzej czy później, detronizację obecnego króla ESP8266 i w zakresie różnorodności oferty i ceny. Warto więc wcześniej przygotować się na nadejście nieuchronnych zmian. Dziś opis tego co można zrobić by za chwilę nie obudzić się  z ręką w nocniku.

  



Podstawowym modułem w moich układach IoT jest ESP8266 D1 MINI w różnych jego odmianach. Mam i oryginalnego WEMOS D1MINI i większość chińskich klonów tej kultowej już dziś płytki. Najlepiej spisuje się wersja PRO z  CH9102X.


Jej główne zalety to 
- dobra 3 dB antena z możliwością dołączenia anteny zewnętrznej
- aż 16 MB pamięci flash
- dostępna wersja z układem CH9102 nie sprawiającym żadnych problemów ze sterownikami
- wbudowany zasilacz 5 / 3V3 o wydajności 1 A pozwalający zasilić całą płytkę BRAMA5.1 
- jednostronny montaż elementów ( w moim przypadku to bez znaczenia ale może się przydać )

Schemat (znalazłem tylko w wersji z CP2401)


Złącza modułu PRO są identyczne jak w standardowej wersji D1MINI za wyjątkiem dodatkowego gniazda antenowego


Przeznaczenie portów D1 MINI należy dobierać rozważnie ze względu na sporą liczbę strapping pins to jest pinów przyjmujących określone wartości lub wymagające odpowiednich wartości przy starcie mikroprocesora.

ESP8266 ma następujące strapping pins:

  • GPIO16: pin is high at BOOT
  • GPIO0: boot failure if pulled LOW
  • GPIO2: pin is high on BOOT, boot failure if pulled LOW
  • GPIO15: boot failure if pulled HIGH
  • GPIO3: pin is high at BOOT
  • GPIO1: pin is high at BOOT, boot failure if pulled LOW
  • GPIO10: pin is high at BOOT
  • GPIO9: pin is high at BOOT
Port analogowy jest tylko jeden w zakresie 0-1 V i o rozdzielczości 1024. W D1 MINI rozszerzono zakres pomiarowy do 0-3V poprzez dzielnik napięcia.

Ważną cechą modułów D1 MINI wszystkich wersji jest układ automatycznego ustawiania stanu BOOT przy programowaniu modułu z ARDUINO IDE. 

Podsumowując - moduł D1 MINI szczególnie w wersji PRO to moim zdaniem najlepsza płytka prototypowa z procesorem ESP8266. Ale i "zwykłe" D1 MINI to moduł ze wszech miar godny polecenia. Nic więc dziwnego, że analize dostępnych płytek z ESP32 zaczynam od modułów podobnych do D1 MINI.
I jak raz takie coś jest już dostępne od jakiegoś czasu. 



U WEMOS płytka oznaczona jest jako S2 MINI. Jak widać ma ona dwa razy więcej wyprowadzonych pinów niż D1 MINI ESP8266 ale najważniejsze znajdują się na zewnętrznych polach w identycznym układzie jak w oryginale.

W moich układach najważniejsze są piny zasilania, których nie da się programowo przenieść w inne miejsce. Ważne jest również to, że LDO na module ma wystarczającą wydajność by zasilić całą moją płytkę BRAMA5.1 (w oryginalnym WEMOS 0,5 A). W porywach przy transmisji WiFi procesor pobiera ok 300 mA.
Moduł przypłynął już z Chin i mam go przećwiczonego w moich  IoT.



Jest prawie bez zarzutu. Prawie. Pierwsza uwaga to niestety brak automatycznego ustawiania stanu  boot przez USB. Trzeba ponaciskać oba mikro przyciski co specjalnie wygodne nie jest. Na szczęście po pierwszym wgraniu można już bez problemu zmieniać program via OTA i ta funkcja działa z ARDUINO IDE naprawdę świetnie.
Druga to słaba antena w postaci ścieżki na płytce. W większości lokalizacji daje radę ale przy pracy na granicy zasięgu WiFi może być problem.  Poza tym nie ma się do czego przyczepić. Silny procesor ESP32 S2 pracujący z częstotliwością 240 MHz, 4 MB flasch, 320 kB RAM i dodatkowo 2 MB PSRAM i to za cenę niewiele większą niż standardowy D1 MINI (że o innych gadżetach typu ADC DAC nie wspomnę)

  • ESP32-S2FN4R2 WiFi SoC, Xtensa® single-core 32-bit LX7 microprocessor, up to 240 MHz
  • Integrated 802.11 b/g/n WiFi 2.4 GHz Transceiver, up to 150 Mbps
  • Integrated RISC-V ULP Coprocessor
  • Integrated Temperature Sensor (-20 °C to 110 °C)
  • Operating Voltage: 3.0 to 3.6 V
  • WiFi: 310 mA (peak)
  • Modem-sleep: 12-19 mA
  • Light-Sleep: 450 µA
  • Deep-Sleep: 20-190 µA
  • 320 KB SRAM
  • 4 MB Flash (embedded)
  • 2 MB PSRAM (embedded)
  • 16 KB SRAM in RTC (accessable by main CPU, 8 KB accessable by ULP coprocessor)
  • 4 Kbit eFuse (1792 bits reserved for user data)
  • 2 13-bit SAR ADCs, up to 20 channels (2 channels not available on ADC2 due to USB D+/D-) work best for voltages below 2.45V
  • 2x 8-bit DAC (second DAC FIX)
  • 14x touch sensing IOs
  • 4x SPI (2 usable due to embedded flash & PSRAM)
  • 1x I2S
  • 2x I2C
  • 2x UART
  • 1x DVP 8/16 camera interface, implemented using the hardware resources of I2S
  • 1x LCD interface (8-bit serial RGB/8080/6800), implemented using the hardware resources of SPI2
  • 1x LCD interface (8/16/24-bit parallel), implemented using the hardware resources of I2S
  • 1x TWAI® controller compatible with ISO 11898-1 (CAN Specification 2.0)
  • 8x PWM controller
  • USB OTG 1.1 controller and PHY, with host and device support
  • Cryptographic Hardware Accelerators: AES, ECB/CBC/OFB/CFB/CTR, GCM, SHA, RSA, ECC (Digital Signature)
  • USB-C connector, for built-in ROM USB bootloader, serial port debugging, and USB device mode
  • 27 GPIO pins, plus EN, VBUS, 3V3, GND, GND
  • 16 pins (outer) compatible with WEMOS/LOLIN D1 mini shields
  • EN RESET button
  • GPIO0 BOOT button
  • GPIO15 LED (blue status LED)


W układzie nic nie ma poza zasilaczem. Wszystko jest zawarte w mikrokontrolerze. ESP32 ma zaimplementowany natywny USB dzięki czemu odpada problem konwerterów USB / UART  i sterowników


Świetną sprawą w ESP32 jest swobodne przypisanie funkcji do większości GPO. To od nas zależy czy port będzie zwykłym portem cyfrowym, przetwornikiem ADC, UARTem SPI czy czujnikiem dotykowym. Tylko przetworniki DAC mają swoje określone piny.  

ESP32 S2 ma niewielką ilość strapping pins
• GPIO0
• GPIO45
• GPIO46 
z czego istotny jest tylko GPIO0 służący (jak w esp8266) do wprowadzania procesora w stan BOOT

Podsumowanie
Moduł S2 MINI jest ewidentnie atrakcyjnym zamiennikiem układów D1MINI. Jedynie w przypadku pracy w słabym otoczeniu WiFi układy D1 MINI PRO wykazują się lepszą skutecznością. 

Co dalej z nim będzie zależy już tylko od naszego ulubionego dalszego ciągu






4 komentarze:

  1. @ (nie)młody elektronik - można się z Tobą jakoś skontaktować?

    OdpowiedzUsuń
    Odpowiedzi
    1. Właśnie się kontaktujesz :) pisz na krzychopp@gmail.com

      Usuń
  2. A czy S2 ma możliwość podłączenia np. 18650, czy trzeba dodatkowego układu ładującego? Lub jaki - możliwie mały - ESP32 z ładowarką jest obecnie najlepszy?

    OdpowiedzUsuń
  3. nie ma. żaden ESP nie ma w sobie LDO. najlepszy jest C3 PICO V1.0.0 - LOLIN. Będzie o nim wpis jak dotrze do mnie z Chin

    OdpowiedzUsuń