sobota, 31 grudnia 2016

Flashowanie ESP-01 i innyh ESP8266

Lenistwo - cecha niewątpliwie pozytywna 

Zawsze doceniałem pozytywną rolę jaką w naszym  (mówię o facetach oczywiście) życiu odgrywa lenistwo. Czasami nabyte czasami wrodzone - ale na szczęście immanentnie związane z pierwszo i drugorzędowymi cechami określanymi jako męskie.
Nie będę tu wymieniał epokowych wynalazków ewidentnie związanych z tą piękną cechą - dość powiedzieć, że dzięki zmywarce wielu mężów uniknęło rozwodu a nawet polubiło zmywanie naczyń!

Dotyczy to każdego bez wyjątku obszaru naszego życia. Trzy zasadnicze pytania stawiane przed wykonaniem każdej pracy są kluczem do dominacji mężczyzn w świecie
- czy ta praca musi być zrobiona?
- czy to ja muszę ją zrobić?
- czy muszę to zrobić właśnie teraz?
Nikt z nas nie lubi sytuacji gdy choćby na jedno z tych pytań należy odpowiedzieć twierdząco.

Ale niestety zdarzają się sytuacje wymagające naszego oderwania się od ulubionej czynności - przebywania w pudełku z napisem NIC ( polecam znakomitą konferencję Marka Gungora na ten temat) - i zrobienia czegoś konkretnego. Nawet w tak przyjemnym działaniu jak hobby są czynności lekko frustrujące, które próbujemy za wszelką cenę minimalizować.

U mnie taką czynnością jest konieczność flashowania mikrokontrolerów. Nieodmiennie przy kolejnych próbach wgrywania nowego softu do posiadanych kości coś idzie nie tak. A to problem z zasilaniem, a to pomyłka połączenia Tx z Rx, a to nie ta wersja softu a to tysiące innych drobiazgów uniemożliwiających szybkie i bezproblemowe zakończenie tej w końcu technicznej czynności. Marzeniem jest aby wszystkie kupowane mikrokontrolery posiadały aktualne, najnowsze oprogramowanie (bootloader). Ale to marzenie - zwłaszcza w przypadku zakupów w Chinach. Tak było  ze wszystkimi kupionymi ESP-01 - żaden z nich nie nadawał sie do zastosowania z oryginalnie wgranym softem. Tak jest również z kupowanymi w Chinach Arduino NANO - standardowy bootloader uniemożliwia włączenie sprzętowego watchdoga bo ten go po prostu bezpardonowo wiesza procesor. Flashowanie ma jeszcze jedną fajną cechę - możesz szybko pozbyć się programowanego układu gdy coś w procedurze wgrywania pójdzie źle - procesor jest sprawny ale praktycznie głuchy na wszelakie próby komunikacji.

Do tej pory moduły ESP programowałem zewnętrzną przejściówką USB/RS232. Polubiłem te z układem CH340  bo ani razu nie wywinęły mi numeru przy instalacji sterowników czy w czasie pracy np. zawieszając komputer. Wszystko więc co pracuje z CH340 jako łącznik USB z mikrokontrolerem ma u mnie fory. Przyjściówek mam kilka i takie tylko z wyprowadzonym Rx i TX i takie z dodatkowymi liniami DTR CTS, na napięcia 5v i pozwalające dołączyć układy 3V3.
Wszystkie one spisują się bez zarzutu ale wymagają każdorazowo uwagi przy podłączaniu do programowanego układu by czegoś tam przez przypadek nie spieprzyć.

Od czasu gdy nabyłem drogą kupna D1mini z fantastyczną funkcją automatyki ustawień portów GPIO0 i RST przy inicjalizacji wgrywania programu  (oczywiście z wykorzystaniem układu CH340) sprawa nie dawała mi spokoju. Chłopaki z WEMOS problem rozwiązali bardzo sprytnie




Dwie dodatkowe linie DTR i RTS wyjściowe z adaptera sterują tranzystorami zwierającymi GPIO0 i RST do poziomu niskiego przy odpowiedniej kombinacji poziomów DTR i RTS. Tabelka wyjaśnia działanie tych kluczy. Oczywiście kolektory obu tranzystorów mają jeszcze dopięte rezystory podciągające do napięcia zasilania.
By wprowadzić moduł w stan oczekiwania na transmisje nowego softu trzeba zmieniać sygnały DTR i RTS w odpowiedniej sekwencji. To zapobiega przypadkowej inicjalizacji ESP przy stanach przejściowych np. podczas włączania komputera.

Postanowiłem i ja  uprościć i przyspieszyć sobie pracę  z oprogramowywaniem ESP-01 hurtowo wykorzystywanym w praktycznie każdym projekcie sterowania z BLYNK. Szczególnie gdy ilość przeprogramowań lawinowo wzrosła od chwili wdrożenia układu dwuprocesorowego NANO<>ESP-01 z BLYNKiem instalowanym w ESP8266.

Zrobić samemu programator ? Brrrrrrr

Aliekspress zachęca do kupienia czegoś takiego

Niestety z opisu nie wynikało jasno jak ten wynalazek działa - widoczny przełącznik niby ma opcję PROG ale jakoś nie znalazłem drugiego przycisku RST. No i kosztuje toto aż 5$

Z 1,5$ (z dostawą do domu) kupiłem więc prostszy model

 To "czysty" CH340 ze stabilizatorem 5/3V3 i ze wszystkimi potrzebnymi rezystorami polaryzującymi ESP-01. Mnie pozostaje jedynie podłączyć elementy wymuszające stan 0 na GPIO0 i RST przed rozpoczęciem wgrywania nowego softu.

Można to zrobić bez żadnego przycisku (reset i ustawienie GPIO0 sygnałem DTR)




 jednym przyciskiem - zero na GPIO0 trwa dłużej niż na RST dzięki kondensatorowi na bramce Q2 co jest warunkiem koniecznym do inicjalizacji bootloadera



lub dwoma......



Pytanie za 10 pkt - jaką wersję wybrałem?



I życie stało się prostsze ..........

a ciąg dalszy dobrze  gdyby nastąpił w jeszcze ciekawszym jak mniemam 2017 r.
Czego sobie i wszystkim życzę......

Brak komentarzy:

Publikowanie komentarza