Micrchip社が提供しているUSB汎用ドライバのサンプルプログラムを改造しました。
USB関連のファイルはかなりの数があり、依存関係がわかりにくいのでまずプロジェクトごとコピーし、今まで作ったドライバ類をリンクしていく方法にしています。
またサンプルプログラムはいろいろな種類のPIC上でも動作するようにハード構成などが細かくヘッダファイルに記述されているので非常に読みにくいのですが、これも一度ビルドが通ってから#ifdefで記述されている部分を必要なもの以外ざくざく削除していきます。
出来上がりのサイズが13872バイト、ということは追加したUSBフレームワーク部分は3kバイトぐらいのようです。
意外にコンパクトですがそれでも全プログラム容量の85%位に来ています
USBとシリアルケーブルを接続して動作確認をしています。
PC側ホストプログラムもサンプルに同梱されていました。
もともとはホスト側からUSBを介してコマンドを送り、PIC側はアナログポートを読んでその値をレスポンスに乗せてUSBで返す、というつくりですが、とりあえずレスポンスは適当な値を返し、同時に受けたコマンドコードをシリアルに流すようにしています。
USBデバイスの検出、送受信がうまくいっていることが確認できました。