Top/Arduino/Arduino の自作/ブートローダを仕込む

ブートローダを仕込む

AVR Studio とドライバの導入

  1. AVR Studio 4
    • AVR Studio 4 を AVRISP mkII に付属のCD から導入。
    • あるいは、Atmel のホームページで取得して導入。
      最新バージョンは 4.18 SP2 。 (2010-06-18 (金) 20:30:00 時点)
  2. ドライバ
    よく覚えていません。あったとしても苦労なく入ったと思います。多分 CD に入っています

  3. 参考URL

接続準備

  1. 接続用のワイヤーハーネスを作る。
    いちいちジャンパーワイヤーを刺すのは面倒なので、ワイヤーハーネスのようなものを自作します。

    武蔵野電波のデジタル式FMラジオを参照して、AVRISPmkIIと本体とを接続するようにします。
    この図を参照してわかるように、リセットピン以外は片側に集められます。
    AVRISP mkII のケーブルのピンは、2番を基準にして調べます。
    AVRISPmkIIArduino本体
    1番(ケーブルからみて2番の向こう側)18番 d12
    2番(赤いケーブルに一番近いピン)20番 Vcc
    3番19番 d13
    4番(ケーブルに沿って2番のとなり)17番 d11
    5番1番 rst
    6番22番 gnd
    sany0150.jpg sany0147.jpg sany0149.jpg

ブートローダの書き込み

  1. 接続する。
    AVRISPmkIIとは別に電源を確保する必要があります。上の写真のように電源供給用に USB ケーブルを接続します。
    なお、パソコン本体を保護するために、2ポートのUSBハブをかませるといいかもしれません。
    sany0151.jpg
  2. AVR Studio を起動と接続の確認
    1. 起動直後に立ち上がる Window は Cancel で消去する。
    2. 小さなチップに "Con" と書かれたアイコンをクリック。Platform-> AVRISP mkII と Port-> USB を設定して Connect。
      初回はいろいろと言われますが、適当に処理します。
    3. 開いた Window の左上のタブの Main をクリック。つづいて、"Read Signature" をクリックします。ATmega168P が正しく表示されればうまくつながっています。
      マイコン内のプログラムを消去する場合は "Erase" をクリックします。

  3. ブートローダの書き込み
    1. 引き続き、左上のタブの Program をクリック。
    2. Flashの欄のファイル選択メニューから、ブートローダを選びます。ブートローダは hex という拡張子がついています。
      ここで説明している USB 直結タイプならV-USBから取得した圧縮ファイル内にある
      USBaspLoader.2009-03-20/firmware/hexfiles/mega168_16mhz.hex
      です。
      ここで説明している Duemilanoveタイプなら Arduino 本体の中にある
      arduino-018/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_diecimila.hex
      です。
    3. Program をクリックしてブートローダを書き込みます。
    4. Verify をクリックすれば、マイコン内のブートローダが指定したファイルの中身と一致するか確かめることができます。

  4. ヒューズビットの書き込み
    1. 引き続き、左上のタブの Fuses をクリック。
    2. EXTENDED, HIGH, LOW の欄に書かれた 16進数を編集します。 実際どのような設定にするかは、マイコンATmega168Pのマニュアルを読むことをお勧めします。私が簡単にまとめたものはこちらを参照してください。以下は参考にしてください。

      拡張ヒューズについて変更する可能性があるのはブートローダのサイズです。これを最大(2Kbyte, 1024ワード)にするならば 0xF8 です。(Arduino の資料を見たり、avrdudeを用いる場合は違います。詳しくはこちらを参照のこと。)

      上位ヒューズについて変更する可能性があるのは、BOD(電圧が低下したときに何Vで停止するか)の設定です。設定しないなら 0xDF 2.7Vで停止するなら 0xDD 4.3V で停止するなら 0xDC です。

      下位ヒューズについて変更する可能性があるのは、クロックの設定です。水晶発振器を使って 8-16MHz に設定するならば、0xFF マイコン内臓の発振回路を使うなら 0xF2 だと思います。

    3. 編集を終えたら Program をクリックして書き込みます。
    4. Verify をクリックすれば、マイコンに記録されたフューズビットが、画面に表示されているものと一致するか確かめることができます。

  5. ロックビットの書き込み
    1. 引き続き、左上のタブの Lock bits をクリック。
    2. 16進数を編集して Program をクリック。具体的にどのような Lock Bits にするかは、私が簡単にまとめたものを参照してください。プログラムのバクや秘密を守る必要を考えなければ、0xFFでよさそうです。(Arduino の資料を見たり、avrdudeを用いる場合は違います。詳しくはこちらを参照のこと。)
    3. Verify をクリックして確かめることができます。

  6. 作業の様子
    以上の作業の様子を(ビデオ(YouTube))にしてみました。

AVR Studio 4 と avrdude の違いについて

参考


トップ   新規 検索 最終更新   ヘルプ   最終更新のRSS