趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
昨日までの内容で、標準のプレステコントローラをUSBジョイパッドに変換できるようになった。まあ、ここまでは簡単なので、だれがやっても同じような感じになるだろう。
で、次に簡単そうなもの、ということで、
ネジコン -> GT FORCE をやってみよう。
ネジコンのプロトコルは、もうネットのあちこちに書いてあるので、説明不要。
問題は、GT FORCEである。GT FORCEのように見せるためには、GT FORCEの構造を知る必要がある。
ということで、ネットでGT FORCEの解析情報を集めてみたのだが、、、、ない!ぜんぜんない!
ということで、ヤフオクでGT FORCE買いました。10年前のものにもかかわらず、800円ちょっとしました。送料込みだと、1500円くらい?
さて、GT FORCEのようなUSBコントローラを解析するためには、
1.秋月で買えるZEROPLUSロジックアナライザ+USBブリッジを買ってキャプチャする
2.SnoopyPro.exeでキャプチャする
3.VMWareでusb.analyzer.enable = "TRUE"にしてvmware.logを読み解く
ほんとうは1.がいいのだが、お金がないので、仕方なく2.で。
2.がうまくいかなかったら、3.かな?
とりあえず、2.で初めてみる。
で、次に簡単そうなもの、ということで、
ネジコン -> GT FORCE をやってみよう。
ネジコンのプロトコルは、もうネットのあちこちに書いてあるので、説明不要。
問題は、GT FORCEである。GT FORCEのように見せるためには、GT FORCEの構造を知る必要がある。
ということで、ネットでGT FORCEの解析情報を集めてみたのだが、、、、ない!ぜんぜんない!
ということで、ヤフオクでGT FORCE買いました。10年前のものにもかかわらず、800円ちょっとしました。送料込みだと、1500円くらい?
さて、GT FORCEのようなUSBコントローラを解析するためには、
1.秋月で買えるZEROPLUSロジックアナライザ+USBブリッジを買ってキャプチャする
2.SnoopyPro.exeでキャプチャする
3.VMWareでusb.analyzer.enable = "TRUE"にしてvmware.logを読み解く
ほんとうは1.がいいのだが、お金がないので、仕方なく2.で。
2.がうまくいかなかったら、3.かな?
とりあえず、2.で初めてみる。
PR
信号のプロトコルについては、
store.curiousinventor.com/guides/PS2#hardware
に詳しくかいてある。PICとの接続方法も、ここを見ればわかる。
SPIというチップ間通信ではメジャーなプロトコルで、PICはこのSPI読み書きをハードウェアで処理できる。ハードウェアで処理できるメリットは、通信している間に別の処理ができることと、プログラムが簡単になること。
しかし、18F4550や18F2550のSPIにはバグがある(と俺は思っている)ので、SPIはソフトウェアで実装することにした。
いや、けっこうがんばったんだけど、20MHzのクロックでは、どうやってもだめだった。プレステのコントローラにあわせてクロックを調整すればどうにかなりそうだが、そうなるとUSB側が困る。
無理してハードウェアでやらなくても、プレステコントローラの通信速度は非常に遅いので問題なし。
ちなみにバグるのはMODE_11,SPI_FOSC_TMR2の組み合わせのみ。でもAE-18F2550ならこれしかとりえない。
store.curiousinventor.com/guides/PS2#hardware
に詳しくかいてある。PICとの接続方法も、ここを見ればわかる。
SPIというチップ間通信ではメジャーなプロトコルで、PICはこのSPI読み書きをハードウェアで処理できる。ハードウェアで処理できるメリットは、通信している間に別の処理ができることと、プログラムが簡単になること。
しかし、18F4550や18F2550のSPIにはバグがある(と俺は思っている)ので、SPIはソフトウェアで実装することにした。
いや、けっこうがんばったんだけど、20MHzのクロックでは、どうやってもだめだった。プレステのコントローラにあわせてクロックを調整すればどうにかなりそうだが、そうなるとUSB側が困る。
無理してハードウェアでやらなくても、プレステコントローラの通信速度は非常に遅いので問題なし。
ちなみにバグるのはMODE_11,SPI_FOSC_TMR2の組み合わせのみ。でもAE-18F2550ならこれしかとりえない。
microchipのサイトにあるUSBフレームワークには、ジョイパッド、マウス、キーボードのサンプルが入っていて、簡単にそれらが実装できるようになっている。が、残念ながらPIC18F2550用のが用意されていない。
で、仕方なくブートローダーにUBWとかいうよくわからないものを使ったり、microchipのではない独自のUSBフレームワーク使ったりしているのかも。
microchipのサイトにあるUSBフレームワークは、それに同梱されているHID bootloaderからUSB経由でロードできるようになっているので、今は賞味期限の切れたと思われるUBWやらを使わずに、すなおにmicrochip謹製HID bootloaderを使うべき。
しかし、これまたPIC18F2550用がない。
さて、どうしよう。。。。。 心配ご無用!
USB Device - HID - HID Bootloader - C18 - PIC18F4550.hex がそのまま使える。
ちょっとまて、チップが違うぞ、という人もいるが、気にしない。動けばいいのだ。2550と4550は2が4になっただけでほとんど同じもの。
ちなみにフレームワークもPICDEM FSUSB用のが無修正で動く。これも4550用だけど気にしない。へたにインクルードファイルをPIC18F2550用に切り替えるとエラーる。
で、仕方なくブートローダーにUBWとかいうよくわからないものを使ったり、microchipのではない独自のUSBフレームワーク使ったりしているのかも。
microchipのサイトにあるUSBフレームワークは、それに同梱されているHID bootloaderからUSB経由でロードできるようになっているので、今は賞味期限の切れたと思われるUBWやらを使わずに、すなおにmicrochip謹製HID bootloaderを使うべき。
しかし、これまたPIC18F2550用がない。
さて、どうしよう。。。。。 心配ご無用!
USB Device - HID - HID Bootloader - C18 - PIC18F4550.hex がそのまま使える。
ちょっとまて、チップが違うぞ、という人もいるが、気にしない。動けばいいのだ。2550と4550は2が4になっただけでほとんど同じもの。
ちなみにフレームワークもPICDEM FSUSB用のが無修正で動く。これも4550用だけど気にしない。へたにインクルードファイルをPIC18F2550用に切り替えるとエラーる。