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もキーボードもつくれますね!
ラベル:
Advent Calender,
HID,
PSoC,
USB
登録:
投稿 (Atom)