espyの日記: なぜ、負論理は今でも多用されるのか? 13
ロジック回路の話。
お仕事では時に、初心者に説明したりもする立場であるが、
これを尋ねられたら、うまく説明できる自信がない。
例えば、プッシュスイッチをマイコンI/Oポートで直接、入力ピンに
接続して読み取りたい場合、入力ポートをプルアップしておいて、
スイッチを押したら "Low"として読めるような回路にすることが
多い。 (図-1,(A))
多いというか、世の中の本や実際の現場では見かけるのは、
ほとんど、この(A)だ。 でも、(B)のようにも構成できるし、
押したときにHighが見える(ソフトから"1"として読める)方が
自然ではないか? 初心者はそう考えるに違いない。
(注:ここではHigh入力→0が読めるといった変わったICは、
とりあえず話題にしない。チャタリング除去回路も仮に略す)
この理由については、'80年代に何かの本で読んだ記憶がある。
総合すると、
(1)TTL-ICなどで受け取る場合、これら素子の入力ピンの
特性上、High入力は数KΩ以上の比較的高い抵抗でもHighに
できるのに対して、抵抗でLow入力にしたい場合、プルダウン
抵抗は 数100Ω以下にしないと確実にLowにできない。
(入力ピンから電流が流れ出す事でLow入力となる。
参考:図-2, 7400の内部等価回路)
(2)プッシュキーSWの中にはエラスティック接点のものがあって、
押しても100Ω程度の抵抗を持つものがある。
以上の点で、非押下時に抵抗でLowにしておく(B)の構成は確実性が劣る、と。
しかし、いまやCMOS時代で、どんなロジック系ICも入力インピーダンスは
とても高くなっているので、(B)の構成で、R2がたとえ1MΩ以上でも
ちゃんとLowと認知される。
今のご時世でもなお負論理を多用することに、必然的理由はあるだろうか?
# 「慣習だし…」以外の答案を、自分は少し持っているが、さらに大先輩に尋ねてみたい所ではある。
素朴に (スコア:1)
逆転の発想(それ極性?)があれば大丈夫とか?
Copyright (c) 2001-2014 Parsley, All rights reserved.
Re:素朴に (スコア:1)
シチュエーションかな。
スイッチの話に限定した方がいいかな。
あるいはもう少し広げるなら、「信号伝達に、なぜ Active High じゃなくて、Active Low 方式を選ぶのか」
メモリのチップセレクト (Chip Select, CS)とか、ライトイネーブル (Write Enable, WE)とか。
Re:素朴に (スコア:1)
恥かき放題
Copyright (c) 2001-2014 Parsley, All rights reserved.
Re:素朴に (スコア:1)
Re:素朴に (スコア:1)
Re:素朴に (スコア:1)
reset に負論理が使われる - VSSの時にreset - なのは、電源が切れているときに reset になっていて欲しいから。フェイルセーフの思想からと聞いています。電源 on シークエンスを考えたときに、始めにVSSがつながって VDD がつながって、reset がやってくる。 reset が正しく到達する前は、どっちかというとたぶん VSS に近い電位。電源 on になったときに勝手に何か初めては困る。reset されておとなしくしていて欲しい という発想だと思います。
断線したときに、RST になるのはいいとして、WE になるのはなんか納得いかない気がします。間違って Write したけど、WE があるから大丈夫だぜ! と思ったら断線していてどんどん書き込まれていた .. みたいな。CMOSだと断線していても、電位がふらついて、やっぱり RST もかかるような気もします。
I2Cバスとかもそうだね。 (スコア:1)
斜点是不是先進的先端的鉄道部長的…有信心
Re:I2Cバスとかもそうだね。 (スコア:1)
(1) ドライブ側がいなくて、自分の電源の入っているとき→動いてはいけない
ため、信号線は受け側でどちらかに吊らなければなりませんが
(2) 正論理にして、受け側の電源が入っていないとき
が危険で、低いインピーダンスで正側につり上げると信号線から入力保護用のダイオードを通して 受け側の電源に回り込み、下手をすると壊します。これは CMOS のほうがラッチアップがあるので更に怖い。
TTL だと、入力をハイにつり上げると入力耐圧が意外に低いため、リンギングで入力サイドを壊す危険性もあります。
Z80 PIOは正論理だったけど (スコア:1)
調べてみると負論理のほうが一般的なんですよね・・・
なんとなく、high(プルアップしておくだけ)よりlow(GNDに直結)のほうが電流流れそうなイメージがあるので、スイッチ入力みたいな日頃はオフいなってるものは、負論理のほうが消費電力抑えられるのかなあ。とか、ちょっと思いましたがあんまり関係ないですね。
負論理っていうかLowActive (スコア:1)
とある回路ブロックを作って、別の基板やセンサーモジュールに信号の受け渡しをする時、
相手側のセンサーモジュールやら基板の入力レベル12Vだったり5Vだったりとまちまち
だったりするので、確実にオープンコレクタで出力しています。
というか、HighActiveの信号で受け渡しするとなると、その回路ブロックの汎用性が
なくなってしまい、好ましくないと考えています。
多分慣習からでしょうが (スコア:1)
ほかには、スイッチを外付けするような場合に、GNDしか出さないことが多いとか、入力信号レベルが異なる信号にスイッチをつける場合でも、GNDにつなげば電圧を区別しなくて済むとか、それらしい理由ならいくつか。
自動車の配線も (スコア:1)
バッテリーからのプラス配線はボディがマイナスであることから配線がヘタに露出してショートすると危険。
なので、プラス側を複雑なルートでスイッチへ引き回したりせず、振動でこすれて磨耗しないようしっかりガードし
寄り道させずに使いたいデバイスに直結。利用時はスイッチでマイナス側を閉じて動作させる方法が賢いとか。
外だしの信号を負論理にするのは別理由ですけど (スコア:1)