標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第462回]

●232Cの送信がおかしい…?

やっと出来あがってきたZ80版TK80ボード(ND80ZH)の最終的な動作テストをしていましたら、RS232Cの送信がどうもおかしいみたいです。
ND80ZHがデータを受信するときは正常なのですが、逆にND80ZHがデータを送信すると、受信側でなんだか先頭にゴミが入ったり、受信エラーになってしまいます。
そんなはずは…、と思いながら、PIC16F88のTX出力信号をオシロで見てみましたら。

PIC16F88がリセット状態のときに、TXのラインが落っこちてしまっています…!
いや、正確にいいますと、かなりハイインピーダンスな状態のようです。
PICがリセット状態のときは、その出力はハイインピーダンスになりますから、それはおかしくないと言ってしまえばそれまでなのですが。

それは困る。いや、そもそも、そんなはずはないのだが…。
とにかくRS232Cは無信号のときはストップパルスのレベルと同じで”1”になっていなければ困ります。
そうでないことにはスタートビットの”0”が検出できません。

試作基板でテストしたときには、こんなことはなかったはず…。
おお、ひょっとしたら!

試作基板では、PIC16F88のRX信号、TX信号をRS232Cレベルに変換するために、定番のMAX232を使ったのですけれど、本番では、低消費電力でなおかつ価格が安い(こっちの方が魅力)ということで、はじめてでしたけれどICL3232というのを使ったのです。
もちろんデータシートをざっと見て、互換性があると判断し、念の為に簡単な動作確認はしたのですけれど…。
やっぱり確認が甘かった!

MAX232の入力回路については、ずっと以前に気になって確か確認をしたはずでした。


[出典]MAXIM社MAX220−MAX249Datasheet

RS232Cライン側はチップ内で5KΩでGNDにプルダウンされています。
そしてTTL入力側は400KΩで、これもチップ内で+5Vにプルアップされています。
この抵抗のおかげで、無信号時でも”1”が入力されているのと同じ状態が維持されています。
そうなんですよねえ。
だから安心していたのですけれど…。

ということは、さては…!


[出典]Intersil社ICL3221−ICL3243Datasheet

おお。まさか…。
RS232Cライン側にはMAX232と同じように5KΩの抵抗がついていますけれど、TTL入力側はといいますと、なにもついておりません!なにも!
まさかこんなことになっていようとは…。絶句。

念の為に、あらためてデータシートを読み直してみました。
こんなところに、ぼそっと書いてありました。とほほ…。



なお、ICL3232データシートの図ではVccが+3.3Vに接続されていますが、データシートではパワーサプライは+3V〜+5.5Vと記載されていますから、+5Vでの使用に問題はありません。

●泣きながら、抵抗を追加です

だって、ND80ZHはマウント屋さんで部品実装して、もうしっかりと出来あがってきてしまいましたから、今更ICL3232をMAX232に交換するなんて、できっこありません。
できるのは、あとからプルアップ抵抗を追加することだけです。
納期がせまって、もう目がつりあがってしまっていますのに、急いで抵抗の追加です。
それと空き入力端子をGNDに落とすことも忘れてはいけません。



ちょうど都合のいい位置に+5VとGNDが来ていましたので、写真のように取りつけることができました。
MAX232では400KΩでプルアップされていましたが、ちょっとおおきいなあ、と感じますので、ここはまあほどよいところで100KΩを取りつけることにしました。

あらためて送信テストをしてみましたら、今度はうまくいきました。
やれやれ、です。

2010.3.26upload

前へ
次へ
ホームページトップへ戻る