Atmel USBマウスデモ (WindowsXP SP2にて動作確認しました)
はじめに
AT90USB162はUSB搭載のAVRマイコンです。マイクロファンという会社で扱いを始めたので気軽に購入できるようになりました。 ここでは、ATMEL STK526デモボードのプロジェクトファイルを使用してUSBマウスを試してみようとおもいます。
AT90USB162データシートより抜粋
USB 2.0 フルスピードデバイスモジュール (転送完了割り込みあり)
・ 完全コンパチなUSB2.0
・ 48 MHz PLL、フルスピードバスオペレーション(データ転送レート 12 Mbit/s)
・ 完全に独立した176バイトの USB DPRAM (エンドポイントメモリ割付)
・ エンドポイント0 コントロール転送 (8〜64バイト)
・ 4つのプログラマブルなエンドポイント
・ IN / Out 方向
・ バルク、インタラプト、アイソクロナス転送
・ プログラマブルな最大パケットサイズ(8〜64バイト)
・ プログラマブルなシングルまたはダブルバッファ
1.AT90USB162 基板の準備

ユユニバーサル基板を使用
32pinQFPパッケージ(ピッチ0.8mm)なので、変換基板を使用しています。Aitem-Labさんから、比較的安価に購入できます。ピッチが広いので、細い半田を使えば楽に半田付けできるでしょう。なお、コテ先はあまり細いと熱が伝わらないので、標準の太さでいいとおもいます。
以下に回路図を示します。UCAPのコンデンサはATMEL指定の1µのコンデンサがなかったので10µの表面実装セラミックコンデンサを使用しました。スイッチのRESETとHWBはブートローダー起動用なので必ずつけてください。なお、すzさんのサイトの回路図をもとにしています。参考にしてください。
AT90USB162 USBマウス実験 回路図
電源は実験ではバスパワーを使用しましたが、外部電源も使用できるようにしました。
今回の実験に際してISPの接続は不要です。FUSEビットは工場出荷時のままです。
水晶8MHzでは、プログラムの修正なしですが、16MHzではソース修正して再コンパイルすると動作可能です。なお、プログラムは8MHzまたは16MHzだけ使用できます。
今回使用したUSB用AVRマイコンは、USBブートローダーが工場出荷時に書き込まれていて、ライター装置無しに、プログラムを書き込むことができます。
参考リンク
マイクロファンのページ (AT90USB162を購入しました)
Aitem-Labのページ(変換基板 QFP32-P8(2) を購入しました 1組2個入り)
2.開発環境の準備
AVRStudio4.13(最新版)をダウンロードしてください(再コンパイルする場合、必須)
WinAVRの最新版 2007.5.27をダウンロードしてください(再コンパイルする場合、必須)
USB ブートローダーでのプログラミングツール FLIP3をダウンロードしてください(書き込みに必須)
FLIP 3.2.2 for Windows (Java Runtime Environement included) ←通常はこちらをダウンロード
情報ページにある USB DFU Bootloader Datasheet はFLIP3について書かれています(必読)
3.マウスプログラムのダウンロードとコンパイル
AVR USB Software Packages (Atmelサイト)ここから以下のプログラムをダウンロード
AT90USB162/82 HID Mouse project (1 MB, revision 1.0.1)
解凍してできたAtmelフォルダーごとをC:\にコピーしてください。
フォルダ構成は変更しないでください。
例 c:\Atmel\at90usb162-mouse-1_0_1のようになります。
上記のgccフォルダ内のmouse.apsをダブルクリックして、AVRStudio4を起動します。
C:\Atmel\at90usb162-mouse-1_0_1\at90usb162\demo\mouse_stk526\conf\config.hを開いて、
#define FOSC 8000
上記の記述は8MHzですが、水晶16MHzなら #define FOSC 16000 に変更する必要があります。このプログラムは8MHzまたは16MHzだけ選択できます。
AVRStudio4にてBuildすると、gccフォルダにmouse.hexができます。
8MHzのmouse.hex 16MHzのmouse.hex
ご注意: mouse.hexは日本語が入ったフォルダに入れないでください。日本語フォルダはFLIPソフトで読み込めません。
4.FLIPのUSBドライバーのインストール
FLIPはUSB経由で書き込みをおこなうソフトです。ですからライターを用意する必要はありません。 ハードが完成したらUSB接続してください。Windowsがドライバーを要求してくるので、ドライバーの場所を以下にしてFLIP用のUSBドライバーをインストールします。
C:\Program Files\Atmel\FLIP 3.2.2\usb
FLIPの使用方法は開発環境の準備で説明した USB DFU Bootloader Datasheet に詳細にかいてありますので、詳しく知りたいかたはご覧ください。
5.基板のUSBブートローダー起動手順
1.USBをPCに差し込み基板と接続します。
2.基板のHWBスイッチを押します。
3.基板のRESETスイッチを押します。
4.基板のRESETスイッチを離します。
5.基板のHWBスイッチを離します。
6.これにより基板のUSBブートローダーが起動されます。
BootLoaderが起動したときのデバイスマネージャー

LibUSB−Win32 Devices ・・・・・ AT90USB162と表示されます。
6.FLIPによる書き込み手順
準備.基板のUSBブートローダーを起動しておきます
1.FLIPソフトを起動します。

2.@アイコンにてデバイス選択します。→AT90USB162
3.AアイコンにてUSBポートをOPENします。
4.Bアイコンにてmouse.hexファイルをロードします。
5.Cボタンにて消去、書き込み、ベリファイをおこない、プログラムを転送します。
7.USBデバイスとして認識
FLIPで書き込んだあと、一度USBを外してもう一度挿せば「HID準拠マウス」として認識されます。

HIDとはヒューマンインターフェースデバイスのことで、特別なUSBドライバーなしで認識されるものです。では以下のポートをGNDに接続して動作を確認してください。
ポートB4 をGNDに接続すると マウスカーソルが左に動きます。
ポートB5 をGNDに接続すると マウスカーソルが上に動きます。
ポートB6 をGNDに接続すると マウスカーソルが右に動きます。
ポートB7 をGNDに接続すると マウスカーソルが下に動きます。