ESP8266(12e)のボーレートを永久に変更する方法は?


11

重要:使用しないでAT+IPR=9600ください!(更新を参照)

115,200ボーで通信するESP8266 12Eモジュールがあります。私はSoftwareSerialのArduino Nanoでそれを使用するので、物事が乱雑になります。ESPモジュールのボーレートを下げる必要があることがわかりました。

私はそれを行う方法についてこのリンクを見つけました。

不思議なんだけど

  • これは恒久的な変更ですか、それともモジュールに電源を投入した後で毎回行う必要がありますか?

  • SoftSerialを介してArduinoからコマンドを送信することで同じことを達成できますか?ええと、私は試したのでそうではないと思いますし、常にAT+CIOBAUD=9600やでエラーが発生しAT+IPR=9600ます。

  • ESP8266の新しいファームウェアバージョンでは、ボーレートはデフォルトで9,600に設定されています。誰かがこれを確認できますか?そうであれば、この新しいファームウェアをフラッシュする方が良いですか?

モジュールのベンダー:

Ai-Thinker Technology Co.,Ltd.

ファームウェアの現在のバージョンは0.3.0だと思います。送信する AT+GMRと、次のようになります。

sending AT+GMR

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

ボーレートが高すぎるため、やはり一部のゴミです。

モジュールの他の情報:

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.

更新

(*)FTDI232モジュールを使用してESP8266-12Eモジュールに送信AT+IPR=9600しましたが、ブロックしました

AT+IPR=9600ESP8266(-12E)では使用しないでください。

今までなんとか回復できませんでした!再フラッシュを試みましたが、無効なヘッド例外が発生します。

新しいモジュールでAT+CIOBAUD=9600コマンドを送信し、それが機能しました。永久に!

私のモジュール仕様:

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 

ハードウェアシリアルを試すことができますか?または、リセットピンをLowにしてから、USBを介して直接ESPと通信します。それらが機能するかどうかを確認する場合があります。
ポール、

@Paul:nanoには、ハードウェアシリアルポートのセットが1つだけあります。したがって、これらを使用すると、Arduinoシリアルモニターにデータを送信できなくなり、何が起こっているのかを理解することが難しくなります...ファームウェアのアップグレードに行く必要があると思います。
mvermand 2016年

デバッグにソフトウェアシリアルポートを利用できますか?ただし、「usb-serial / ttl」ケーブルが必要です。
ポール

1
stackoverflow.com/questions/34248581/…これはあなたの質問に答えます。
N.Sinha

1
AT + IPR = 9600でボーレートを設定すると、ESP01もブリックされるようです。私はそれを回復するためにこのスレッドでいくつかの提案を試みました。Marco Andre Silvaが提供したリンクの解決策は私のために働いた。
Steffe

回答:


10

チップに搭載されているAT命令セットインタープリターの最新バージョンによっては、試した2つの命令が有効でない場合があります。EspressifのESP8266 AT命令セットドキュメントにはリストされていません。現在のドキュメント(バージョン1.5.3)で「CIOBAUD」または「IPR」を検索しても、結果は返されません。

現在のボーレートコマンドは「AT + UART_CUR」と「AT + UART_DEF」になり、現在のセッションまたは現在と将来のセッションのUART全体をそれぞれ構成します。コマンドのマニュアルのプロトタイプは次のとおりです。

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

私はこれらを使用し、それらが機能することを確認できます。

ソフトウェアシリアルを使用して見つけたのは、コマンドをデバイスに送信するのに十分な115200ボーをプッシュできることです(ただし、それに依存するアプリケーションを構築することはありません)。ただし、確実に読み取ることができるのは最大9600ボーまでです。デバイスのボーレートをソフトウェアシリアル経由で115200ボーから9600に変更できました。あなたはただゴミが戻ってくることを期待してそれを無視する必要があります:

// 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.

3

私は115200ボーでFTDI232モジュールを接続し、ESP8266モジュールの仕様を今すぐ読むことができました:

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 

その後、私はAT+IPR=9600コマンドを送信しました。しかし、モジュールの再起動後、私が得たのは、任意のボーレートでのガベージレスポンスだけでした。

AT + IPR = 9600をESP8266(12e)モジュールに送信しないでください

たぶん、AT+UART_DEFコマンドは-JRobertが述べたように-機能しますが、AT+CIOBAUD=9600コマンドを使用する と機能しました。永久に!

これが他の人の役に立つことを願っています。


3

私も同じコマンドでEspをブリックしました。何時間も検索した後、私はレンガのespをリセットする方法を見つけました。https://developer.mbed.org/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266-Firmwareボーレートを9600ではなく115200に設定する必要があり、アップロードするファイル間で、ESPを電源から切断する必要がありました。あなたと同じことをして、Googleであなたの投稿を見つけたすべての人に役立つことを願っています。


各ファイル間でESPの電源を再投入することも私にとって重要なことでした。他のサイトではすべてのファイルを1つのesptool.pyコマンドに結合していますが、それではうまくいきませんでした。それをファイルごとに1つずつ個別のコマンドに分割し、各コマンド間を循環させて初めて、ATファームウェアを復元できるようになりました。ヒントをありがとう!
davidA 2017

また、esptool.pyESP32 IDF(v2.1-beta1)に付属のを使用してみたところ、単一のコマンドで正常に動作し、ESP8266(これもサポートしています)のすべてのファイルをフラッシュできるため、電源サイクルが1回+ GPIO0- GNDが必要です。
davidA 2017


0

電源の問題が発生しているようです。あなたの電源定格は何ですか?そして、VCCとグランドの間に小さなコンデンサを追加してみてください。また、ファームウェアをボーレートの問題が修正された0.9に更新することもお勧めします。

https://github.com/espressif/esp8266_atで新しいファームウェアを見つけることができ ます


これは電源の問題ではないと思います。私は能力以上の外部電源を持っています。私は前に試さなかった後、Arduinoが再起動し続けました...フォーラムで電源の問題が原因であることがわかりました。だから今は元気です。SoftSerialが115kボーレートに対応できないことが問題だと私は本当に思います。
mvermand

1
espは本当にうるさいので、vccとグラウンドの間に小さなコンデンサを追加します。私も外部電源から鉱山に電力を供給しており、再起動が発生していました。
NccWarp9
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.