他機種用キーボードについての補足

文書作成日:2002.02.08
最終更新日:2002.08.27

1. 前書き

 『4つ折りキーボード接続計画』『4つ折りキーボード接続計画 for E1』 では、ターガス・ジャパンから発売されている ターガス・ストアウェイ・ポータブルキーボードを使用しています。

 これは、記事中に書かれているように 信号レベルが 3V TTLレベル(5Vでも良かったようですが)でそのまま PIC や ザウルス に接続できることと、 特別なプロトコル無しに動作するのが都合良かったからです。 地方で入手しやすかったというのも、ポイント高かったですね。

 しかし、あれから時は流れ、 今では多くの機種用にぱたぱたキーボード(注:ストアウェイ・キーボードのこと)が売られています。 筆者推奨の Visor 用の方が入手しづらいという状況です。

 秋葉原では PalmVX用など旧めのものが安く売られていることもありますし、 それらが使えたなら …… 更に言えば、WingBoardなど他社製のキーボードでも使えたら良いのですが…。

2. Palm用のが使える?

 そんな時、鈴木さんから 大変美味しい情報 を戴きました(多謝)。

 まず、Palm,Visor,Jornada,iPaq用 ぱたぱたキーボードの公式情報は、 開発元である ThinkOutside社のサイト で Developer登録をすると入手できるということ。 そして、今まで RS-232Cレベルということで使えないと思っていた Palm用が、 どうも使えそうだというのです。

 お話によると、資料には Visor用はTTLレベル他はRS-232Cレベルとしか記述されていませんが、 オシロで調べてみると 0V 〜 供給電圧 の範囲でしか振れないんだそうです。

 RS-232Cレベルと聞いて、てっきり下はマイナスに振れるのだろう、 MAX232でもかまさないと繋がらないだろうと思い込んでいましたが、 どうもそうじゃないようです。 なお、マークとスペースが通常とは逆で、 定常時は 0V を示しスタートビットで供給電圧のレベルにあがるそうです。

※参考 (EIA-232)

 RS-232(現 EIA-232)は、信号をマークとスペースの2値で表現するシリアル通信規格です。 マークは 1 を意味し電圧は -15V 〜 -5V 、 スペースは 0 を意味し電圧は +5V 〜 +15V。 基準電圧を挟んで正負の電圧で値を表現します。 入力電圧はスペースが +3V 以上,マークが -3V 以下で判断しますので、 携帯機器では出力電圧として -5V, +5V を使っていることが多いようです。

3. もっと詳しく見てみると…

 メーカー資料を読むと、キーボードは入力電圧によって出力電圧が変わるとあります。 これは、3Vを供給すれば3V以下5Vを供給すれば5V以下の出力があるということで、 更に、このキーボードには 5.5V 以上は供給しないでくださいと書かれています。

 RS-232Cレベルとは書かれてますが、この場合は 3V〜5V (供給電圧による)の電圧であり、 とりあえず携帯機器を繋いだからといって過電圧で壊れることは無さそうです。 電圧の下限値も、実際に測ってみると確かに 0V 止まりですね。

 さて…そうなると、1つ面白いことに気づきます。

 定常時が 0V で、スタートビットで High(供給電圧)に跳ね上がるということは、 ザウルスのオプションポート16の仕様とぴったりマッチするのではないでしょうか? 先のVisor用キーボードでは論理が逆だったために、ロジック・インバータで反転させましたが、 反転の必要がなければ 74HC04 は不要になります。 電圧の方も、推奨動作電圧として 3V〜5V と資料に記述されているのですから、 ダイオードも不要です。

 実際には、信号ラインに数kΩ〜数十kΩのプルダウン抵抗を入れる必要がありますが、 ほとんど直結でいけそうです。

4. キーボード制御の詳細

 さて、ほぼ直結で動きそうだ…と書きましたが、 実のことを言うとそれだけでは動かないはずです。 その理由は、『Visor用キーボードは特別なプロトコルが不要』だったのに対し、 『Palm用や他機種用は、キーボードの制御が必要』 だからです。 詳細は ThinkOutside社の資料に書かれているとおりですが、 ハード的には今まで使用していなかった RTS, DTR を必要とすることと、 ソフト的に RTS,DTR,HotSync(DCD) を用いてキーボードの制御を行う必要があることです。

【Palm用ぱたぱたキーボードのピン配列】

Pin12345678910
名称 N/C Vcc RxD RTS N/C N/C Hotsync N/C N/C Ground

【iPaq用ぱたぱたキーボードのピン配列】

Pin123456789101112
名称 N/C N/C DTR N/C N/C RTS N/C RXD DCD Ground N/C N/C

 Palm用は Vcc 、iPaq用はDTR から電力供給されて動作します。 キーボードからPDAへの通知には HotSync または DCD ラインへのパルス出力を用い、 PDAからキーボードへの要求や省電力モードへの移行指示には RTS ラインを用います。 キーデータなどの送信は RXD ラインです。

 どちらの場合も約10分間 RTSラインが High の状態が続くと、 省電力モードに入りキーデータを一切送信しなくなります。 この時、何かキーが押されると HotSync(DCD) ラインにパルスを出力してきますので、 これを見て RTSラインの立ちあがりエッジを作ると、また使えるようになります。

 なお、ここで注意が必要なのは、HotSync(DCD) にパルスが入ってくるのは RTS が Low である場合のみ だということです。 RTSラインをHighにしたままでいると、10分経過後はパルスもデータも一切何も入らなくなります。 このため、PDA側は適当なタイミングで RTSをLowにする処置が必要です。 電源ON時もこれと同様で、最初は RTS を Low にしておかないといけないわけです。

【起動・制御シーケンス】
  1. RTS=Low にして、DTR=High でキーボードの電源を入れる
  2. (約700ms後)HotSync(DCD)ラインからパルスが入る
  3. RTS=High にしてキーボードを活性化
  4. (10分以内に)RTS=Low にしてキーボードを省電力モードへ移行
  5. (何かキーが押される)
  6. HotSync(DCD)ラインからパルスが入る
  7. RTS=Highにしてキーボードを活性化
  8. (4.に戻って繰り返し)

5. ぱたぱた計画 OP16版 への適用

・ハード

 まず、接続回路は抵抗と配線だけの実にシンプルな物になりました。

PalmVX用ぱたぱたをOP16につなぐ回路図

・ソフト

 キーボードドライバ『ぱたぱた』には上記の処理を加えて改造を施しました。 こちらは、いずれ本流とマージする予定ですが、とりあえず変更したファイル(と実行ファイル)のみ掲載しておきます (補足:ぱたぱたβ4 にてマージ済みです)

 なお、ソースプロジェクト一式が必要な方は、 トランジスタ技術誌のダウンロードサービスから 『2002年3月号 四つ折り携帯キーボード用ザウルス接続アダプタ for E1の製作』にて公開しているものを落として、 下記の変更分を上書きしてご利用ください。 利用規定はそちらに準じます(非商用個人利用に限りフリー)。

 修正したソースファイルと実行ファイル『ぱたぱた改』はこちら→PALMPATA.LZH

[2002.08.27 補足]

 現在では、Visor用, Palm用 の両対応の ぱたぱたβ4 を公開していますので、使うだけならそちらが便利です。 キーバインド等をあちこちいじりたい方は、上のソースを改造(と言っても簡単な作業です)して使うと良いでしょう。

6. 動作の確認されたキーボード

 以下は、実際に動作の確認されたキーボードです。 WingBoardについては、Princetonから発売されているキーボードなのですが、 実は Storeway用ドライバ で動くということで、 ぱたぱたでも同様に使用することができたそうです。

7. 最後に

 筆者は物理工作が苦手なため、綺麗な製作例を示せないのが残念ですが(^^;、 わずか抵抗1本と配線だけで動きますので、OP16コネクタへの半田づけさえこなせば楽にできると思います。 こちらでは PalmVX用のストアウェイ・キーボードで確認を取りましたが、 他機種用でも使えそうですし、チャレンジャーな方、ぜひがんばってください o(^-^)o。

 最後になりましたが、 Palm用キーボードの詳細情報を教えていただいた 鈴木 さんに感謝します。 この情報がなかったら、Palm用キーボードで試すことは決して無かったでしょう。

 PalmVX用キーボードを提供していただいた ☆ ぬ〜 ☆ さんに感謝します。 実物があればこそ細かい作りこみができ、満足のいくし上がりになりました。

 Princeton の WingBoardキーボードを試された ツェルナー さんに感謝します。 Palm上で Storeway 製ドライバで動作するキーボードであれば、 他社製のキーボードであっても、使えるものがあるということが実証されました。


[ZAURUS] [HOME]