パラレルポートの出力波形



便利なパラレルポート

多くのパソコンに標準でパラレルポートがついている。ちょっとした実験や、ROMライタ、PICライターなどを接続したりと、プリンタを接続する以外にも便利に使うことができる。

しかし、ちょっとしたところに落とし穴がある。自作した物を接続するときには、注意が必要だ。

双方向

最近のAT互換機は、パラレルポートを双方向で使うことができる。注意しなければならないのは、入力のできないパラレルポートがあることだ。こっちのパラレルポートでは問題なく動くのに、あっちでは動かないという事態になってしまう。BIOSの設定が双方向になっていることも必要だ。

設定が違っているのだとわかってしまえば、簡単なのだが、「どうして動かないのか」調べるのに時間がかかったことがある。

ROMライタが動かない

トランジスタ技術1998年8月号「開発支援用アイデア・ツール集」に載っていた、「シンプルROMライタ」を作った。VPP,OEなどの信号を作る回路の部分は、カスタマイズした。

回路自体は、半年ほど前に作り、トラ技ホームページからダウンロードしたソフトでROMの読み書きができることを確認した。しかし、このソフトがあまり使いよくない。ちょっと間違った操作をすると、ハングしてしまう。アセンブラで書かれているプログラムで、例外の処理がきちんと書かれていないのだろう。

ソースを見たものの、もちろんこのソフトを修正する気にはならず(アセンブラだから)、Windows上で動くROM書き込みソフトを作り始めた。ROMを書き込む基本的な部分はできあがっていたのだが、しばらく中断していた。そして、夏休み。再開したのだが、なぜか動かない。

ノートでは動くのに

ダウンロードした書き込みプログラムでも、読み書きすることはできなかった。以前は動いたのに。試しにノートパソコンにつないでみると、動く。この前、マザーボードを交換し、動かなくなったのだ。このことがわかるまで、結構時間を使ってしまった。

デバッグを始める。データの読み書きは、シフトレジスタを使っているのだが、1つシフトクロックを入れると、2つシフトしていることがわかった。

PICのメーリングリストで、「パラレルポート接続のPICライターが不安定だ。」という投稿があったが、きっとこれも、波形が歪み、シフトレジスタが誤動作しているのだろうと予想した。

オシロで観測

プログラムを修正し、約300kHzのクロックを出し、シフトレジスタに到着する波を観測した。


左は、ノートパソコン(DynaBook Portege300CT)に接続した時の波形。右はデスクトップ(ASUS P2Z-B マザーボード)に接続したときの波形。ケーブルは、全く同じ物を使用しているのに、全く形が違う。

それぞれの立ち上がり波形は、


左がDyanaBook、右がデスクトップ (左はSweepTime50ns、右は20nsにしてしまった。時間軸の縮尺が違うので注意)

デスクトップの方の波形が汚い。これほどひどいとは... かなり驚いた。

スレッショルド付近でうねうねしている。Hレベルの電圧も低い。これなら、誤動作するのもうなずける。

たち下がり波形


(これも時間軸が違うので注意。間違って撮影してしまった。)

シュミット・トリガ

とりあえず、シュミット・トリガを入れてみる。東芝の74HCシリーズデータシートによると、74HC14の高レベルしきい値(立ち上がりの時のしきい値)は2.7V、低レベルしきい値は1.6Vある。(電源4.5Vでの平均) これなら、動きそうだ。

シュミットトリガをクロックに入れた時の、デスクトップパソコンでの波形


ゲートを1つ通っただけで、驚くほどの変身ぶりだ。

これで、問題なく動くようになった。

直接入力はダメ

レベル動作の回路では、汚い波形でもレベルがわかれば問題ないが、クロックとして使う場合には、波形が綺麗である必要がある。

今回の事例のように、場合によってかろうじて動いてしまう回路は、一番タチが悪い。このようなことのないよう、「きちんと作らねば!」

教訓:パラレルポートを使うとき、シュミットトリガは必須




(c) 1999 Ishijima Seiichiro
前へ / 次へ
電子工作メニューへ

ホームページへ