CASIO PB-1000 FOREVER!プラスワン

CASIO FX-870P/VX-4用I/Oインターフェース作成


「CASIOポケコンFX-870P/VX-4」の30Pinコネクタに接続する、
汎用入力インターフェースです。
用途は色々考えられますが、
今回、簡易ロジックアナライザとして利用してみました。

注意
本I/Oを接続する事でポケコンを壊してしまう場合が
あります。作成は自己責任でお願いします。

1.はじめに

 CASIO FX-870P/VX-4に装備されている30Pin I/Oは、8ビットのデータバスを備えており、
30Pin入力を利用した外部機器の制御を比較的容易に行うことができます。

しかし、1ビット程度の入力なら以前発表したデジカメリモコンの様にTr/抵抗を利用した
簡易回路でいけますが、データバス信号が「そのまま」コネクタとして出ているため、
きちんとした8ビット入出力(今回は入力のみ)を考慮した場合、バッファIC等を利用したインターフェース回路が必要となります。

 今回作成した汎用入力インターフェースを利用すれば、最大8点までの信号をポケコン側で
読み出すことが可能なため、いろいろな制御に応用することが可能です。
今回、FX-870P/VX-4にて利用しましたが、同じ30Pinコネクタを持つ機種(FX-870P/Z-1等)でも使えると思います。

このインターフェースの活用例として、ロジックアナライザソフト(FX-870P/VX-4用)を作成しましたので、
アセンブラによるI/Oアクセス処理の参考として、また簡易ロジックチェッカとして利用することができます。


2.I/Oインターフェースボード仕様

(1)回路図

画像をクリックすると拡大表示します
 図の左側が10Pコネクタ部で、バッファIC(HC541)経由で右側のポケコン側30Pコネクタに接続されます。
この構成は
PJ 1991/10号「VX-4によるカナ点字相互変換表示システムの制作」篠原俊一郎さんの記事とほぼ同じです。
記事ではポケコン側にプルアップ抵抗やダンプ抵抗が有りましたが、
このシステムでは不要と判断し付けませんでした。

今回、取りあえずロジアナ専用と考え、デコード無しの入力用として作成しましたが、そのまま汎用入力
I/Fとして使えます。/CS3と/OEだけでデータをセレクトしますので、バンク3後半(8000h以降)を
指定すれば、アドレスに関係なく8ポートデータを取り込む事が可能です。
もちろん普通のオープンコレクタ出力に直接接続も可能です。

読み出されるデータ値は、リミットスイッチなどでGNDに落とせば入力が0です。

(2)材料

H/Wを作成するにあたって必要な材料です。

番号 名称 数量
1 HC541(バッファIC)/20P ICコネクタ 各1
2 8P集合抵抗(100K〜1M程度) 1
3 ユニバーサル基板(1.27mmピッチ) 1
4 1.27mmピッチ端子(30P以上の物) 1
5 2.54mm 10Pコネクタ(オス/メス) 各1セット
6 10Pフラットケーブル 1
7 接続プローブ(各端子用) 10

3.I/Oインターフェースボード制作

(1) 30Pin接続コネクタの作成

いきなり今回の工作のメインです。
CASIOポケコン30Pin用のコネクタは、
一般にはなかなか入手できないため、
比較的入手しやすいハーフピッチ(1.27mm)ヘッダーピン端子を
15Pに切って2枚張り合わせて利用しました。
張り合わせると言っても、端子の厚みが2.54mm程あるため、
そのまま使ったのではポケコン側の30Pコネクタに
刺さらなくなってしまいます。
よって双方の端子をヤスリで0.6mm削り1.9mm厚にして張り合わせています。
ハーフピッチ(1.27mm)のユニバーサル基板を
4x19穴くらいの小片にしたものに端子を差して、まっすぐに半田付けします。
このとき端子が平行にならないと、
ポケコン側に上手く刺さりませんので注意してください。
自分は平行を保つために、VX-4の30Pに差しておいて半田付けしました。

最も苦労したのは30Pコネクターとその配線です。もう少しヘッダーピンが長いと良いのですが、
ユニバーサル基板に差して付けてしまうと、ほとんど出張らなくなってしまい、リードの半田付けが難しいです。
注意してもうまく折れないで、何回も失敗しました。

(2) 各部品の実装

 最大の難関のコネクタ制作が一段落したら、各部品を回路図通りに実装していきます。
バッファIC用20Pコネクタを半田付けして、プローブ接続用の10Pコネクタを接続します。

余談ですが、今回利用したプローブ用リボンケーブルの
10Pソケットのピン径がハーフピッチの
ユニバーサル基板の穴に入らないのはまいりました。
仕方ないのでサンドペーパをベルト状に切って
0.5mm厚のスケールに乗せて10本の4角を削りました。
画像をよく見ると微妙に細いピンのがあるかも知れないです。
(小さいので判らないと思いますが)
 各部品を実装したら、裏面に集合抵抗とジャンパの配線を行います。
かなり細かい配線になりますので、接続ミスには注意してください。
最初にボードの試作をして実際にデータを読んでみると
GNDに落としたビットは正常に読めるのですが、
入力をOFFに戻してリードすると記憶されたように
ビットがOFFにならなかったり隣のビットが0になったりしました。

最初はポケコン側にプルアップ抵抗を付けてみましたが変わりませんので、
プローブ側に100kオームを付けて、正常になりました。

ロジアナとして利用する場合、なるべく高インピーダンスの方が
相手に影響を与えない為、
抵抗値は470kか1Mオームくらいにしたかったのですが
手持ちのパーツがありませんでした。
#しかもスペースが無く裏面にベタ付けです。(笑

(3)プローブ用10Pリボンケーブルの作成

10Pコネクタにリボンケーブルを圧着し、その先に接続用のプローブ端子を半田付けしていきます。
本数が多いので制作例のように電源ラインのプローブを色分けしておくと便利だと思います。

以上で入力インターフェースの作成は終了です。

(4) テスト用ジェネレータ作成

インターフェースボードの動作試験用に簡易ジェネレータを作成しました。

画像をクリックすると拡大表示します
 回路を見ると判ると思いますが、HC14でCR発信器を作り、半固定VRで周波数の微調も可能です。
リップルカウンタはHC4040という12段のものを利用していて、1/4096まで分周可能になっています。
信号はHC14でドライブしてパイロットランプがてらLEDを付けてあります。
#発信周波数によりますがちゃんとフリッカします。
#(ポケコンからの電圧で駆動するので暗いですが) 

余ったHC14のエレメントは、出力の1部を反転出力でヘッダーピンに出してあります。
コンデンサはICソケットを利用して、
交換やパラ接続も出来るようにしてあります。

出力は10PヘッダーピンでGND、
源発信、1/2から1/4096の12本と5Vを出してあります。
ICクリップで好きな周波数をクリップして利用します。
簡易型なので安定度はありませんがデューティ50%のクロックとしても使えます。

4.活用例「簡易ロジックアナライザ」
IIO003.ZIP(11KB)
このインターフェースボード用にロジックアナライザソフトを作成しました。

VX-4の動作クロックの低さ(910KHz)がネックとなり、
最高で56us周期でサンプリングと
あまり細かい信号を観測するには能力が足りませんが、
最大2048サンプル可能なバッファを持ち、
画面のスクリーンショット(左記)を取る機能もあり、
ロジックチェッカとしても便利に使えると思います。

アセンブラを使ったI/Oアクセスなど、
FX-870P/VX-4を利用したI/O制御の為のノウハウとしても
使えると思います。ぜひご利用下さい。

操作方法等はアーカイブ内のReadme.txtを見て下さい。

先ほどの試験用ジェネレータから発信した信号を
VX-4でキャプチャした画面を載せておきます。
各信号が設計通りにきちんと分周されているのが確認できます。
この程度の分解能とバッファリング容量があれば、
結構便利に使えるでしょう。

正直言うとロジアナとして使うなら、
VX-4/FX-870PではなくFX-890PやZ-1等で作った方がクロックも速く
良い結果になりそうです。今後、Z-1GR等を入手したら、
移植するかも知れません。
(いつになるやら・・笑)

@あお

5.あとがき(過去から未来へ?)
 ポケコンによるロジックアナライザは昔の「トラ技(トランジスタ技術(CQ出版社・刊))
の記事に、確かPC-1245だったか16キャラクタに入力を展開する記事があり、
それを参考に作ったのが最初です。

確か当時の記事(PC-1245版)では、入力にバッファICもあったと思いますが、
自分には面倒で、直接入力にしたので+コモンになってしまいました。

それまではロジックのON/OFFを見るには
ICとLEDを使ったロジックチェッカーを自作していました。
LEDだと点滅の速さを見れば或る程度の周波数は判りますが、
たった2chでもバッファリング表示できるポケコン版の方がずっと便利なので、
その後、PC-1350にも移植して、もっとゆっくりした波形も
表示させていました。(左記画像は、PC-1350版です)
実はこのPC-1350版は業務で使ったことがあります。
確か機械のシーケンサ制御で、パルスの長さと、
どちらがどれだけ先かというのを測定して、
シーケンサのカタログ性能に誤りがあるのをメーカーに証明する必要があり、
24Vの信号を取り込めるようにTrとダイオードを付けて、
センサー出力をシーケンサとパラに接続して記録しました。

シーケンサの入力はせいぜい20m秒から100m秒程度で、
600サンプルを12秒程度でサンプリングするだけなので、PC-1350なら充分でした。

原因はシーケンサ側のノイズ対策で入力の状態が連続した場合に
入力と認識するようにタイミングを調整していたようですが、
そのルーチンが長過ぎて、カタログの最小パルス長を
満たしていなかったためと記憶しています。

PC-1350による測定結果にはメーカーも納得してくれて、
シーケンサのシステムROMを変更してくれ、装置としては完成したのだと思います。
#もう、かなり前のことなので、記憶の彼方ではありますが。

PC-1350はシリアル端子を使えばchは増やせたのですが、
コネクターが別でハーフピッチなので制作が出来ませんでした。
#以前はハーフピッチのヘッダーピンは有りませんでしたので・・・。

その後PC-1262を入手して、もっぱら1262を使ってきました。(上・左画像)

この画像のSHARP用I/Fはシャーペンの芯ケースを使っています。
いつもの「百均(百円均一)」のです。
VX-4のもフラットパッケージのICを使えば、このケースに入れることが出来そう。
リードは半田付けになりますが、かなりコンパクトになりますね。
今回、作成したのはデコードなしの入力のみのインターフェースですが、
デコードも追加すれば、アドレス指定でデータ入出力を制御することも可能です。

実は、アドレスデコードを追加した入出力ボードも計画中なのですが、
部品の手配を間違えてしまい、いまだ製作中です。(右画像参照)

ユニバーサル基板にコネクタを配置してHC138を付けてポート0は入力、
ポート4を出力にする予定です。
間違えてHC139を入手してしまいそのままになっています。
とりあえず先に入力として作り、HC138が入手できたら少しの配線変更で完成予定です。

出力は出力した通りにビットが保持されますので、通常の出力として使える予定です。
簡単な増幅でリレーなども駆動できますし、DCモータドライバも市販があるし、
D/Aコンバータによる制御というのも可能性としてありますが、問題は何に使うかですね。

FM録音用のウィークリタイマーが無かった時代なら、そういった用途でも作りますが、
現在ならその程度の機能はカセットデッキにも有りそうですし(笑

学習リモコンにウィークリタイマ機能を付ければ意味はありそうです。
相手も変えられチャンネルも変えられるし、市販のはそこまでは無いでしょう。
もっとも今のビデオデッキなら何度でも予約できるのでしょうね。

2003/9@山爺

ハードウェア・記事作成 山爺氏
ソフトウェア・記事作成 あお氏
ご寄稿誠にありがとうございました。

戻る