■ USBasp ハードウェア編
最近のパソコンではUSB I/Fしか付いてないものが増えてきました。ノートPCでは殆どがそうなってきています。
当然のことながら、AVR用のライターもUSB I/Fのものが欲しくなりますが、高価であったり、自作するのに複雑であることは望ましくあり
ません。
ここでは、以前から気になっていたUSBaspライターを作ってみましたので紹介します。
このライターは、専用のUSB I/Fを使用せずAVRマイコン1個だけでUSB I/Fとライターの機能を実現しています。
回路もシンプルであり、自作にはうってつけです。「FRISK」ケースを使った自作シリーズとしてこのUSBaspを作ってみました。
参考にした大元のサイトはここです。 http://www.fischl.de/usbasp/
使用したマイコンは、手持ちのATMega8を使いました。
回路図は、上記のサイトと同じものですが、パターンを書くのに見難かったので書き直しました。
製作の工程は、当局のBLOG 「QRPな自作の日記」の http://blog.toshnet.com/article/5044131.html を参照ください。

USBasp回路図(BSchファイル)
パターンは、下記の写真用に出来上がりました。

USBaspパターン図(Pcbeファイル:ラベル印刷図含む)
部品を実装した写真です。

「FRISK」ケースに実装した状態です。XTALはまだ付いていません。

実は、XTALが背の低いのが無くて、マイコンの上に寝かせたのですが、ちょっとだけ厚みが厚く蓋が閉まりませんでした。
あとは実力行使です。蓋に穴を開けてしまいました。

しかし、ラベルを貼って無事仕上がりました。

「FRISK」ケースと比較した写真です。

■ USBasp ファームウェア編
さて、ハードウェアは出来上がりましたが、これにプログラムを書き込まないことには動きません。
ライターを作るのにライターがいることになり、まさに「鶏と卵」です。
当局の場合は、既にライターを自作して所有していますのでこれを使用して書き込みました。
ライターが無い方は「SampleElectronics互換」ライターなどを作って書き込むかどなたかに書き込んで貰うか等の手助けが必要となるで
しょう。
このライターに書き込むファームウェアは下記のサイトにあります。
http://www.fischl.de/usbasp/
このサイトの usbasp.2007-07-23.tar.gz (176 kB) をダウンロードして解凍します。
ここで解凍したソフトウェアはソフトウェア編でも使用するWindowsのUSBドライバが含まれています。
ライターに書き込むファームウェアは、binフォルダの中のfirmwareフォルダの中のhexファイルを使用します。
フォルダの中には、Mega8用とMega48用の2種類があります。
当局の場合、Mega8を使用しましたのでMega8用のhexファイルをマイコンに書き込んで出来上がりです。
(Mega48での動作も確認ができました:'07/8/18)

※Fuse Bitの設定:新品のマイコンの場合、そのままではUSBasp用として使用できません。
下記のavrdude-GUIを使って、ファームウェア書き込み後にFuse Bitを下記の通りの値に設定します。
Mega8 Mega48
hFuse D9 DF
lFuse EF E7
この設定の内容は、①動作クロック 1/8動作を禁止する ②外部XTAL動作クロックとする です。
ちなみに、Lock Bit はどちらも 3F でした。 いじらない方が良いでしょう。
■ USBasp ソフトウェア編
USBaspはAVRマイコン1個でUSBインターフェースとライター機能を保有し使い勝手がいいことから、色々な方が検討されています。
しかし、いずれもビルドアップされているため素人が使おうとした時に、何をどうインストールすればよいのか体系的にわかりやすいものは
あまり見かけませんでした。
ここでは、その過程は省略し、できるだけシンプルに使うためのソフトウェアのインストールの仕方を纏めて見ました。
(1) 必要なソフトウェア
USBaspを使うために必要なソフトウェアは、基本的にに次の3種類です。(USBaspのファームウェアは除いています)
①USBaspのWindows用のUSBドライバ
②USBasp用のDOS用のEXEファイル
③USBaspをWindws上で操作するためのGUIソフトウェア
(2)ソフトウェアのダウンロードとインストール
それでは、実際に必要なソフトウェアをダウンロードし、インストールします。
①USBaspのWindows用のUSBドライバ
USBaspのWindowsドライバーはここでダウンロードします。(USBaspのファームウェアも含んでいます)
http://www.fischl.de/usbasp/
このサイトは、USBaspの大元のサイトです。
usbasp.2007-07-23.tar.gz(176kB)をクリックしてダウンロードします。
このファイルは、tarファイルとして圧縮されていますので、解凍ソフトで解凍します。解凍されたフォルダ中に「usbasp.2007-07-23」とい
うフォルダがあり、その中に、「bin」、「firmware」、「circuit」という3つのフォルダとReadme、Changelogの2つのテキストファイルがあり
ます。
それでは、手順を追ってインストールします。
まず、出来上がったUSBaspをUSB端子に接続します。
この時、画面上に下記のような「新しいハードウェアが検出されました」情報が出ればハードウェアとしてのUSBaspは動作していると
判断されます。

次に、新しいハードウェアの検索ウィザードが開きますので、一覧、または特定の場所からインストールするを選びます。

次に、検索とインストールのオプションでドライバが収納されたフォルダ(ダウンロードして解凍したフォルダ)を指定します。

インストールが完了したら、確認のためにデバイスマネージャに登録されたかを見てみます。デバイスマネージャはマイコンピュータの
プロパティから確認することができます。USBaspのUSB端子の抜き差しで、下記USBaspが検出されていることが確認されます。

これで、USBaspのUSBドライバーのインストールは完了です。
注)当局は、経験しませんでしたが、LibUSB-Win32がインストールされていない場合があるようです。この場合は書きのサイトから
ダウンロードして上記の操作をしてください。
ダウンロードサイト:http://sourceforge.net/project/showfiles.php?group_id=78138
libusb-win32-releasesをダウンロード
ダウンロードした libusb-win32-filter-bin-0.1.12.1.exe を実行します。
デフォルト設定でインストールを進めればいいと思います。
②USBasp用のDOS用のEXEファイル
次に、USBaspを動作させるための基本ソフトウェア(avrdude.exe)をインストールします。
ダウンロードサイト:http://yuki-lab.jp/hw/avrdude-GUI/index.html#download
avrdude.exe Version 5.4 実行バイナリをクリックしてダウンロードします。
ダウンロードしたファイル(avrdude-5.4-win32-bin)は、ZIPファイルですので解凍ソフトを使って解凍します。
解凍して avrdude.exe と avrdude.conf を適当なフォルダに入れます。
当局は、フォルダ「Program Files」の中にフォルダ「USB_AVR_UDE」というフォルダを作って上記の2つのファイルを移動しました。
③USBaspをWindws上で操作するためのGUIソフトウェア
次に、上記②のソフトウェアをGUIで操作するためのソフトウェアをダウンロード、インストールします。
このソフトウェアが、ライターを操作するGUIソフトの本体となります。
ダウンロードサイト:http://yuki-lab.jp/hw/avrdude-GUI/index.html#download
avrdude-GUI Version 1.0.4 実行バイナリをクリックしてダウンロードします。
ダウンロードしたファイル(avrdude-GUI-1.0.4)は、ZIPファイルですので解凍ソフトを使って解凍します。
このソフトには、インストーラーが付いていませんので、解凍したファイルは適当なフォルダに格納し、EXEファイルを適当なショートカット
を作って使用すれば良いと思います。
注)このソフトウェアは、マイクロソフトの「.NET Framework 2.0」というものを必要としています。
通常、XPのアップデートが行われていれば問題ないようですが、インストールされていない場合には下記のところからダウンロード
してインストールしてください。約22MBの大きいファイルです。
http://www.microsoft.com/downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDAAB15C5E04F5&displaylang=ja
インストールの詳細は、下記サイトで紹介されています。参考になると思います。
http://www.atmarkit.co.jp/fwin2k/dnitpro/dntech/002instdnfw/002instdnfw.html
次に、EXEファイルを起動して初期設定します。
avrdude-GUIのEXEファイルのアイコン(絵は無いシンプルなもの)をダブルクリックするとGUIが起動します。
最初に起動した時には、何も設定されていませんので図のように全てのボックスは空白となっています。

まず最初に、avrdude.exe の場所を設定します。
右側のボタンを押して、先ほど作成して格納したフォルダを開き(ここでは「USB_AVR_UDE」)、avrdude.exeを選択します。


次に、Programmerを設定します。
同様に右側のプルダウンボタンを押して、USBasp,http://www.fischl.de/usbasp/(usbasp)を選択します。

これで、準備は完了です。
次に、ここでは、基本的な使い方のみを紹介します。
まず書き込むデバイスを選択します。
右側のプルダウンボタンを押して、使用するデバイスを選択します。

次に書き込むプログラムファイルを選択します。
同様に右側のボタンを押して、書き込もうとするファイルのあるフォルダを選択し、ファイルを指定します。
これで書き込みの準備は完了です。
通常は、この後、Erase-Write-Verifyのボタンを押して書き込みが完了します。
書き込み中は、一番下側にバーが出て進捗状況がわかります。

FuseとLockBitのRead Writeボタンがありますが、一般的には外部発振、内部発振の選択などのために設定が必要です。(16進数)
この値を間違えると、書き込みができなくなるモードになったりしますので注意して使用してください。
まず、Readボタンで現在の設定を確認することをお勧めします。

使用するAVRマイコンは、せいぜい数種類ですので、この設定の表などを後ほど纏めてみたいと考えています。
BASCOM-AVRのライターはこのあたりが親切な設計になっています。
とりあえず、ここまでです。あとは自由に使いこなしてください。
■ 謝辞
このページは、AVRのライターとして、USB I/FにAVRのみを使用したUSBaspライターを開発されたFischl様、そして、その使い勝手
をよくするためにavrdude-GUIを開発されたゆきの研究室様のホームページとその作品を活用させていただいております。
心より御礼申し上げます。