FT232RLでCQ-STARMのFlashROMをリカバリー(1)

id:pcm1723:20080427:1209310807 にて面白いことが書かれていて、
BOOT0を+VCCに吊ってあげればシステムROMのシリアルダウンローダが起動するとのこと。

秋月のFT232RLモジュール使えば、ほぼ直結でいけそう。

さっそく調査&実験。

先ほどのUSBシリアルの記事はこのための複線なり。

USBダウンローダ破壊実験

Host側準備1

http://www.st.com/mcu/familiesdocs-110.html#Firmware
に行って「STM32F101xx and STM32F103xx Flash loader demonstrator」から

  • um0462.zip
  • 13916.pdf

をゲット。

um0462.zipを展開し、現れた.exeを起動してインストール。

Host側準備2

インストールされた「STMicroelectronics Flash Loader Demonstrator」。これがCOM1〜COM9までしか使えない。
id:takinoya:20080505:1210001295 の小技で若い番号にしておく(w。

Host側準備3

id:takinoya:20080503:1209980898 で作成したLED点滅サンプルの
ベースアドレスを0x08003000→0x08000000に変更しリコンパイル

FT232RLモジュールの準備
  1. 外部電源にするため、J2をオープン
  2. ブレッドボードにモジュールを刺して、TXD,RXD,VCC,GNDからリード線を出す
CQ-STARMの準備
  1. BOOT0のプルアップ電源はJ2[39]にした
  2. BOOT0はJ2[11]
    • 不注意による短絡(よくやる...)が怖いのでJ2[11]⇔ケーブル間に1KΩを挟んだ
  3. Pull-Up/Pull-Down切り替えにボックスコネクタ(?)用のコンタクトをつけたリード線を装着
    • BOOT0=1
    • BOOT0=0
  4. シリアルラインを結線
    • FT232::RXD ⇔ STARM::UART1_TX(JP2[27])
    • FT232::TXD ⇔ STARM::UART1_RX(JP2[26])
  5. VCC, GND を結線
    • USBのVBUSがいいので J4立ててそこにつなぎます
接続
  1. FT232のUSBを先につなぎます。
    • VBUSが切り離されているので何も起きないはずです。
  2. CQ-STARMのUSBをつなぎます。
    • ここでFT232が認識されるばず。
ダウンロード

クセのあるツールなのでスクリーンショットでメモ。

  1. ツールを起動
  2. Nextで次へ
  3. 先ほど認識されたFT232のポートを選んで「Next」ボタンを押します。
    • ボーレート等はそのままでいいようです。
  4. うまく接続されると以下の表示になります
    • Warning dialogが出た場合はUSBコネクタを刺し直してください。
    • 自動認識されているようですので、そのまま「Next」ボタンを押します。
  5. 機能選択画面になります。
    • DownloadをチェックしてDownloadフレーム内の「...」ボタンを押します。
  6. ファイル選択画面になります
    • binary,Intel-hex,S19に対応しているようです。
  7. 「Next」ボタンを押して次へすすみます。
    • "Verify"は書き込み後に読み出しチェックをしてくれるようです
    • "Jump to user program"は書き込み後、ユーザプログラムの先頭にジャンプしてくれるようです。
    • 「Next」ボタン押したら速攻で書き込み開始されます。
  8. プログレスバーで進行状況が表示されます
  9. 以下の表示までくれば完了です。
    • 「Finish」ボタンで終了。ってあたりまえか。
チェック
  1. FT232との接続を外す
  2. BOOT0のVCCプルアップを外す
  3. J6を閉じてUSBを再接続します。
  4. J6閉じているのにLEDが点滅
    • 成功です。
まとめ
  • FT232RLを使えば簡単な結線でFlashROM書き換えができることがわかりました。
  • 以下の場合に大いに有用か、な?
    1. 限界いっぱいまでFlashROMを使用したい。
    2. ミスってUSBダウンローダが破損した

朝が来たので残りは明日・・・