WAŻNE: NIE UŻYWAJ AT+IPR=9600
! (patrz aktualizacja)
Mam moduł ESP8266 12E, który komunikuje się z prędkością 115 200 bodów. Ponieważ używam go z Arduino Nano z SoftwareSerial, robi się bałagan. Stwierdziłem więc, że powinienem zmniejszyć szybkość transmisji modułu ESP.
Znalazłem ten link, jak to zrobić.
zastanawiam się
Czy to trwała zmiana, czy trzeba to robić za każdym razem po zasileniu modułu?
Czy mogę to zrobić, wysyłając polecenie z Arduino przez SoftSerial? Cóż, chyba nie, odkąd próbowałem i zawsze pojawia się błąd na
AT+CIOBAUD=9600
lubAT+IPR=9600
.Czytałem gdzieś, że w nowszych wersjach oprogramowania ESP8266 domyślna prędkość transmisji wynosi 9600. Czy ktoś może to potwierdzić, a jeśli tak, to czy lepiej sflashować to nowsze oprogramowanie?
Dostawca modułu:
Ai-Thinker Technology Co.,Ltd.
Myślę, że obecna wersja oprogramowania to 0.3.0. Jeśli wyślę AT+GMR
, otrzymam:
sending AT+GMR
response: ?AT¥TJÕ¨H(Q�²•ÉÍ¥½¹é‚r¢‚r‚r‚BÕ��Â’‚ŠªŠ¢Ò¢ªÒªÂJm
SDK versioo:0.3.0
Ai�½½
‚Šj
Znów trochę śmieci ze względu na zbyt wysoką prędkość transmisji.
Inne informacje o module:
sending AT+RST
response: ?AT+RST
OK
WRT
"%M
<99CT
ets Jan 8 2013,rst catse:2, boot lode:(3,7)
load 0x40100000ntail 4
chksum 0x89
ld tail 4
chm3 tail 8 r 0 aM
ón't use rtc mem dat`
sl��oÌÿ
Ai-Thinker Technology Co.,Ltd.
AKTUALIZACJA
(*) Użyłem modułu FTDI232, aby wysłać AT+IPR=9600
do mojego modułu ESP8266-12E i go zamurowałem !
NIE UŻYWAJ AT+IPR=9600
NA ESP8266 (-12E).
Jak dotąd nie udało mi się go odzyskać! Próbowałem ponownie go sflashować, ale dostaję nieprawidłowe wyjątki od głowy.
Na nowym module wysłałem AT+CIOBAUD=9600
polecenie i zadziałało. Na stałe!
Specyfikacja mojego modułu:
AT+GMR
AT version:0.40.0.0(Aug 8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK
źródło
Odpowiedzi:
W zależności od tego, jak najnowsza wersja interpretera zestawu instrukcji AT ma Twój układ, dwie wypróbowane instrukcje mogą nie być poprawne; nie są wymienione w dokumencie ESP8266 AT Instruction Set w dokumencie Espressif . Wyszukiwanie „CIOBAUD” lub „IPR” w bieżącym dokumencie (wersja 1.5.3) nie zwraca żadnych wyników.
Komendy prędkości transmisji to teraz „AT + UART_CUR” i „AT + UART_DEF”, które konfigurują odpowiednio cały UART dla bieżącej sesji lub bieżącej i przyszłych sesji. Prototyp instrukcji dla tego polecenia to:
Użyłem ich i mogę potwierdzić, że działają.
Za pomocą oprogramowania szeregowego znalazłem to, że może on przesuwać 115200 bodów wystarczająco dobrze, aby wysyłać polecenia do urządzenia (chociaż nie zbudowałbym aplikacji, która od niego zależy), ale może on wiarygodnie odczytać do 9600 bodów. Byłem w stanie zmienić szybkość transmisji moich urządzeń z 115200 bodów na 9600 w porównaniu z oprogramowaniem szeregowym; musisz tylko oczekiwać powrotu śmieci i zignorować je:
źródło
Podłączyłem moduł FTDI232 przy 115200 bodów i mogłem teraz odczytać specyfikację modułu ESP8266:
Potem wysłałem
AT+IPR=9600
komendę, która początkowo wydawała się załatwić sprawę. Ale po ponownym uruchomieniu modułu wszystko, co otrzymałem, to reakcja na śmieci, przy dowolnej szybkości transmisji.NIE WYSYŁAJ AT + IPR = 9600 DO SWOJEGO MODUŁU ESP8266 (12e)
Może
AT+UART_DEF
polecenie - jak wspomniał JRobert - działa, ale użyłemAT+CIOBAUD=9600
polecenia i zadziałało. Na stałe!Mam nadzieję, że to może pomóc innym.
źródło
Zamurowałem też mojego Espa tym samym poleceniem. Po wielu godzinach poszukiwań znalazłem sposób na zresetowanie zamurowanego esp. https://developer.mbed.org/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266-Firmware Musiałem ustawić szybkość transmisji na 115200 zamiast 9600, a między przesyłaniem plików musiałem odłączyć esp od zasilania . Mam nadzieję, że to pomoże Tobie i wszystkim, którzy zrobili to samo i znaleźli Twój post w Google.
źródło
esptool.py
polecenie, ale to nie działało dla mnie. Dopiero po rozbiciu go na poszczególne polecenia, po jednym na plik i przełączaniu się między nimi, w końcu mogłem przywrócić oprogramowanie AT. Dzięki za podpowiedź!esptool.py
który jest dostarczany z ESP32 IDF (v2.1-beta1) i ten działa z powodzeniem za pomocą jednego polecenia, aby flashować wszystkie pliki na moim ESP8266 (który również obsługuje) - więc tylko jeden cykl zasilania + GPIO0- Wymagany GND.Korzystanie z tego oprogramowania układowego: https://developer.mbed.org/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266-Firmware
i ten flasher: http://yaab-arduino.blogspot.com.br/2015/12/flashing-esp8266-firmware-arduino.html udało mi się odzyskać moją esp 8266 12f
źródło
Wygląda na to, że masz problem z zasilaniem. Jaka jest twoja ocena zasilacza? i spróbuj dodać mały kondensator między vcc a ziemią. Również dobrym pomysłem jest zaktualizowanie oprogramowania do wersji 0.9, która ma problem z szybkością transmisji.
Nowe oprogramowanie można znaleźć na stronie https://github.com/espressif/esp8266_at
źródło