Top Page Index About Link Mail Form |
既に PICなど他のマイクロコントローラを扱い慣れた人ならともかく、全くの初心者が AVRを使う際に純正ツールの使い方で悩むことが多いようです。AVR Studio 4は開発用ツールなので多機能なのですが、それ故に「とりあえず出来合いの Intel HEXファイルを書く」場合にはどう操作したらいいか悩むでしょう。入口でつまづいてもなんなのでその方法を書いておきます。
2007.7.10
純正ツール(AVR Studio 4 + AVRISPmkII)でとりあえず HEXファイルを書き込む方法・Version 4.18 SP3編AVRISP mkIIは Atmel純正の AVRプログラマ(書き込みツール)です。多くのデバイスに対応しており、価格も 6,000円程度で比較的安価です。最近はシリアルポートの無いパソコンも多いのですが、これは USBに対応しています。純正ツールは Windows専用ですが、Linuxなどからも使うことができます。 Compass Labやマルツパーツ館などで扱っています。
まずは付属CDから AVR Studio 4をインストールします。オートスタートが ONになっている(セキュリティ上からはお薦めできませんが……)場合は左のような画面が開くと思います。開かない場合は CD-ROMの index.htmlを開きます。なお、AVRISP mkIIはまだ USBにつながないでください。
この画面の右上の「Install AVR Studio」をクリックします。
その次の画面の下の「AVR Studio 4.12 b460」をクリックします。ブラウザの設定では直接実行されるかもしれませんが、されない場合は適当なフォルダにダウンロードしてから実行します。うちの場合はファイル名は「aStudio4.exe」でした。
インストーラが起動した画面です。なんのことはない、普通のインストーラです。
使用許諾画面です。念のためよく読んでおきましょう(と書いておく)。OKなら I accept…を選択。
以降はデフォルトでインストールしていいと思いますが、途中、左のような画面が出ます。AVRISP mkIIは USBで使いますので必ずチェックを入れて有効にしてから「Next >」を押します。
インストール完了です。
2007年2月現在、AVR Studio 4 には SP4が出ていますので適用しておきましょう。公式サイトからダウンロードします。ひょっとしたらアドレスとか変わっているかもしれませんが、その時は適当に探して下さい。以前は普通にダウンロードできたような気もしますが、現在はユーザー登録が必要なようですね。たぶん無料だと思いますので個人情報を入力して aStudio4SPb498.exe を入手して下さい。
というわけでインストール画面です。
やはり USBドライバをインストールするか聴かれます。もちろん、チェックを入れて有効にしてから「Next >」を押します。
いろいろあって完了ー。
の前に AVRISP mkIIをパソコンの USBに接続します。ドライバのインストールでいろいろ聴かれると思いますが、適当に対処して下さい。また、AVRISP mkIIのファームウェアをアップグレードするかとか聴かれますのでやはり適当に対処して下さい。なお、ファームウェアのアップグレードに失敗してもあわてずに、AVR Studio 4のメニューの「Tools」→「AVRISP mkII upgrade」でアップグレードできると思います。
Windowsのスタートメニューの「プログラム」→「Atmel AVR Tools」→「AVR Studio 4」をクリックして起動します。
↓このボタンを押します。あるいは、メニューの「Tools」→「Program AVR」→「Connect...」。
AVRプログラマ(ライタ・書き込み機)を選択します。今回は AVRISP mkII(USB)ということで。
するとこのようなダイアログが出ます。なお、まだターゲット基板とつないでいないので「ターゲット基板の電源が入っていない」というエラーが出ますが、今の所は気にしないで進めて下さい。
まず、「Board」タブをクリックして左のような画面を出します。ここで、真ん中ほどの所の「Oscillator and ISP Clock」の「ISP Freq」を設定します。これは書き込む際の書き込み機側のデータ転送クロックを調整するもので、ターゲットとなる AVRのクロックの 1/4以下にします。最近の AVRは工場出荷時は 1MHzの内蔵 CR発振になっているので、最初は念のため 125kHzにしておくのがいいと思います。
クロックを選んだらその右の「Write」ボタンを押します。これを押さないとクロックが設定されません。また、これを押した場合、AVRISP mkIIの電源を切っても(というか、USBから抜いても)クロックは保存されています。以後は 128kHzとかの特に低いクロックで使わない限りは変更する必要はないでしょう。
AVRISP mkIIは赤い線の方が 1ピン側になっています。向きを間違えないように注意してください。なお、手前にある変なコネクタはわたしが作ったもので、ISPコネクタの周囲が狭くてコネクタが挿入できない場合に使います。
コネクタを挿してターゲット基板の電源を入れます。すると、AVRISP mkIIの LEDが赤から緑色に変わり、プログラム可能なことを示します。なんらかのエラーがあると点滅したりします。点滅した場合はヘルプでも見て下さい。こちらのページには有志が日本語訳したものもありますので。(利用規程などを読んでからご利用下さい)
「Program」タブをクリックします。ここの「Device」で使用する AVRの名前を選択します。まだ他のボタンは押さないで下さい。
AVRのヒューズを設定します。ヒューズは AVRの動作クロックや起動条件など、ハードウェア的かつ、基本的な動作の条件を設定するものです。
「Fuses」タブをクリックします。タブをクリックするとその時点でのターゲット基板の実際のヒューズの値が読み込まれます。これを確認して、希望する値と違っていたら設定を変更します。ちょっと面倒。
なお、間違えると ISP書き込みができなくなるヒューズ設定も存在します。特に以下は注意してください。
→Engbedded AVR® Fuse Calculator
設定を確認して、変更するなら「Program」ボタンを押します。下の所の設定値を確認して、万が一「Reading fuses …」の所の値が指定と違う場合は設定値を確認して下さい。
再度「Program」タブをクリックします。「Device」を念のため確認し、「Flash」の「Input HEX File」に書き込みたい Intel HEXファイルを入力します。もちろん、右側の「...」ボタンを押せばファイル選択ダイアログが出ます。
ファイルを選択したらお待ちかね、「Program」ボタンを押します。あっけないほど簡単に書き込んでしまうと思います。下の欄に「OK!」が並べば完了!
なお、「EEPROM」の方はデータ用 EEPROMの設定値のデフォルトファイル(*.eep)を書き込む場合のものです。プログラムの方は上記の「Flash」ですのでお間違えなく。
上記のように HEXファイルを書くだけの場合、 AVR Studio 4の GUIよりもコマンドラインツールを使ったほうが楽な場合もあります。AVR Studio 4をデフォルトでインストールすると C:\Program Files\Atmel\AVR Tools\STK500 に Stk500.exe というコマンドラインから書き込めるソフトが入っています。
これを使うには、コマンドライン(cmd.exe)を起動して呼び出すのですが、それはそれで面倒なので WSH(WindowsXP用)を書きました。下のファイルをダウンロード(名前をつけてリンク先を保存 / 対象をファイルに保存)してダブルクリックするだけで書き込みができます。
注意:WSHはウイルスもよく利用するしくみですので、実行する際は注意してください。ウイルスチェッカーなどであらかじめ調べてから実行するのがいいでしょう。もちろん、ウイルスパターンなどは常に最新の状態にして下さい。
上のファイルでは MMCboot用の設定をします。MMCboot-writeProgram.vbsでは同じフォルダに MMCboot.hexが無いとエラーになります。また、MMCboot以外のヒューズ / HEXファイルを書き込む場合は、それぞれをテキストエディタで開いて最初の所の設定を書き換えてください。
ispClock = "250kHz" stk500 = "c:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" if (MsgBox("ISPクロックを " & ispClock & " に設定します。よろしいですか?", vbYesNo Or vbQuestion, "AVRISPmkII ISPクロック設定") <> vbYes) then WScript.Quit end if Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "%comspec% /k " & """" & stk500 & """" & " -cUSB -I" & ispClock |
device = "ATmega168" efuse = "F8" hfuse = "D5" lfuse = "E2" stk500 = "c:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" if (MsgBox("device : " & device & vbNewLine & "efuse : " & efuse & " hfuse : " & hfuse & " lfuse : " & lfuse & vbNewLine & vbNewLine & "以上の設定でヒューズを書き込みます。よろしいですか?", vbYesNo Or vbQuestion, "AVRISPmkII ヒューズ設定") <> vbYes) then WScript.Quit end if Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "%comspec% /k " & """" & stk500 & """" & " -cUSB -d" & device & " -f" & hfuse & lfuse & " -E" & efuse |
device = "ATmega168" hexFile = "MMCboot.hex" stk500 = "c:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" if (MsgBox("device : " & device & vbNewLine & "HEXファイル : " & hexFile & vbNewLine & vbNewLine & "以上の設定でプログラムを書き込みます。よろしいですか?", vbYesNo Or vbQuestion, "AVRISPmkII プログラム書き込み") <> vbYes) then WScript.Quit end if Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "%comspec% /k " & """" & stk500 & """" & " -cUSB -d" & device & " -e -pf -if" & hexFile |
なんとなく調べたらこんなのがありました。
どうやら共立オリジナルのもののようです。わたしは使ったことはありませんが、操作説明書(PDF)によると WindowsXPで GUIで操作できるようです。メジャーなチップなら対応しているようですし、いいかもしれません。
2007.6.17追記。AVR-Doperでは、以下の方法は安定して動作しないのでお薦めしません。avrdudeを使って下さい。→AVR-Doperを avrdudeで使う
AVR-Doperは AVR標準の開発ツールである STK500(Ver.2)コンパチブル(サブセット)のプログラマです。その為、基本的には STK500と同じ操作法となります。
インストール(WindowsXP)
なお、上記で COMポート番号が 10以上の場合、AVR Studio 4.12からは使えなくなるようです。
AVR Studio 4から使う
基本的に AVRISP mkIIと同じです。connectボタンを押すとやはり最初にファームウェアのアップグレードするように言われますが、AVR-Doperの場合は別物ですので AVR Studioからはアップグレードできません。キャンセルしてください。(OKを押してもアップグレードは失敗します。)
「Platform」は「STK500 or AVRISP」を指定して下さい。「Port」はインストールした時のポート番号を指定します。「Auto」ではうまくいきませんでした。以降は AVRISP mkIIと同じです。ISP Freqのクロックはデフォルト値は 02h(115.2kHz)になっています。電源が切れるとデフォルト値に戻ります。
Stk500.exeから使う
ispClockが異なるのと -cUSB オプションを -cCOMx (←COMポート番号を指定する)に変更すればこちらのスクリプトが使えます。ispClockは以下から選ぶようにして下さい。
ispClock = "1.845MHz" 実際は 600kHz ispClock = "460.8kHz" 〃 429kHz ispClock = "115.2kHz" 〃 333kHz ispClock = "57.6kHz" 〃 273kHz ispClock = "4.00kHz" 実際は 429kHzらしいので使わない方が無難 ispClock = "1.21kHz" 〃