2017年12月11日月曜日

PSoC5LP で USB-HIDデバイスでもしてみるか。。。( PSoC Advent Calender2017 )


PSoC Advent Calender 2017 の 記事の2こめです。

PSoC5LPにはUSB がついています。
これ、案外USB UARTくらいしかつかっていないんですが
普通にHIDデバイスとしても作ることができます。

今回はMouseにしてみます。
といっても、マウスなら、ちゃんとサンプルが用意されているんですよね。

スケマティックにUSBFSを配置して、右クリックメニューから出る
Find Code Example ...
を実行します。

すでにUSBFSが選ばれているので、関連するものがでてますね。
今回はとりあえず
USBFS_HID
を選択します。

3-Button mouseって書いてあるので、大丈夫そうですね。
よければ、Create Project を押します。

ん!エラー? はぁ???
このメッセージわかりにくいよね。まったく。
要はこれは
『そのままではインポートされていないので、Webからとってきてね!』
というメッセージ。じゃ、どうするの?ってなるんだけど、
左はしの地球のアイコンをクリックすると、勝手にダウンロードされてくるので
そのままプロジェクトをつくります。

できたプロジェクトはデバイスが PSoC3になっているので
利用するPSoC5の型番に変更します。
PrototypingKitでは、CY8C5888LTI-LP097ですね。

WorkSpace Explorerの Project部で右クリックして
Device Selecter
を出し、ここで選択しなおします。

 できたら、ビルドします。
 スケマティックをみても、USBFSしか配置されていないので、基本は
これでエラーもでないはずです。
自動でピン配置もUSBピンはセレクトされているはずなので
大丈夫なはず。

添付のPDFの最後のところに
================================
Expected Results
You should see that the device is recognized as a 3-button mouse. The mouse is continuously moving back and forth horizontally.
================================
ってなっているので、マウスになってカーソルを水平移動でうごかすよ。
ってよめますね。

うごきましたか?
で、この設定、どこできまるんだ?ってことなんですが
一番わかりにくいのは HID Report Descriptersなんですよね。


なんじゃそら、と。

Device Class Definition for HID 1.11 (PDF)

を参照してみてください。
page81 (表題ページ番号71)にマウスの定義サンプルが挙げられています。


ね、このとおりの定義を書いてるだけですね。

あとは 3バイト用意して、一定のタイミングで
値をセットしておくりかえせばいいんですね。

このやりかたをしっておくと、JoyStickもキーボードもつくれますね!


0 件のコメント:

コメントを投稿