最近、UBW(USB Bit Whacker)というものを知りました。USB搭載のPIC18Fシリーズ向けのI/Oファームウェアのようです。I/O Firmware自体は作りたいものがUSB-HIDなので使いませんが、USB越しにHEXを転送できるブートローダが独立しているようなのでPIC18F2550に入れてみました。

単に動いたというだけで、新規性など全くないのですが、一応メモ。セラロックの周波数とか書いておかないと自分が忘れそうです。
memo/UBW - 千秋ゼミに色々解説があり、ブートローダに対応したプログラマもここのを使いました。
元々PIC18F2550+USB+2ボタン2軸のフットスイッチ用基板を作ってあったので、それにRESET SWとBOOT(or PGR) SWを増設することで、UBW(及びそのブートローダ)対応になりました。
- UBW対応のハードを用意する。RESET SWはUSBケーブル抜き差しでいけるので必須ではないが、BOOT(or PGR)スイッチ(プッシュLOW)をrc2に接続するのは必須。
- PICに普通のPICライタでブートローダ(上記サイトのUBW_B_HEX7.zip、UBW本家のFirmware Bに対応)を書き込む。この部分だけは普通のライタが必要です。以前作ってあったWriter509を利用しました。Firmware Bのバージョンは1.20。オシレータとPICの種類に合ったHEXを選ぶことに注意(今回は20MHz PIC18F2550)
- MCHPFSUSB_Setup_v1.3をインストールする。Microchip純正のUSB bootloaderのドライバ(mchpusb.sys)を流用するため。
- 上記サイトから「12. UBW用書き込みツール Myboot-UBW-2008-0811.zip」を入手し、展開、Myboot.exeを起動。自分は11の旧バージョン(?)を使っていたためか正常に書き込めず嵌りました。
- ブートローダ用のドライバをインストールする。USB接続→RESET PUSH→BOOT PUSH→RESET RELEASE→BOOT RELEASEとするとブートローダが読み書き待機の状態「ブートモード」になります。先ほどインストールしたMCHPFSUSBのディレクトリ内の.\\Pc\\MCHPUSB Driver\\Releaseを指定します。(RESETが無ければBOOT PUSH→USB接続→BOOT RELEASE)
- UBW本体(Firmware D)をMybootで書き込む、またはMouseデモをMybootで書き込む。
- Mouseの場合はUSB HIDなのでそのままマウスが動き始めますが、FirmwareDはCDCデバイスなので、ドライバのインストールを要求されます。先ほどインストールしたMCHPFSUSBのディレクトリ内の.\\fw\\Cdc\\inf\\win2k_xp_vista32_64を指定します。
ちなみにMicrochipのVIDは0×04D8、FiremwareBのPID(=ブートモード時)は0×000B、MouseのPIDは0×0000、FirmwareDのPIDは0×000Aです。
これで一々ソケットからIC外したりICSPの配線をせずに、楽にUSB機器の開発・デバッグができます。