趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
どうやらpickit2からの5V給電に問題があるっぽい気がする。
PIC18F4550のVCCに5Vを直接与えて書き込めばハングしにくくなった。。。でも面倒だよ。。。
→(後日追記)pickit2ライターのプログラムを最新にしたらハングしなくなりました。
ということで、「仮称:Thinkpad X22キーボードをUSBキーボードに変えるよ君」を作ろうと
成人の日にがんばってみた。
要件をまとめると
1.USB keyboard機能だけでなくUSB mouseの機能も必要
2.トラックポイントの出力をUSB mouse出力する
3.キーマトリックスを読み取って、USB keyboard出力する。
4.USB mouseとUSB keyboardは1つのUSBポートへちゃんぽん出力する。
で、これをどう実現していくかだけど、
1.Microchip MCHPFSUSB Framework にサンプルがあるので、それを使えば簡単。ためしてみたけど、コンパイルしてPICに書き込んで、即キーボードとして動作した。(マウスのサンプルは未確認だが同じだろう)
2.最近(でもないか)のThinkpadキーボードのTrackpointはPhilips TPM754A(Microcontroller with TrackPoint microcode from IBM)というコントローラでアナログ抵抗値(というか電圧)を読み取っている。で、こいつはPS/2出力する。PCのPS/2ポートと直結(要プルアップ抵抗)すれば、マウスとして動く。これをUSBにするためには、PS/2のホスト機能が必要。デバイス側はいくらでも作ったけど、ホスト側はつくったことない。でもまあ、簡単だろう。
3.簡単。これ以上いうことなし。すぐできる。
4.こういうのをcomposite deviceというらしい。これってPIC18で簡単に実装できそうに見えるけど、じつはできないのだ。なぜか?それは、Microchip MCHPFSUSB Frameworkがkeyboardとmouseのcomposite出力に対応していないからだ。
これをどうしても実現したければ、それはもう力技しかない。USBフレームワークを自分で作るしなないのだ。
USBプロトコル超初心者の俺に作れるわけがない。ということで、だれか作っていないか探してみた。
あった。
http://forum.microchip.com/tm.aspx?m=346640&mpage=2
RE: HID boot-keyboard & mouse on same device?
ものすごく面倒だけど、フレームワークを手作りする方法が書いてある。
内容はまったく理解できないが、とりあえず書いてあるとおりやってみた。
さて、動け・・・。。。。
ぜんぜん動かん!
おれがUSBフレームワークを理解できるようになるか、だれかがこれに対応したUSBフレームワークを公開するまでペンディング。
「仮称:Thinkpad X22キーボードをPS/2キーボードに変えるよ君」に計画変更しようかな。。。
これならとっても安いPIC16F887で済むし。
でも、マウスとキーボードでケーブルが2本出るのはちょっとかっこ悪いなあ。
PIC18F4550のVCCに5Vを直接与えて書き込めばハングしにくくなった。。。でも面倒だよ。。。
→(後日追記)pickit2ライターのプログラムを最新にしたらハングしなくなりました。
ということで、「仮称:Thinkpad X22キーボードをUSBキーボードに変えるよ君」を作ろうと
成人の日にがんばってみた。
要件をまとめると
1.USB keyboard機能だけでなくUSB mouseの機能も必要
2.トラックポイントの出力をUSB mouse出力する
3.キーマトリックスを読み取って、USB keyboard出力する。
4.USB mouseとUSB keyboardは1つのUSBポートへちゃんぽん出力する。
で、これをどう実現していくかだけど、
1.Microchip MCHPFSUSB Framework にサンプルがあるので、それを使えば簡単。ためしてみたけど、コンパイルしてPICに書き込んで、即キーボードとして動作した。(マウスのサンプルは未確認だが同じだろう)
2.最近(でもないか)のThinkpadキーボードのTrackpointはPhilips TPM754A(Microcontroller with TrackPoint microcode from IBM)というコントローラでアナログ抵抗値(というか電圧)を読み取っている。で、こいつはPS/2出力する。PCのPS/2ポートと直結(要プルアップ抵抗)すれば、マウスとして動く。これをUSBにするためには、PS/2のホスト機能が必要。デバイス側はいくらでも作ったけど、ホスト側はつくったことない。でもまあ、簡単だろう。
3.簡単。これ以上いうことなし。すぐできる。
4.こういうのをcomposite deviceというらしい。これってPIC18で簡単に実装できそうに見えるけど、じつはできないのだ。なぜか?それは、Microchip MCHPFSUSB Frameworkがkeyboardとmouseのcomposite出力に対応していないからだ。
これをどうしても実現したければ、それはもう力技しかない。USBフレームワークを自分で作るしなないのだ。
USBプロトコル超初心者の俺に作れるわけがない。ということで、だれか作っていないか探してみた。
あった。
http://forum.microchip.com/tm.aspx?m=346640&mpage=2
RE: HID boot-keyboard & mouse on same device?
ものすごく面倒だけど、フレームワークを手作りする方法が書いてある。
内容はまったく理解できないが、とりあえず書いてあるとおりやってみた。
さて、動け・・・。。。。
ぜんぜん動かん!
おれがUSBフレームワークを理解できるようになるか、だれかがこれに対応したUSBフレームワークを公開するまでペンディング。
「仮称:Thinkpad X22キーボードをPS/2キーボードに変えるよ君」に計画変更しようかな。。。
これならとっても安いPIC16F887で済むし。
でも、マウスとキーボードでケーブルが2本出るのはちょっとかっこ悪いなあ。
PR
この記事にコメントする