ブートローダが、最初から FLASH に載っているので Windows や Linux から ソフトだけで書き込みできる。水晶は必須で、FT232RL 並とはいえないが、わずかな外付け部品で動かせる。
AVR-CDC のようなドライバさえ充実したら、かなり使い易いものになりそう。
というわけで、こいつで少しばかり遊んでみたいと思っている。
USB のデバイスクラスのうち、CDC とか AUDIO とかを扱えるようになりたいと思っているんだが... デバイスクラスの定義は膨大で正攻法ではなかなか難しそうだ。
最初は、AVR-CDC のコードを移植することから始めれば、一応動かせるものが出来上がるに違いない。で、知識レベルが上がったところで、Atmel のコードを見ながら AUDIO に挑戦するという手順か。
配線メモ
アイテムラボ変換基板ベース

チップ入手先
デジキー520円 (09/10/19 現在 376円)
マイクロファン840円 (09/10/19 現在 577円)
評価基板
OLIMEX AVR-USB-162
サンプルコード・ドキュメント
AVR USB Software Packages
Free USB firmware for Micro-Controller
AT90USB1287用だが参考になる
USB Device Class 定義ドキュメント(www.usb.org)
HERO'S Downloadにある、AVRusb.ZIP に含まれる USB概説(USBspecs.PDF)
MAX3420Eアプリケーションノート(日本語)にある、アプリケーションノート3690 MAX3420EのUSBエニュメレーションコード(およびその他) -- USBの解説がすばらしい。
DFU (Device Firmware Update) ブートローダと対応プログラマ
USB DFU Bootloader Datasheet (pdf) -- データシートのページの下の方
AT90USB162 USB Bootloader v1.0.5 (HEX ファイル) -- Tools & Softwareのページの下の方
dfu-programmer -- Linux で使える DFU 用のプログラマ使い方の例
# dfu-programmer at90usb162 erase
# dfu-programmer at90usb162 flash test5.hex
STK526評価キットのページ Hardware User Guide の回路図に、ブートローダを(強制?)起動するボタンがある。OLIMUX AVR-USB-162 も PD7 に ボタンが接続されてて同じ。...データシートにもちゃんと載っていた。キーワードは HWB
WinAVR-20070525 / gcc-4.2.[12] + avr-libc-1.4.7 の問題点
AT90USB162/AT90USB82 が avr5 になっている。avr5 だと AT90USB162/AT90USB82 が持っていない 乗算命令を使ってしまう。
正しくは avr3 にしなければならないが、gcc も avr-libc もバグっている。当面は、乗算を使用しないようにして、乗算命令が出ていないか avr-objdump -d でアセンブラリストを出力し、チェック(mul を grep)する必要がある。
乗算命令が出るようなコードにしてしまったら、コードをなんとか変更する。それでもダメなら 次のオプションでコンパイルしてみると良いかもしれない。
-mmcu=at90usb162
↓
-mmcu=avr3 -D__AVR_AT90USB162__
avr-libc で乗算命令を使うものをリンクしてしまった場合、
まず リンクのオプションを次のように変更する。
-mmcu=at90usb162
↓
-mmcu=avr3 -Tdata=0x800100 -v
これだけでは、だめで、このときの ld のオプションを調べ、avr3/crtm103.o となっているところを avr5/crtusb162.o に変更して、ld を直接実行する。
WinAVR プロジェクトには、このバグについて だいぶ前に報告されている。次のリリースでは修正されると思う。
WinAVR-20070525 の gcc のビルド方法が分かったので、ためしにat90usb162/at90usb82 のアーキクラスを avr3 に変更する avr-gcc.exe を作ってみた。→ usb162-gcckit-0.1.zip
フロントエンドの avr-gcc.exe のみなので、サイズは小さいです (270KB)。もし困っている人がいれば、使ってみてください。
カテゴリ USB162につづく。
http://www.style-21.jp/bbs/ekousaku/index.html
というわけで、気長にやりましょう。