ESP8266 SDK - wprowadzenie

Poniższy wpis zawiera wynotowane i przetłumaczone fragmenty dokumentu ze strony Espressif,  producenta układu ESP8266, który można znaleźć w oryginale pod adresem - https://www.espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_en.pdf lub w wersji html https://www.espressif.com/en/support/explore/get-started/esp8266/getting-started-guide. Dlaczego te a nie inne? Powodów jest kilka - nie wiem jeszcze co jest ważne, na tą chwilę mam taką wiedzę, itd.

Cała oryginalna dokumentacja ESP8266 znajduje się na stronie Espressif - https://www.espressif.com/en/support/download/documents?keys=&field_type_tid%5B%5D=14

ESP8266 SDK - wprowadznie

Co to jest ESP8266 SDK?

ESP8266 Software Development Kit (SDK - zestaw narzędzi programistycznych ) to platforma do tworzenia aplikacji dla Internet of Things (IoT - internet rzeczy) opracowana przez firmę Espressif dla programistów. Zawiera on takie przykłady aplikacji, jak Smart Lights i Smart Plugs.

W zależności od tego, czy są one oparte na systemie operacyjnym (OS), pakiety SDK można podzielić na dwa typy:

  • Non-OS SDK - nie jest oparty na systemie operacyjnym. Obsługuje kompilację poleceń IOT_Demo i AT. Non-OS SDK używa timerów i callbacków jako głównego sposobu wykonywania różnych funkcji, takich jak zdarzenia zagnieżdżone i funkcje wyzwalane przez określone warunki.
  • RTOS SDK - oparty jest na FreeRTOS - wielozadaniowym systemie operacyjnym, oprogramowaniu open source z Github.

ESP8266 Firmware

ESP8266 Firmware jest w plikach binarnych (.BIN), które można pobrać bezpośrednio do HDK (Hardware Development Kit - płytki testowej).
Użytkownicy mogą wybierać między OTA firmware (Over-the-Air) i non-OTA firmware.
Aby uzyskać szczegółowe informacje, zapoznaj się z poniższą tabelą.

Plik Obowiązkowy/Opcjonalny Opis Non-OTA OTA
esp_init_data_default.bin Obowiązkowy Domyślne parametry systemowe dostępne w SDK
blank.bin Obowiązkowy Domyślne parametry systemowe dostępne w SDK
eagle.flash.bin Obowiązkowy Główny program skompilowany z SDK
eagle.irom0text.bin Obowiązkowy Główny program skompilowany z SDK
boot.bin Obowiązkowy Bootloader dostarczony z SDK
user1.bin Obowiązkowy przy pierwszym uruchomieniu Główny program skompilowany z SDK
user2.bin Używany przy aktualizacji firmware-u Główny program skompilowany z SDK

O co chodzi z tym OTA?

OTA to mechanizm, który pozwala załadować program bez konieczności korzystania z programatora, konwertera typu serial-USB czy ogólnie portu szeregowego. Gdy mamy już gotowy układ zamontowany w obudowie nie musimy się gimnastykować z fizycznym podłączaniem. Wystarczy być w zasięgu WiFi. Druga sprawa np. w przypadku wielu układów Inteligentnego Domu, gdy mamy kilka lub kilkanaście układów to nie musimy "latać" każdego.
Więcej informacji o OTA:


Firmware Download Tool - narzędzie do wgrywania firmware-u

ESP8266 DOWNLOAD TOOL jest oficjalnym narzędziem do wgrywania oprogramowania systemowego rozwijanym przez firmę Espressif.

Serial Port Debug Tool

Terminal szeregowy jest używany jako główne narzędzie do komunikacji z modułem ESP8266  w standardzie RS-232. W PC-tach, które nie posiadają fizycznego portu szeregowego można użyć wirtualnego portu w postaci konwertera USB-to-serial. Użytkownik może bezpośredio wpisywać polecenia w terminalu szeregowym i oglądać bądź zapisywać odpowiedzi w czasie rzeczywistym.
Firma Espressif rekomenduje CoolTerm dla Windows i Mac a Minicom dla systemów Linux.
Dla linuksa polecam w kolejności: CuteCom, MoSerial, GTKTerm, PuTTY lub jeśli ktoś preferuje terminal miniterm.

Przykład użycia miniterm

~$ miniterm /dev/ttyUSB0 115200 --eol CRLF
--- Miniterm on /dev/ttyUSB0  115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
AT

OK

Przygotowanie sprzętu

Espressif przygotował dwa rodzaje płytek testowych:
  • ESP-LAUNCHER 
  • ESP-WROOM-02 

ESP8266 jest zasilany napięciem 3,3V i może pobierać do 500mA.

Domyślna prędkość transmisji szeregowej

W rozdziale 6.2.2 ESP8266 AT możemy przeczytać, że...
Jeśli uzytkownicy wgrają oprogramowanie systemowe ESP8266 AT lub domyślny firmware w ESP-LAUNCHER, czy WROOM-02, to system w trybie pracy będzie wyświetlał "Ready" na końcu. Jeśli wprowadzisz komendę AT w terminalu i system odpowie OK, to znaczy że oprogramowanie systemowe działa poprawnie.

Uwaga:
Baud rate w firmware AT jest obowiązkowo skonfigurowany na 115200 podczas gdy domyślny baud rate ESP8266 to 74880. Z powodu tej rozbieżności informacje inicjalizujące systemu będą wyświetlone jako "Mojibake" (po naszemu można powiedzieć "krzaki", "krzaczki"). Jest to normalne zjawisko, które nie będzie stwarzało żadnych problemów, o ile na końcu system pokazuje "Ready".

Zróbmy mały eksperyment. W terminalu uruchom:

~$ miniterm /dev/ttyUSB0 74880 --eol CRLF

--- Miniterm on /dev/ttyUSB0  74880,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 2592, room 16 
tail 0
chksum 0xf3
load 0x3ffe8000, len 764, room 8 
tail 4
chksum 0x92
load 0x3ffe82fc, len 676, room 4 
tail 0
chksum 0x22
csum 0x22

2nd boot version : 1.7(5d6f877)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

rf cal sector: 251
freq trace enable 1
rf[112] : 03
rf[113] : 00
rf[114] : 01

SDK ver: 2.2.0(f28eaf2) compiled @ Feb  6 2018 13:35:12
phy ver: 1136_0, pp ver: 10.2

␂`J�N�

We wcześniejszych wpisach cześć, którą zaznaczyłem na czerwono była właśnie "krzakami" a na zielono jest napis "Ready". Hmmm... ciekawe co było wcześniej gdy był "fabryczny" firmware? Nie wiedziałem o tej zmianie prędkości.

A teraz idę na rower...

Komentarze

  1. W sumie nie miałem okazji chyba pracować na tym układzie póki co. Chociaż mam całą masę różnych płytek drukowanych z tspcb to akurat te układy widzę pierwszy raz. Oczywiście nie ukrywam jeżeli będzie możliwość nadal ich kupienia to zapewne to zrobię przetestuję.

    OdpowiedzUsuń

Prześlij komentarz