歩き遍路 平成19年春(J1) 記録の準備
USBホスト(4) WinUsb
  (インターフェース2011年 8月号 )を試す

 インターフェース誌 2011年 8月号 第3章に記載のWinUsbを試しました。
 米国OSR社からUSB‐FX2学習キットボードを輸入してからかなりの時間が経ちましたが動作を確認出来ました。
 単純な間違いをして時間がかかりましたが、記事の手順とうりで動作確認出来ました。

 DOS窓のプログラムは、動作が単純なので理解がしやすいです。このプログラムは、接続下デバイスを検出するコマンドやWINUSBを操作するコマンドは複雑ですが、プログラム全体は700行程度なので理解がしやすいです。
 プログラム眺めていて、これはアプリケーションプログラムだなと安心しました。

●試したWinUsbのハードとソフト

 記事の手順に従って動作させました。
 記事は、取っつき難かったですが詳細な手順が記載してあり、大変助かりました。あえて言えば、図8の追加の依存ファイルの設定で winusb.lib と setupapi.lib のセパレータが 図は「;」、記事は「スペース」なのでと惑いました。私は、VC++2008をWindows XPの環境で使っているので「スペースにしたらビルドが出来ました。

 写真で、7セグLEDに表示の「F」は、フルスピードの事でボードのファームウエアが表示しています。






 実行画面です。DOS窓での実行です。
 ボードと接続して、64バイトのデータを送信してから受信しています。






 次に、USBスコープで見たエニュムレーションとデータ送受の遣り取りを示します。










●困ったこと



 単純なミスで時間がかかりました。恥ずかしいですが、参考に記録します。

 USB‐FX2学習キットボードをパソコンに接続して、プログラムを起動してもボードを認識しません。
 プログラムをトレースしてると、「SetupDiEnumDeviceInterfaces」コマンドの戻り値が「0」です。

 ボードをパソコンに接続した時に要求されるファイルは正しく設定した、そしてコントロールパネルでは認識されている。しかし、プログラムでは認識しない。困った。
 落ち着いて考えると、ボードをパソコンに接続した時に要求されるファイルはちょっと変だ。
 コントロールパネルでドライバの更新をして、「winusbcoinstaller2.dll」を指定したらプログラムでも認識出来ました。

 要は、ボードをパソコンに接続した時に、以前の状態で設定していて、認識しないと嘆いていました。






ホームへ戻る