PIC32でUSB HID

再びPIC32、目標のUSB HIDだ。

まず例題にあるサンプルにある"hid_basic"を試してみる。

サンプルプロジェクトを開く

  • MPLAB X IDEを起動
  • "File" -> "Open Project..."を選択
  • インストールパス(デフォルトでは、C:\microchip\hamony\v1_11")の下の"app\usb\device\hid_basic\firmware"を開き、プロジェクトフォルダーの"hid_basic.X"を開く

サンプルプロジェクトの設定の変更

  • "Projects"ペインで、"hid_basic"プロジェクトを右クリックして、"Set as Main Project"を選択
  • "Projects"ペインで、"hid_basic"プロジェクトを右クリックして、"Set Configuration" -> "pic32mx_usb_sk3_int_dyn"を選択

これでプロジェクトのデバイスやMHCのBSP情報などが更新される、判れば簡単簡単(これまた1日を要した・・・orz)

MPLAB Harmony Configuratorの設定

  • "Tools" -> "Embedded" -> "MPLAB Harmony Configurator"を選択
  • "Options" -> "BSP Configuration" -> "Use BSP?"をチェック
  • 下に"Select BSP To Use For PIC32MX470F512L"が出るので、サブツリーを開いて、"PIC32MX USB Starter Kit 3"にチェックが入っていることを確認
  • 上のセーブボタンを押す
  • 上の"Generate Code"ボタンを押す

ビルド

"Production" -> "Build Main Project"を選択

実機に焼く

  • PIC32 Starter Kit III(SK3)をPCにつなぐ
  • "Run Main Project"ボタンを押す
  • フラッシャーの選択画面が出るので、"Microchip Starter Kits" -> "Starter Kits(PKOB)"を選択する

PIC32をUSB HIDとして接続させる

実はここまでの作業では、PIC32に接続しているのではなく、ボードの裏側にフラッシュ、デバッグ用に搭載されているPIC24に接続している。
上記の作業でPIC32のFWが更新され、USB HIDとして動作するようになっているので、接続を変更する。

  • PIC32 SK3をPCから外す
  • PIC32 SK3からUSB mini Bケーブルを外して、代わりにUSB micro Bケーブルをつける、コネクターは基板裏面にある

初めに基板のPKOBのLEDが点灯し、しばらく経つとPIC32の電源のLEDとLED3が点灯、PCのデバイス認識が終わるとLED2も点灯するはずだ。
PCのデバイスマネージャーで見てみるとVIDが0x04D8、PIDが0x003Fのデバイスが認識されているはずだ。
これがUSB HIDとして認識されたPIC32 SK3だ。

テストソフトの起動

C:\microchip\hamony\v1_11\app\usb\device\hid_basic\binに"GenericHIDSimpleDemo.exe"なるexeファイルがあるので、起動する。
"Connect"ボタンを押すと、PIC32 SK3と接続する。
"Toggle LED"ボタンを押すとLED1とLED2が交互に点く。
SW1を押しながら"Get Pushbutton State"を押すと、その横のラベルが"State: Pressed"となる。


この動作の実装はapp.cに書かれているので、こいつを最初はいじくり倒すのがよいだろう。