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. ドライバ
    上記の AVR Studio を導入するとドライバの準備もできています。
    AVRISP mkIIを接続すると、ドライバの導入画面が出てきますので、次のものを選びます。
    1. Windows Updateについて"いいえ、今回は接続しません"
    2. "ソフトウェアを自動的にインストールする"
  3. 参考URL

接続準備

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

    武蔵野電波のデジタル式FMラジオを参照して、AVRISPmkIIと本体とを接続するようにします。
    この図を参照してわかるように、リセットピン以外は片側に集められます。
    AVRISP mkII のケーブルのピンは、2番を基準にして調べます。
    AVRISPmkIIArduino本体
    1番(ケーブルからみて2番の向こう側)MISO18番 d12
    2番(赤いケーブルに一番近いピン)Vcc20番 Vcc
    3番SCK19番 d13
    4番(ケーブルに沿って2番のとなり)MOSI17番 d11
    5番RESET1番 rst
    6番GND22番 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 が正しく表示されればうまくつながっています。
      ※ うまくいかないときは、あらかじめ Device 欄に ATmega168P を指定してから "Read Signature" を実行します。メッセージを見て、接続できたかどうかを確かめます。
      マイコン内のプログラムを消去する場合は "Erase" をクリックします。

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

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

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

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

      下位ヒューズについて変更する可能性があるのは、クロックの設定です。水晶発振器を使って 8-16MHz に設定するならば、0xFF マイコン内臓の発振回路を使うなら 0xE2 です。(他のサイトを見ると、なぜか皆さん0xE2です。0xF2 でもいいようも思います。が、試していません。きっと 0xE2 の方がいいのでしょう。)

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

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

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

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

参考


添付ファイル: filesany0151.jpg 1816件 [詳細] filesany0150.jpg 1737件 [詳細] filesany0149.jpg 2059件 [詳細] filesany0147.jpg 1722件 [詳細]

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-03-09 (土) 13:17:04