■PSPでPS/2キーボードを使う
今までPSP-1000のIRポートを使用してPalm Universal Wireless Keyboardを動作させるものは色々ありました。今回はuCLinux for PSP
で利用出来るSIOにおいて、汎用のPS/2キーボードがPSPで使えるように色々画策してみました。
●PS/2→UART変換はどうする?
問題となるのはPS/2プロトコルをどうやってシリアルに変換するかです。ネットを色々と探してみると、偉大な先人が既にAVRを使用して実現
しておりました。参考にしたのはtokoya氏のページで、ワンダースワン向けの変換回路が公開されております。ワンダースワン向け、とは
言っても他にも応用できる回路であり、ちょっとデータを弄る事で使えそうでしたのでこれを利用させて貰う事にしました。
●用意した物
とりあえず管理人が用意した物は以下の通りです。回路自体は非常にシンプルで、すぐに作製できるはずです。ちょっと入手が難しいかも
しれないのがディスコンのAT90S2313でしょうか。今回は秋月店頭で普通にあったので良かったですが、なかなか他だとないかもしれません
ね。現在は互換品のATtiny2313があるので、ヒューズビット書き換えでAT90S2313相当にしてやるということでも対応できますね。
(1)PPCA
(2)PSP向けSIOケーブル
(3)PSP-1000(CFW 3.90M33-3)
(4)適当なPS/2キーボード
(5)D-Sub 9ピンクロスケーブル(無いため自作してみた)
●とりあえず作ってみる
ここで回路をと言っても丸々tokoya氏の回路図なので、作製される方は氏のページを参照して下さい。tokoya氏の物と違う点としては、
(1)使用するレベル変換チップをMAX232ではなく、AMD3202ANを使用した
(2)電源入力の所でレギュレーター回路を省いた(5Vは適当な所から引っ張ってくる)
となっております。回路では5V確保のために7805を使っているようですが、特に要らないかなと思って抜いています。
●AVRファームウェアソースを弄る
tokoya氏のページで公開されているAVRファームウェアのソース・バイナリはAT90S2313向けでボーレート38400bpsと固定になって
おります。対してuCLinux for PSPでは9600bpsが丁度良さそうなので、ソースを少し弄って9600bps固定としてみました。変更点はUBRRの
所だけであり、値を変更してビルドして書き込みしました。UBRRの計算式は下記の通りです。
UBRR = F_CLK/(16*BAUD) -1 (但しF_CLK=8,000,000[Hz]、BAUD=9600[bps])
●バイナリデータ・ソース
とりあえずビルドしたバイナリ、ソースを置いておきます。
2008/05/11 - ソース・バイナリ
●動作させてみる
AVRにファームウェアを書き込んだ後はPPCAに載せ、PS/2キーボード、電源を繋ぎ動作確認してみます。PSPのSIOケーブルとはシリアルの
クロスケーブルで接続します。今回使用したuCLinux for PSPはプレビルドされたuCLinux for PSP v0.22です。こちらは現在公開中なの
で、さっくりダウンロードして導入します。uCLinuxのブート設定としてはコメントアウトされている所を外し、9600bpsで通信できるようにします。
<pspboot.conf>
# Default baudrate of UART3 set by pspboot (for early
printk).
# Supported rates are 9600 or 115200. If not specified, UART3
# will not be initialized by pspboot.
#baud=115200
baud=9600
XMBからuCLinux for PSPを起動してキーボードを叩いてみると、ちゃんと動作しました。今回試したキーボードは以下の通りです。5576-A01
でも動作したので、適当なPS/2でも大丈夫そうです。SCEIのPS2向けUSBキーボードが動作しなかったのは多分電力不足ではないかと思って
いますが、どうなんでしょう。USB→PS/2変換のものを噛ませばPS/2に見えるはずですが・・・・
(1)IBM 5576-A01 - 動作OK
(2)Fujitsu FMV-KB321 - 動作OK
(3)PFU Happy Hacking Keybard Lite1 KB-9975 - 動作OK
(4)SCEI SCPH-10240+変換コネクタ - 動作NG
●動作終了後
というわけで今回はPSP-1000+PS/2キーボードの組み合わせでuCLinuxを試し、なんとか動作させる事が出来ました。IR接続のキーボード
が使えるのは非常に素晴らしいですが、高い・他に使い道が余り無い、というのが大きな欠点ですね。今回はPS/2キーボードという愛用の
キーボードを普通に使えるように出来ると言う点で良い感じです。
余り知られていないのかもしれませんが、実はpikeyはSIO経由のキーボードもサポートしているので(通常コメントアウト)今回の物を使用して
XMBの操作・ゲーム動作も可能です。回路も作製も簡単に出来るので、興味のある人は是非試してみて下さい。
copyright (C) Emu on PSP 2005 - 2007