USB_CUSTOM
PIC32MXでUSB高速カスタムデバイスを実装してみる。
- MicroChipのUSBフレームワークの「USB Device - WinUSB - High Bandwidth 」を試してみます。
- これは、Windowsで規定されているどのクラスドライバーにも属さない、いわゆるバルクデバイスになります。
- Windowsドライバーは標準のものが存在しないのでカスタムで作るしかないのですが、WinUSBというWindowsに用意されたDLLを呼び出すことで、LibUSBとほぼ同じように手軽にアプリケーションを書くことも出来ます。
- では、早速MX220F032Bに移植してみました。
ダウンロード
- 上記アーカイブは例によってブートローダー起動、PicKit2ライター直接書き込みの両対応HEXになっています。
- 書き込んだら、Windows_Infにあるドライバーを組み込んで、HighBandwidthWinUSB.exe を起動します。
- GUIのボタンを押すとスループットを計測してくれます。
- 毎秒1MBのスループットが実現できました。
- FullSpeed USBの信号の変調速度は12M b.p.sなので、ほぼ理論値に近い転送が行なわれています。
- 実際にはUSBパケットのプリアンブルやチェックサムなどのオーバヘッドと、連続した1が並んだ場合のbit stuffingが行なわれますので、それを加味しても充分に速いといえます。