Aktualizacja firmware: SDK oraz AT w ESP8266

Aktualizacja firmware: SDK oraz AT w ESP8266

Przystępując do podłączenia układu ESP8266 musimy sobie zdawać sprawę, że pracuje on na napięcie 3.3V a jego piny IO nie tolerują 5V dlatego też pamiętać musimy aby zadbać o konwersję napięć między modułem Wi-Fi a docelowym układem czy też podłączeniem do konwertera USB -> UART.
Na początek zbudowałem prostą płytkę, która umożliwi nam podłączenie modułu ESP8266-07 np do płytki stykowej.

Rezystory podciągające linie modułu znajdują się od spodu płytki PCB. Ta płytka jednak nie zapewnia translacji napięć między płytką a modułem UART i jeżeli nie zastosujemy układu USB->UART przystosowanego do pracy na napięcie 3.3V to o taką translację napięć będziemy musieli zadbać samemu.
Ja jednak użyłem płytki ATB w wersji 1.04b, płytka ta posiada wbudowany konwerter FT232RL który możemy przestawić zworkami na pracę z napięciem 3V3.

Dokonywałem prób aktualizacji firmware za pomocą terminala wywołując komendę AT+CIUPDATE i mimo iż taki update przebiegł poprawnie wersja firmware modułu ESP nie zmieniała się, postanowiłem dokonać aktualizacji za pomocą programu wspomnianego w artykule: http://avrtech.pl/2016/12/31/esp8266-sdk-2-0-0-at-1-3-0-0/

Po dokonaniu poprawnego podłączenia modułu możemy na początek sprawdzić czy moduł działa poprawnie. Za pomocą terminala i komendy AT moduł powinien odpowiedzieć nam OK następnie możemy sprawdzić jaką mamy wersję firmware komendą AT+GMR

Jak widać dotychczasowa wersja ESP zgłasza się u mnie wersją SDK 1.3.0, natomiast wersja AT 0.40.0.0 nie posiada zaimplementowanej komendy AT+WPS=<wartość>.

Jeżeli moduł mamy prawidłowo podłączony i istnieje możliwość odczytania jego wersji możemy przystąpić do jego aktualizacji. W tym celu włączamy program ESP Flash Download Tool v3.4.4 i klikamy na ESP8266 Download Tool powinno otworzyć nam się okno jak u mnie poniżej.

Wybieramy odpowiedni port COM w moim przypadku jest to port COM3 oraz prędkość transmisji 115200
Ustawiamy SPI Speed na 40MHz, SPI Mode na QIO oraz Flash size na 8MB
Następnym krokiem będzie wybranie odpowiednich ścieżek dostępu do plików oraz podanie odpowiednich wartości zapisu w pamięci ESP8266.
Ja mimo wszystko wgrywam również plik user2.bin za jednym razem wraz z pozostałymi plikami dokładnie pod podane wyżej adresy.

Dokładne nazwy plików wraz z najważniejszymi fragmentami ścieżki dostępu widoczne są na powyższym zrzucie.

Jak już mamy wszystko przygotowane to przed podaniem napięcia na układ ESP8266 zwieramy pin GPIO0 do Masy układu, jeżeli ktoś złożył sobie płytkę którą pokazałem na początku artykułu to przed włączeniem ESP8266 wciska klawisz Flash i po wystartowaniu układu może go puścić. W ten sposób nasz moduł Wi-Fi wszedł w tryb programowania i nie pozostaje nam nic innego jak wcisnąć przycisk START.

W tym momencie rozpocznie się wgrywanie nowego firmware do modułu ESP.

Po zakończeniu aktualizacji w oknie terminala dołączonego do programu powinniście zobaczyć napis
Leaving…
com closed

Oznaczać to będzie, że cała operacja aktualizacji powiodła się, aby jednak sprawdzić, że w 100% jest wszystko ok restartujemy moduł ESP tym razem już bez wciśniętego klawisza Flash i łączymy się terminalem na odpowiednim porcie i wydajemy komendy:

AT
AT+GMR

W rezultacie powinniśmy w terminalu otrzymać dane jak powyżej. Idąc dalej za ciosem sprawdźmy czy mamy połączenie z jakąkolwiek siecią w tym przypadku użyjemy komendy:

Pierwsza komenda dała odpowiedź status 5 co oznacza, że nie jesteśmy podłączeni do żadnej sieci, pozostałe wartości jakie mogą wystąpić to:
2: Otrzymał adres IP
3: Połączył się z siecią
4: Odłączył się od sieci

Kolejna komenda sprawdza nam czy jesteśmy połączeni z jakąś siecią gdzie w odpowiedzi dostaliśmy No AP co jest równoznaczne z tym, że nie połączyliśmy się z żadną siecią Wi-Fi. Połączenie takie możemy dokonać ręcznie znając SSID sieci, Hasło oraz pozostałe ustawienia AccessPoint’a. My jednak dążyliśmy do tego aby mieć możliwość automatycznego połączenia z siecią Wi-Fi która aktualnie nadaje sygnał WPS.
Ustawmy nasz moduł ESP w tryb klienta komendą AT+CWMODE=1 następnie klikając przycisk WPS w Routerze wpisujemy komendę AT+WPS=1 która oznacza zachętę do połączenia.

Jak widzimy nasz moduł połączył się automatycznie z siecią WiFi, możemy również sprawdzić jaki otrzymaliśmy adres IP używając komendy AT+CIFSR jak i sprawdzić czy mamy połączenie z internetem puszczając pojedynczego pinga np do google komendą: AT+PING=”www.google.pl”

No dobrze to na koniec sprawdźmy jeszcze czy nasz moduł ESP pamięta ustawienia w tym wypadku wydajemy komendę AT+RST, możemy wcisnąć przycisk Reset lub na chwilkę zabrać zasilanie modułowi.

 

Jak sami widzicie sam restart modułu oraz połączenie z siecią Wi-Fi jest bardzo szybkie co najważniejsze nawet po zabraniu zasilania moduł dalej pamięta ustawienia sieci Wi-Fi mimo iż połączenie zostało zainicjowane przyciskiem WPS na Routerze oraz komendą AT w module ESP8266-07.

W moim przypadku aktualizacja przebiegła pomyślnie jednak musisz pamiętać o tym, że moduł ESP działa na napięcie 3.3V i jego piny nie tolerują wyższego napięcia niż napięcie zasilania dlatego też układ transmisji UART między PC a modułem musi również pracować na 3.3V lub mieć zapewnioną translację napięć na liniach TXD oraz RXD.

Pamiętajcie również, że nie ponoszę odpowiedzialności za to, że komuś ESP przestanie działać po wgraniu firmware. Aktualizację robicie na własną rękę oraz sami odpowiadacie za skutki powstałe w trakcie aktualizacji.

Informacje o: majeś

POLECANE POSTY

Komentarze:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *