HIDaspx制作 (第2回)

本文書の取り扱い

クリエイティブ・コモンズ・ライセンスこの文書は、クリエイティブ・コモンズ・ライセンスの下でライセンスされています。

HIDaspxファームウェアの書き込み

事前準備

  1. 千秋ゼミから "hidspxとHIDaspx(2種類のGUIを同梱)" をダウンロード
    • 執筆時の動作確認に用いたのは hidspx-2010-0602.zip
  2. hidspx-2010-0602.zip を解凍し、中身をc:\workに展開

AVRISP-mkIIを用いたファームウェアの書き込み手順


ハードウェアの接続


  1. HIDaspxのUSBコネクタに何も繋がっていないことを確認
  2. HIDaspxのジャンパピンを左図のように設定する

  1. AVRISP-mkIIとHIDaspxを左図のようにクロス接続する

ファームウェアの書き込み
  1. PCとAVRISP mkIIをUSBケーブルで接続
  2. PCとHIDaspxをUSBケーブルで接続
    • AVRISP mkII のLEDが両方緑色に点灯しない場合は接続に問題がある
  3. AVR Studioを起動し、AVRISP mkII に接続
  4. Programタブを選択し、 Flash に c:\work\bin\firmware中の main-12.hex を指定して Program で書き込む。
  5. Fusesタブを選択し、 下のペインのヒューズビットを以下のように
      • Low:FF, High:DB, Extended:FF
  6. 完了

HIDaspxを用いたファームウェアの書き込み手順


ハードウェアの接続
  • 二台のHIDaspxの混同を避けるために呼称を定める
    • ライター側
      • 書き込み時にライターとして用いるHIDaspx
    • ターゲット側


  1. ライター側のUSBコネクタに何も繋がっていないことを確認
  2. ライター側のジャンパピンを左図のように設定する

  1. ターゲット側の両方のUSBコネクタに何も繋がっていないことを確認
  2. ターゲット側のジャンパピンを左図のように設定する

  1. ライター側とターゲット側を左図のように接続する

ファームウェアの書き込み
  1. PCとライター側をUSBケーブルで接続
  2. PCとターゲット側をUSBケーブルで接続する
    • 誤った接続をすると、ICやUSBコネクタが発熱することがあるので注意して触ること
  3. c:\work\bin の hidspx-GUI.exeを起動
  4. Readボタンを押してデバイス情報を取得
    • 問題がなければ ATTiny2313 と表示される。
    • 表示されない場合は何か問題があるので接続などを確認する。
  5. ファームウェア main-12.hex を書き込む
    1. Flash のファイル選択ボタンから c:\work\bin\firmware の main-12.hex を選択
    2. Writeボタンを押して書き込む。
    3. 書き込みが完了したら、Verifyボタンを押して検証。
  6. ヒューズビットを書き換える
    1. 画面上部の Fuse(HEX)を以下のように設定
      • Lo:FF, Hi:DB, Ex:FF
    2. Writeを押して書き込む
  7. 完了

FT232RL USBシリアル変換モジュールとavrdudeを用いたファームウェアの書き込み手順

ハードウェアの接続



  1. ブレッドボードにAE-UM232RとATtiny2313を刺す
  2. 左図のようにAE-UM232RとATtiny2313をジャンパワイヤーで接続

ファームウェアの書き込み
  1. AE-UM232RをUSBケーブルでPCと接続
    • ドライバを求められた場合はFTDI ChipからVirtual COM Port Drivers(VCP)をダウンロードして導入する
  2. すzのAVR研究: FT245R/FT232R で avrdudeから serjtag-0.3.zip をダウンロード
  3. serjtag-0.3.zip を解凍し、binフォルダの中身を c:\work に配置。
  4. コマンドプロンプトを開き、c:\work に移動
  5. 次のコマンドを実行
    • avrdude.exe -c ft232r -P ft0 -p t2313 -B 57600
    • libusb0.dllが求められた場合はlibusb-win32からコンパイル済みパッケージをダウンロード
      • 執筆時の動作確認に用いたのは libusb-win32-bin-1.2.0.0.zip
    • 解凍後、bin\x86フォルダ内のlibusb0.dllをc:\workに配置
  • 正しく接続されている場合は以下のような出力が得られる
c:\work>avrdude.exe -c ft232r -P ft0 -p t2313 -B 57600
avrdude.exe: BitBang OK
avrdude.exe: pin assign miso 1 sck 0 mosi 2 reset 4
avrdude.exe: drain OK

 ft245r:  bitclk 38400 -> ft baud 19200
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude.exe: Device signature = 0x1e910a

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.
    • こちらの出力の場合は正しく接続されていないので結線などを確認する
c:\work>avrdude.exe -c ft232r -P ft0 -p t2313 -B 57600
avrdude.exe: BitBang OK
avrdude.exe: pin assign miso 1 sck 0 mosi 2 reset 4
avrdude.exe: drain OK

 ft245r:  bitclk 38400 -> ft baud 19200
avrdude.exe: ft245r_program_enable: failed
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to override
             this check.


avrdude.exe done.  Thank you.

以降は正しく接続されていることを前提とする

  1. 次のコマンドでhidaspxファームウェアを書き込む

    avrdude.exe -c ft232r -P ft0 -p t2313 -B 57600 -e -U flash:w:main-12.hex:i
  2. 次のコマンドでt2313に接続後、コンソールモードに入る

    avrdude.exe -c ft232r -P ft0 -p t2313 -B 57600 -t
  3. コンソールモードで次のコマンドをそれぞれ実行し、ヒューズビットを設定


    w lfuse 0 0xff
    w hfuse 0 0xdb
    w efuse 0 0xff
  4. quitコマンドを入力し、コンソールモードを抜ける
  5. USBケーブルをPCから外す
  6. ATtiny2313をブレッドボードから取り外し、作成したhidaspx基板に差し込む

正しく書き込めない場合

  1. 速やかにPC側のUSBコネクタを抜く
    • 部品が発熱している可能性があるのでHIDaspx側をいきなり触らない
  2. ISPケーブルの結線や回路を確認
  3. テスターなどでショートやケーブルの接続不良を検査
よくある誤り
  • 書き込み元(ライター側)と書き込み先(ターゲット側)のピン同士の接続を確認
    • 大抵はクロス接続になっていないことが原因
  • 書き込み元(ライター側)と書き込み先(ターゲット側)のジャンパピンの設定を確認
    • 両方のJP2をショートさせている場合は電流過多状態で大変危険
    • 両方のJP2を外している場合は電源が供給されていない状態
  • ATTiny2313の向きが正しいか確認
    • 逆に差している場合は発熱している。
    • マイコンが破損する可能性が大