![日記@BlogRanking](http://img.diary-ranking.com/banner03s.gif)
さて、目標であったUSBデバイスへ挑戦する。
先ずは、mikroBASIC 組み込みの USB HID Library を使ったサンプルプログラムを
コンパイルしてみたが、demo版の制限でダメでした。
ネットであちこち探しまくっていたが、なんのことは無い、本家でよかったのだ。
マイクロチップ テクノロジー ジャパン社のHPにある、「PIC関係のリンク」に載っている
「USBコントローラ内蔵のPIC18F2550の使用例」が、ピッタリであった。
早速動かしたいところだが、その前に、C18 コンパイラが必要だ。
C言語は知らないけど、何とかなるだろうと、インストールしMPLAB に登録した。
上記HPからDLしたものからクロック数の変更だけで、コンパイル/リンクし、
tiny bootloader で書き込み、添付のテストプログラムを動かした。
![](https://blogimg.goo.ne.jp/img_emoji/hand_goo.gif)
Microchip社のUSBブートローダでなくても、tiny bootloader でも共存可能だ。
(当たり前の話だけど。リンカースクリプトが読めれば。
マイクロチップ社のUSBブートローダは0番地から常駐し、
ターゲットプログラムは 0x800 からになる。
一方、tiny bootloader はROMの最上位番地に常駐する。)
で、このUSBデバイスは、デバイスクラスの分類では「汎用」なので、
デバイスドライバ(inf ファイルと、sys ファイル)が必要であり、
PCでプログラミングするなら、DLL が必要になる。
その他のデバイスクラスとしては、CDC、HID、Mass Storage がある。
HIDクラスはさらに、「マウス」「KB」「汎用」に分かれる。
デバイスドライバなどの要否は、
inf sys DLL
汎用 要 要 要 : 上記の通り。
CDC 要 不要 : システム標準でOK。(serial on usb)
HID
マウス 不要 : システムが入力デバイスで使用。(直接入力不可?)
KB 不要 : システムが入力デバイスで使用。(直接入力不可?)
汎用 不要 不要 不要*
(訂正:* kernel32、hid.dll を使うので、宣言(ヘッダーファイル)は必要。)
それで、このサンプルUSBデバイスを ActiveBASIC プログラムでアクセスしてみたい。
同梱されていた、柏野政弘さん作のドライバでは、どうしても上手くいかない。
1回目はOKで、2回目はライト(PC->PIC)出来るが読み込みでストールする。
悪戦苦闘の末、MICROCHIP社のmchpusb.sysなるデバイスドライバにすることにした。やっと、PCソフトも完成し、
PCからPIC(USB・汎用デバイス)への出力・入力が完成した。
![](https://blogimg.goo.ne.jp/img_emoji/hakushu.gif)
お手数をおかけします。2クリック(投票を)お願いします ⇒
![日記@BlogRanking](http://img.diary-ranking.com/banner03s.gif)