Renesas Community
Renesas Community
  • User
    Join or sign in
  • Site
  • Search Community
  • User
  • Renesas Engineering Community
  • FAQ
  • HELP
  • More
  • Cancel
がじぇっとるねさすコミュニティ
がじぇっとるねさすコミュニティ
GR-ROSE ESP8266とのUSBシリアルブリッジ(ファームを書き換えたい時など)
  • Forums
  • Files
  • がじぇっとるねさす ゆーざー会 - Wiki
  • Tags
  • More
  • Cancel
  • New

 

 GR-SAKURA

 GR-KURUMI

 GR-COTTON

 GR-CITRUS

 GR-PEACH

 GR-KAEDE

 GR-ADZUKI

 GR-LYCHEE

 GR-ROSE

 GR-MANGO(*)

 SNShield

 Web Compiler

 IDE for GR

 TOPPERS関連

 女子美コラボ

 その他

 ※プロデューサミーティング中

 作り方使い方資料

 イベント関連

 作品記事

 体験記事

 その他

 

 ライブラリ

 ツール

 その他・過去ファイル

  • Replies 10 replies
  • Subscribers 439 subscribers
  • Views 4057 views
  • Users 0 members are here
Options
  • Share
  • More
  • Cancel
Related Tags
  • 3D
  • analog
  • B3M
  • DDS-XRCE
  • endif
  • esp8266
  • FIT
  • GR-ROSE
  • ICS
  • include
  • MG996R
  • MIC3
  • microSD
  • MPL3115A2
  • OLED
  • pin
  • PMOD
  • ROS
  • ROS2
  • rosserial
  • RS-485
  • RX65N
  • SDHI
  • serial
  • SmartConfigurator
Related

ESP8266とのUSBシリアルブリッジ(ファームを書き換えたい時など)

Okamiya Yuuki
Okamiya Yuuki over 4 years ago

ESP8266のファーム書き換えを行う場合、USBシリアルブリッジにするプログラムを書き込めばできます。(すみません、Flash Download Toolでの動作は未確認です)

以下、USBシリアルブリッジ+ESP8266を書き込みモードにするプログラムです。

#include <Arduino.h>
HardwareSerial* serial = &Serial6;
void setup()
{
Serial.begin(9600);
serial->begin(115200);
pinMode(PIN_ESP_EN, OUTPUT);
pinMode(PIN_ESP_IO0, OUTPUT);
pinMode(PIN_ESP_IO15, OUTPUT);

digitalWrite(PIN_ESP_IO0, LOW);// HIGHだとATコマンド
digitalWrite(PIN_ESP_IO15, LOW);
digitalWrite(PIN_ESP_EN, LOW);
delay(100);
digitalWrite(PIN_ESP_EN, HIGH);

}

void loop()
{

if(Serial.available()){
serial->write(Serial.read());
}
if(serial->available()){
Serial.write(serial->read());
}
}
  • Reply
  • Cancel
  • Cancel
  • 西村備山
    西村備山 over 4 years ago

    試してみましたが、書き込めませんでした。

    書き込みに使ったツールはArduino IDEです。Arduino IDEで作成したESP8266のファームを書き込もうとすると、下記のようなエラーが出ました。

    warning: espcomm_send_command: didn't receive command response
    warning: espcomm_send_command(FLASH_DOWNLOAD_DATA) failed
    warning: espcomm_send_command: wrong direction/command: 0x01 0x03, expected 0x01 0x04
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed
    

    試しに、同等の回路をGR-CITRUSとESP8266(単品)で組み、同等のスケッチをGR-CITRUSに書き込んで試したところ、書き込み成功しました。

    B3MシリアルサーボのほうであがっているUARTの問題が関係しているのでしょうか? しかし、Serial6は、pinMode(pin, INPUT_PULLUP)でpinの値は何になるのでしょうか?

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • 西村備山
    西村備山 over 4 years ago in reply to 西村備山
    GR-ROSEに空のスケッチを書き込んだうえで、
    ESP8266のRX,TX,EN,IO0,IO15から線を引き出して
    外部から書き換えることは出来ました。(当然ですが)
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Okamiya Yuuki
    Okamiya Yuuki over 4 years ago in reply to 西村備山
    もしかすると、シリアルバッファかもしれません。現状、256ですが1024ぐらいにしたらどうでしょうか。すみません、まだ未確認です。
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Okamiya Yuuki
    Okamiya Yuuki over 4 years ago in reply to Okamiya Yuuki
    CITRUSは1024になってます
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • 西村備山
    西村備山 over 4 years ago in reply to Okamiya Yuuki
    ありがとうございます!
    SERIAL_BUFFER_SIZEを1024に変更したところ、書き込み成功しました。

    ちなみにWebコンパイラの場合、
    gr_common/gr_common.a を一旦削除しないと
    gr_common/arduino/core/HardwareSerial.hを変更しただけでは
    ライブラリはリビルドされないんですね。
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Okamiya Yuuki
    Okamiya Yuuki over 4 years ago in reply to 西村備山
    はい、readme には書いてるのですが、ちょっと分かりづらいですね。
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Okamiya Yuuki
    Okamiya Yuuki over 4 years ago in reply to Okamiya Yuuki
    micro-RTPSが動かなかったメモリ空間の問題が解決したため、次版ではバッファを1024にしたいと思います。
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Aoki Shinji
    Aoki Shinji over 4 years ago in reply to 西村備山
    ESP8266+GR-SAKURA(USBシリアルブリッジ)が、同じようにArduino IDEからのファーム書き込みがNGで、頓挫していました。
    同じく、SERIAL_BUFFER_SIZEの変更で、すんなりOKとなりました。
    ありがとうございました。
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • 西村備山
    西村備山 over 2 years ago
    古い話題ですが、
    ファームを書き換えたESP8266を元のATコマンドファームに戻そうとしたところ、Flash Download Tool でも esptool でも通信エラーになりました。

    どうもArduino IDEと違ってこれらのツールは1024バイトのバッファでは足りないようです。
    8kバイトでも通信エラーが発生し、16kバイトに増やそうとするとビルドエラーになりました。
    やむなくSerialとSerial6以外のシリアルポートの定義を消してビルドを通したら、通信エラーはなくなりました。

    このシリアルブリッジのバイナリーをアップしておきます。Flash Download ToolでATコマンドファームを書き込まれることを確認できました。

    github.com/.../esp8266_writer_special.bin
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Okamiya Yuuki
    Okamiya Yuuki over 2 years ago in reply to 西村備山

    なるほど、そういうことですか。
    Flash Download ToolのV2.xxだと書き換えができるのに、V3.xxだと書き換えできない現象が発生していたのですが、これはUSB CDCの実装の問題だと思っていました。
    というのもGR-ROSEのPMODの部分のSerial5にUSBシリアル変換モジュールをつなげて、シリアルブリッジを作るとFlash Download ToolのV3.xxでも書き込みができたためです。(バッファ容量は1024のままで)

    今のところV-upの計画はないのですが、ROS2関連でV-upが見えてきたときに、Serialクラスのバッファをmallocで可変にできるようにしようかなと思ってます。

    GR-KURUMIとかRL78系ではバッファ容量を指定できるようにしてたのですが、RX系はやってませんでした。。

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
サイト使用条件
プライバシーポリシー
お問い合わせ
© 2010-2022 Renesas Electronics Corporation. All rights reserved.