Bagaimana cara mengubah baudrate ESP8266 (12e) secara permanen?

11

PENTING: JANGAN GUNAKAN AT+IPR=9600! (lihat pembaruan)

Saya memiliki modul ESP8266 12E yang berkomunikasi pada 115.200 baud. Karena saya menggunakannya dengan Arduino Nano dengan SoftwareSerial hal menjadi berantakan. Jadi saya menemukan bahwa saya harus mengurangi baud rate dari modul ESP.

Saya menemukan tautan ini tentang cara melakukannya.

saya bertanya-tanya

  • Apakah ini perubahan permanen atau Anda perlu melakukan ini setiap kali setelah modul dinyalakan?

  • Bisakah saya mencapai hal yang sama dengan mengirimkan perintah dari Arduino melalui SoftSerial? Yah, saya kira tidak sejak saya mencoba dan saya selalu mendapatkan kesalahan pada AT+CIOBAUD=9600atau AT+IPR=9600.

  • Saya membaca di suatu tempat bahwa dalam versi firmware ESP8266 yang lebih baru, baud rate default menjadi 9.600. Adakah yang bisa mengkonfirmasi ini dan jika demikian, apakah lebih baik untuk mem-flash firmware yang lebih baru ini?

Vendor modul:

Ai-Thinker Technology Co.,Ltd.

Saya pikir versi firmware saat ini adalah 0.3.0. Jika saya mengirim AT+GMRsaya mendapatkan:

sending AT+GMR

response: ?AT¥TJÕ¨H(Q�²•ÉÍ¥½¹é‚r¢‚r‚r‚BÕ��Â’‚ŠªŠ¢Ò¢ªÒªÂJm
 SDK versioo:0.3.0
 Ai�½½
 ‚Šj

Lagi beberapa sampah karena baud rate yang terlalu tinggi.

Info lain pada modul:

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.

MEMPERBARUI

(*) Saya menggunakan modul FTDI232 untuk mengirim AT+IPR=9600ke modul ESP8266-12E saya dan saya merusaknya !

JANGAN GUNAKAN AT+IPR=9600PADA ESP8266 (-12E).

Saya tidak berhasil memulihkannya sejauh ini! Saya mencoba menginstal ulang tetapi saya mendapatkan pengecualian kepala tidak valid.

Pada modul baru saya mengirim AT+CIOBAUD=9600perintah dan itu berhasil. Secara permanen!

Spesifikasi modul saya:

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 
mvermand
sumber
Anda dapat mencoba serial perangkat keras? Atau tarik pin reset rendah dan kemudian berbicara dengan ESP langsung melalui USB. Mungkin periksa apakah itu berhasil.
Paul
@ Paul: nano hanya memiliki satu set port serial perangkat keras. Jadi jika saya menggunakan itu saya tidak dapat mengirim data ke Arduino Serial Monitor lagi, membuatnya sulit untuk memahami apa yang terjadi ... Tebak saya harus pergi untuk upgrade firmware.
mvermand
Anda bisa memanfaatkan serialport perangkat lunak untuk debugging? Anda akan membutuhkan kabel "usb-serial / ttl".
Paul
1
stackoverflow.com/questions/34248581/… Ini akan menjawab pertanyaan Anda.
N. Sinha
1
Tampaknya pengaturan baud rate dengan AT + IPR = 9600 juga merusak ESP01 . Saya mencoba beberapa saran di utas ini untuk memulihkannya. Solusi dalam tautan yang disediakan oleh Andre Andre Silva bekerja untuk saya.
Steffe

Jawaban:

10

Bergantung pada seberapa mutakhir versi interpreter Set Instruksi AT yang dimiliki chip Anda, dua instruksi yang Anda coba mungkin tidak valid; mereka tidak tercantum dalam dokumen Set Instruksi Set ESP8266 Espressif . Pencarian untuk "CIOBAUD" atau "IPR" dalam dokumen saat ini (versi 1.5.3) tidak membuahkan hasil.

Perintah baud rate sekarang "AT + UART_CUR" dan "AT + UART_DEF" yang mengonfigurasi seluruh UART untuk sesi saat ini atau sesi saat ini dan mendatang, masing-masing. Prototipe manual untuk perintah ini adalah:

AT+UART_DEF=<baudrate>, <databits>, <stopbits>, <parity>, <flow control>
Example:
AT+UART_DEF=115200, 8, 1, 0, 3

Saya telah menggunakan ini dan dapat mengkonfirmasi bahwa mereka berfungsi.

Apa yang saya temukan menggunakan serial perangkat lunak adalah dapat mendorong 115200 baud cukup baik untuk mengirim perintah ke perangkat (meskipun saya tidak akan membangun aplikasi yang bergantung padanya) tetapi hanya dapat membaca dengan andal hingga 9600 baud. Saya dapat mengubah tingkat baud perangkat saya dari 115200 baud menjadi 9600 melalui serial perangkat lunak; Anda hanya harus mengharapkan sampah kembali dan mengabaikannya:

// Set ESP8266 baud rate to 9600. You only need to do this once per device
set software serial baud to 115200;
send "AT+UART_DEF=9600,8,1,0,0";
set software serial baud to 9600;
// From now on, communicate with your device at 9600 baud.
JRobert
sumber
3

Saya Menghubungkan modul FTDI232 pada 115200 baud dan bisa membaca spesifikasi modul ESP8266 sekarang:

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 

Setelah itu saya mengirim AT+IPR=9600perintah, yang pertama kali melakukan trik. Tapi setelah me-reboot modul, yang saya dapatkan hanyalah respon sampah, dengan baudrate apa pun.

JANGAN KIRIM AT + IPR = 9600 KE MODUL ESP8266 (12e) ANDA

Mungkin AT+UART_DEFperintah - seperti yang disebutkan oleh JRobert - berfungsi, tetapi saya menggunakan AT+CIOBAUD=9600perintah dan itu berhasil. Secara permanen!

Saya harap ini bisa membantu orang lain.

mvermand
sumber
3

Saya membuat Esp saya juga dengan perintah yang sama. Setelah berjam-jam mencari saya menemukan cara untuk mereset esp batu bata. https://developer.mbed.org/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266-Firmware Saya harus mengatur baudrate menjadi 115200 alih-alih 9600, dan di antara file yang diunggah saya harus memutuskan sambungan esp dari daya . Saya harap ini membantu Anda dan semua orang yang melakukan hal yang sama dan menemukan pos Anda di Google.

Dirk Pitt
sumber
Kekuatan bersepeda ESP antara setiap file adalah hal utama bagi saya juga - situs lain menggabungkan semua file menjadi satu esptool.pyperintah, tetapi itu tidak berhasil bagi saya. Hanya setelah memecahnya menjadi perintah individu, satu per file, dan bersepeda di antara masing-masing, akhirnya saya dapat mengembalikan firmware AT. Terima kasih atas petunjuknya!
davidA
Juga, saya mencoba menggunakan esptool.pyyang datang dengan ESP32 IDF (v2.1-beta1) dan yang satu bekerja dengan sukses dengan satu perintah untuk mem-flash semua file pada ESP8266 saya (yang juga mendukung) - jadi hanya satu siklus daya + GPIO0- Diperlukan GND.
davidA
0

Sepertinya Anda mengalami masalah pasokan daya. Berapa peringkat catu daya Anda? dan coba tambahkan kapasitor kecil antara vcc dan ground. Juga ide bagus untuk memperbarui firmware ke 0.9 yang telah memperbaiki masalah baudrate.

Anda dapat menemukan firmware baru di https://github.com/espressif/esp8266_at

NccWarp9
sumber
Saya rasa ini bukan masalah pasokan daya. Saya memiliki catu daya eksternal yang lebih dari cukup. Saya mencoba tanpa sebelumnya dan kemudian Arduino terus restart ... Saya menemukan di forum bahwa itu karena masalah catu daya. Jadi sekarang saya baik-baik saja di sana. Saya pikir masalahnya adalah SoftSerial tidak dapat mengatasi baudrate 115k.
mvermand
1
esp benar-benar pilih-pilih, tambahkan kapasitor kecil antara vcc dan ground. Saya juga menyalakan tambang dari sumber daya eksternal dan sedang mengalami restart.
NccWarp9