12章:ESP-WROOM-02のファームウエア書き換え方法の検討

    作成2015.10.29

  1. 超小型USBシリアル変換モジュール
     USBシリアル変換モジュールはこれまで手持ちが無く、AE-USBPIC44基板使用シリアル-USB変換モジュールを代用してきましたが、通信速度115200bpsで連続の送受信をすると、エラー率の増加が確認されました。
     そこで、以下の超小型USBシリアル変換モジュールを購入しました。
    購入先;秋月電子通称
    名称:超小型USBシリアル変換モジュール[AE-FT234X]
    価格:¥600
     外観を以下に示します。(かなり、コンパクトです。)
    *すんなり動作しました。(黒=GND、青=TX、緑=RXを接続します。)





  2. ESP-WROOM-02のファームウエア書き換え方法の参考アドレス
     ねむいさんのぶろぐ
    ESP-WROOM-02を使ってみる2 -外付けSPIフラッシュの書き換え
    http://nemuisan.blog.bai.ne.jp/?eid=215341
    **2015.10.16更新
    **最新版に更新されており、丁寧に解説されています。


  3. [SDK Release] esp_iot_sdk_v1.4.0_15_09_18のダウンロード
    (1)ダウンロード
      以下のアドレスからダウンロードします。
    http://bbs.espressif.com/viewtopic.php?f=46&t=1124
    esp_iot_sdk_v1.4.0_15_09_18.zip
    (2.06 MiB) Downloaded 4468 times
    をクリックするとダウンロードが始まります。

    (2)必要なファイルの場所
     解凍後
    *\esp_iot_sdk_v1.4.0_15_09_18\esp_iot_sdk_v1.4.0\binフォルダー内に
    blank.bin
    boot_v1.4(b1).bin
    esp_init_data_default.bin
    \esp_iot_sdk_v1.4.0_15_09_18\esp_iot_sdk_v1.4.0\bin\at\1024+1024フォルダー内に
    user1.2048.new.5.bin
    があります。

     また、\esp_iot_sdk_v1.4.0_15_09_18\esp_iot_sdk_v1.4.0\bin\at\readme.txtにはファームウエアの設定条件が記載されています。その一部を以下に示します。

    ***********************BOOT MODE***********************
    download:
    Flash size 8Mbit: 512KB+512KB
    boot_v1.2+.bin 0x00000
    user1.1024.new.2.bin 0x01000
    esp_init_data_default.bin 0xfc000 (optional)
    blank.bin 0x7e000 & 0xfe000

    Flash size 16Mbit: 512KB+512KB
    boot_v1.2+.bin 0x00000
    user1.1024.new.2.bin 0x01000
    esp_init_data_default.bin 0x1fc000 (optional)
    blank.bin 0x7e000 & 0x1fe000

    Flash size 16Mbit-C1: 1024KB+1024KB
    boot_v1.2+.bin 0x00000
    user1.2048.new.5.bin 0x01000
    esp_init_data_default.bin 0x1fc000 (optional)
    blank.bin 0xfe000 & 0x1fe000

    Flash size 32Mbit: 512KB+512KB
    boot_v1.2+.bin 0x00000
    user1.1024.new.2.bin 0x01000
    esp_init_data_default.bin 0x3fc000 (optional)
    blank.bin 0x7e000 & 0x3fe000

    Flash size 32Mbit-C1: 1024KB+1024KB
    boot_v1.2+.bin 0x00000
    user1.2048.new.5.bin 0x01000
    esp_init_data_default.bin 0x3fc000 (optional)
    blank.bin 0xfe000 & 0x3fe000


  4. Flash書き込みツールのダウンロード
    (1)ダウンロード
      以下のアドレスからダウンロードします。
    http://bbs.espressif.com/viewtopic.php?f=5&t=433
    FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar
    (5.44 MiB) Downloaded 2177 times
    をクリックしてダウンロードします。

    (2)解凍と保存場所
     アーカイブ解凍ソフトで解凍して、適当な場所に保存します。


  5. フラッシュレイアウト説明書のダウンロード
      以下のアドレスからダウンロードします。
    http://bbs.espressif.com/viewtopic.php?f=10&t=175
    2A-ESP8266__IOT_SDK_User_Manual__EN_v1.1.0.pdf
    (1.17 MiB) Downloaded 200 times
    をクリックしてダウンロードします。
    *英文の説明書ですが、\esp_iot_sdk_v1.4.0_15_09_18\esp_iot_sdk_v1.4.0\bin\at\readme.txtの設定条件と一致しません。


  6. フラッシュ書き換え前のボーレート76800bps受信データ
     フラッシュ書き換え前のボーレート76800bps受信データを以下に示します。
    ets Jan 8 2013,rst cause:1, boot mode:(3,0)

    load 0x40100000, len 1396 room 16
    tail 4
    chksum 0x89
    load 0x3ffe8000, len 776, room 4
    tail 4
    chksum 0xe8
    load 0x3ffe8308, len 540, room 4
    tail 8
    chksum 0xc

    csum 0xc0

    2nd boot version : 1.4(b1)
    SPI Speed : 40MHz
    SPI Mode : QIO
    SPI Flash Size & Map: 8Mbit(512KB+512KB)
    jump to run user1 @ 1000


    SDK??jtN?g? ??cb&b g? ??h???


  7. .Flash size 32Mbit-C1: 1024KB+1024KBモードでのフラッシュ書き換え
    (1)設定条件
    boot_v1.2+.bin 0x00000
    user1.2048.new.5.bin 0x01000
    esp_init_data_default.bin 0x3fc000 (optional)
    blank.bin 0xfe000 & 0x3fe000

    (2)USBシリアル変換モジュールをパソコンに接続し、デバイスマネージャーのポートで接続ポートを確認します。 (COM14に接続しました。)

    (2)ESP-WROOM-02のフラッシュ書き換え時のピン設定
    *ENピン:(Chip Enable.)→Highに設定します。
    *GPIO-15ピン:(Type I/O MTDO;HSPI_CS; UART0_RTS)→Lowに設定します。
    *GPIO-2ピン:(Type I/O UART Tx during flash programming)→Highに設定します。
    *GPIO-0ピン:(Type I/O SPI_CS2)→Lowに設定します。(Lowでラッシュ書き換えモード)

    (3)ESP-WROOM-02の電源を投入します。
    (4)ESP_DOWNLOAD_TOOL_V2.4.exeをダブルクリックで起動します。
    (5)以下のように設定します。



    (6)STARTボタンを押します。
    (7)フラッシュ書き換えが完了して以下のようになります。





  8. Flash size 32Mbit-C1: 1024KB+1024KBモードでのボーレート76800bps受信データ
    (1)GPIO-0ピン:(Type I/O SPI_CS2)→Highに設定します。(フラッシュROMブートモード)
    (2)ESP-WROOM-02の電源を再投入します。
    (3)以下のデータを受信します。
    ets Jan 8 2013,rst cause:1, boot mode:(3,7)

    load 0x40100000, len 1396, room 16
    tail 4
    chksum 0x89
    load 0x3ffe8000, len 776, room 4
    tail 4
    chksum 0xe8
    load 0x3ffe8308, len 540, room 4
    tail 8
    chksum 0xc0
    csum 0xc0

    2nd boot version : 1.4(b1)
    SPI Speed : 40MHz
    SPI Mode : QIO
    SPI Flash Size & Map: 32Mbit(1024KB+1024KB)
    jump to run user1 @ 1000

    ??+?????)?jAj?h c?(A*rt?|??+?????)?jAj?h c?(A*rt?|??+?????)?jAj?h c?(A*rt?|

    (4)TCPサーバでの受信確認
     以下のように正常受信が確認できます。





  9. Flash size 8Mbit: 512KB+512KBモードでのフラッシュ書き換え
    (1)設定条件
    Flash size 8Mbit: 512KB+512KB
    boot_v1.2+.bin 0x00000
    user1.1024.new.2.bin 0x01000
    esp_init_data_default.bin 0xfc000 (optional)
    blank.bin 0x7e000 & 0xfe000

    (2)USBシリアル変換モジュールをパソコンに接続し、デバイスマネージャーのポートで接続ポートを確認します。(COM14に接続しました。)

    (2)ESP-WROOM-02のフラッシュ書き換え時のピン設定
    *ENピン:(Chip Enable.)→Highに設定します。
    *GPIO-15ピン:(Type I/O MTDO;HSPI_CS; UART0_RTS)→Lowに設定します。
    *GPIO-2ピン:(Type I/O UART Tx during flash programming)→Highに設定します。
    *GPIO-0ピン:(Type I/O SPI_CS2)→Lowに設定します。(Lowでラッシュ書き換えモード)



    (6)STARTボタンを押します。
    (7)フラッシュ書き換えが完了して以下のようになります。





  10. Flash size 8Mbit: 512KB+512KBモードでのボーレート76800bps受信データ
    (1)GPIO-0ピン:(Type I/O SPI_CS2)→Highに設定します。(フラッシュROMブートモード)
    (2)ESP-WROOM-02の電源を再投入します。
    (3)以下のデータを受信します。
    ets Jan 8 2013,rst cause:1, boot mode:(3,7)

    load 0x40100000, len 1396, room 16
    tail 4
    chksum 0x89
    load 0x3ffe8000, len 776, room 4
    tail 4
    chksum 0xe8
    load 0x3ffe8308, len 540, room 4
    tail 8
    chksum 0xc0
    csum 0xc0

    2nd boot version : 1.4(b1)
    SPI Speed : 40MHz
    SPI Mode : QIO
    SPI Flash Size & Map: 8Mbit(512KB+512KB)
    jump to run user1 @ 1000

    ??+?????)?jAj?h
    SDK ver: 1.4.0 compiled @ Sep 18 2015 20:55:49
    phy ver: 484, pp ver: 9.5

    ??j?l


    (4)TCPサーバでの受信確認
     以下のように正常受信が確認できます。





  11. ESP-WROOM-02のファームウエア書き換え方法の検討まとめ
    (1)超小型USBシリアル変換モジュール[AE-FT234X]はすんなり動作しました。
    (2)超小型USBシリアル変換モジュールを使用することにより、ESP-WROOM-02のファームウエア書き換えが可能となりました。
    (3)ファームウエアの書き換え条件には、BOOT MODEとNON-BOOT MODEがあります。
    (4)BOOT MODEには5通りの条件が記載されている。
    (5)Flash size 8Mbit: 512KB+512KBとFlash size 32Mbit-C1: 1024KB+1024KBの2条件でESP-WROOM-02のファームウエア書き換えを実施しました。
    (6)上記2条件ともシリアル_WIFI変換は正常に動作することが確認できました。
    (7)Flash size 8Mbit: 512KB+512KBとFlash size 32Mbit-C1: 1024KB+1024KBの2条件でESP-WROOM-02の違いはSPI Flash Size & Map: 8Mbit(512KB+512KB)かSPI Flash Size & Map: 32Mbit(1024KB+1024KB)かの違いのみでその他の違いは確認できなかった。
    (8)ESP-WROOM-02のファームウエアに異常が発生した場合は、ファームウエア書き換えで回復可能です。




13章:ESP-WROOM-02とArduinoIDEでLED点滅に行く。

トップページに戻る。