回路を修正

先日から試作していた、7セグ LED のダイナミック点灯回路を書き直すことにしました。当初、PIC18F67J60 の I/O ピンが足りないと思って 74LS138 のデコーダとか使おうと考えていたのですが、出力が L 能動*1なので結局出力を反転しなくてはいけないしで、面白くないと思っていたのでした。今日、ちゃんとスプレッドシートを使い、また PIC のデータシートでドライブ能力を検討したところ、共立のボード上で既に LED 点灯用に使われているピンでさらにトランジスタをドライブしたりすれば、デコーダなしで行けそうなことが分かりました。
こうすると、74LS04 は不要になるのですが、今度は 3.3V C-MOS 論理の出力で、どうやって LED のダイナミック点灯をするかを考えなくてはなりません。3.3V 電源だと、7セグ LED をエミッタフォロワとダーリントンオープンコレクタのトランジスタで挟もうとすると、ちょっと電位差が不足なのです。結局のところ、3.3V の論理出力*2から 5V 回路をドライブしなくてはならず、私の乏しいトランジスタの知識では、使える回路構成の選択肢が限られます。結局、エミッタフォロワの前段にエミッタ接地増幅回路をカスケードに繋ぐことにしました。しかし、手持ちの TD62506 ではベースに付いている抵抗が邪魔です。なんで 505 でなく 506 を選んでしまったのか? 確か、某オンラインショップで 505 が見つからなくて 506 を選んでしまったのだと思っていたのですが、今日再確認したら、ちゃんと TD62505 も売ってました。追加発注をすることにしました。
次に、今度はオープンコレクタ側です。TD62084A を持っているのですが、これも 3.3V 駆動ではベース電流が不足気味です。これも上記と同じ理由だったはずなのですが、今日探したら TD62083A をちゃんと売ってました。うむむ。こちらはベース側の抵抗が小さめなので、2.4V のベース電位でも(コレクタ電流を目一杯流さなければ)なんとかドライブできそうです。
そんなこんなで、74LS138 と 74LS04 × 4つを廃止し、その代わり TD62083A を一つ追加することでいけそうな感じがしてきました*3。もう一度、ブレッドボード上で評価をしてみようと思います。
なんかまずいぞ。10cm x 8cm に収まるかも知れない…。:)

*1:74 の時代は、LED を点灯するのに電流シンクを使ったり、デコード出力をメモリ IC のチップセレクトとして使ったりしていたが、大電流を伴うダイナミック点灯には結局外部トランジスタが要るので、L 能動は美味しくないのだ! って、でも、LED をそんなに明るく光らせてどうするのだ?

*2:PIC の I/O は、V_OH を 2.4V しか保証してないので、さらに厳しい。

*3:実際には外付けの抵抗器を増やす必要があるが。