プレステコントローラUSB変換器のカスタマイズについて
作:2010/09/22
ファームウェアをネジコン用、電車でGO!用に書き換える場合は、このページを読む必要はありません。それ以外のファームウェアを自作しようとする場合、用意されているファームウェアでは気に入らない場合にのみ、お読みください。
1.必要なもの
@MPLAB C18 (60日以降制限ありフリー版) & MPLAB IDE
AMicrochip
Application Libraries v2010-04-28 Installer.exe
Bjoystd.zip ,
joygtf.zipなど、オリジナルのソース
CプレステコントローラUSB変換器 USBPSDGOC
2.C18コンパイラのインストールについての注意
入手方法やインストール方法は、あちこちに書いてあるのでここでは述べません。
注意点はただ1点。デフォルトインストールすること。
3.フレームワークのインストールについての注意
入手方法やインストール方法は、あちこちに書いてあるのでここでは述べません。
注意点はただ1点。デフォルトインストールすること。
フォルダーをデフォルトから少しでも変更すると、フレームワークは使えません。(今のバージョンなら使えそうな気も。。。)
フレームワークをインストールしたあと、keyboardデモがビルドできるか確認してください。
C:\Microchip
Solutions\USB Device - HID -
Keyboardにあります。
ビルドできないことはないと思うのですが、できない場合はできるようになるまでがんばってください。
4.joystd.zip ,
joygtf.zipなど、オリジナルのソースのインストールについての注意
ネジコン用や電車でGO!用がどこかに置いてありますので、探してください。
インストールする方法については、
@解凍する
AFirmware.std(物により異なる)フォルダーをC:\Microchip
Solutions\USB Device - HID - Joystick\にコピーする
おわり。
5.ブートローダー動作確認
HIDBootLoader.exeを起動してください。これは、USBフレームワークをインストールしていれば、"C:\Microchip
Solutions\USB Device - Bootloaders\HID - Bootloader"にあるはずです。
起動すると、"Device
not detected. Verify device is in bootloader mode."と表示されるはずです。
コンフィグ用スイッチを押した状態にして、USBPSDGOCを接続してください。コンフィグ用スイッチはUSBPSDGOC裏面の小さな穴の奥にありますので、爪楊枝など非導電性のもので押してください。ピポッと音がして、"Device attached."と表示が変われば正常に動作しています。
表示が変わったのを確認したら、コンフィグ用スイッチを離してください。
6.ソースののコンパイル
"C:\Microchip Solutions\USB Device - HID - Joystick\Firmware.std"にある"USB Device - HID - Joystick - C18 - PICDEM FSUSB.mcp"を起動します。
Project -> Build All でビルドしてください。USB Device - HID - Joystick - C18
- PICDEM FSUSB.hex ができていればO.K.です。
7.ファームウェア書き込み
HID Bootloaderで、Open Hex Fileをクリックします。もちろん、"Device attached"の状態でないといけません。
"C:\Microchip Solutions\USB Device - HID - Joystick\Firmware.std"にある"USB Device - HID - Joystick - C18 - PICDEM FSUSB.hex "を選んでください。
Erase/Program/Verify Completed
Successfullyと表示されればO.K.です。
途中で止まった場合はプロセスが異常動作していますので、タスクマネージャから強制停止するかPCを再起動してください。
8.ジョイパッドとしての動作確認
デバイスマネージャを起動してください。
コンフィグ用スイッチを押さずにUSBPSDGOCを接続してください。
お望みのものが表示されればO.K.です。
電車でGO!コントローラ
Type2は、PCで正常に認識されませんので、この確認方法はとれません。
9.ソースのカスタマイズ
標準コントローラ用やネジコン用の各種ソースを見比べてください。diffツールなどを使うと便利でしょう。
変更が必要なのは、下記3ファイルです。
main.c
usb_descriptor.c
usb_conig.h
どのようにカスタマイズするかは、貴方次第。
カスタマイズが完了したら、ビルドして書き込んで動作確認しましょう。
注:どうでもいいことかもしれませんが、ソース中のコメントの一部に誤りがあります。1TCYxが1sec/20MHz*4 = 0.05usec*4=0.2usecみたいな記述がありますが、実際は1sec/48MHz*4 = 0.0208usec*4=0.083usecでした。なので、たとえばDelay10TCYx(100)で83usecになります。
top
page