Wave Technology(WTI)-ウェーブ・テクノロジ

WTIは技術者不足を解決する「開発設計促進業」です

なぜ漏れる?プルアップ、プルダウン処理

みなさん、こんにちは。テクノシェルパ推進室の赤谷です。

久しぶりのブログ投稿となりますが、どうぞよろしくお願いいたします。

今回はハードウェア設計の基本中の基本であるプルアップ、プルダウン処理について、あえてお話しさせていただきます。
(当社の電気設計受託サービスはコチラ

「そんなん、知ってるわ!」ってみなさん思ったはずですが、ハードウェアの不具合を調査すると、このプルアップ、プルダウンなどのハードウェア端子処理が漏れていたことが原因である割合が結構多いと感じます。

では、なぜプルアップやプルダウンのような基本的なハードウェア端子処理が設計時に漏れてしまうのか?について私なりの見解をお示しします。

ちょっとその前に、プルアップ、プルダウンなどのハードウェア端子処理が必要な理由について念のため振り返っておきます。

 

主な理由としては2つあります。

まず1つ目は、図1のインバータ回路のように入力がオープンの場合、入力の電位レベルが定まらず、インバータの出力がHighになるかLowになるかわからない状態となります。入力がたまたまスレッショルド電圧より高い場合は、出力がLowになりますし、入力が低い場合はその逆となります。

 

図1 入力がオープンのインバータ回路

 

これでは回路がどのように動作するかは“神のみぞ知る”ことになり、製品として都合の悪い方に転ぶと不具合症状として現れます。

よって、図2のように入力回路には端子処理を施し、入力がオープンの場合も確実に電位を決めてやることが必要となる訳です。(図2ではプルアップ処理をしています)

 

図2 入力をプルアップ処理したインバータ回路

 

次に2つ目の役割は貫通電流の防止です。

デジタル回路では多くの場合、入出力回路にCMOS回路が使用されております。ここで入力の電位が電源電圧に対して中間電位付近でふらつくと、PMOS、NMOSの双方がハーフオン状態となり、貫通電流が流れてしまいます。

 

図3 CMOSの貫通電流のイメージ

 

この貫通電流は余計な電流であるためバッテリー動作する機器ではバッテリーの持ちが悪くなるなどの不具合に至ります。また、最悪の場合、貫通電流でCMOSが壊れる可能性もあるので絶対に避けなければなりません。

ちょっと前置きが長くなりましたが、プルアップやプルダウンなどのハードウェア端子処理が必要な理由について再確認していただけたかと思います。

 

さて、ここからが本題のプルアップ、プルダウンなどのハードウェア処理が漏れてしまう主な理由です。

私が思うワースト1は、接続相手がマイコンの場合です。

一見するとマイコンはHighかLowを出力するのだから入力レベルが不定になることは無いじゃないか?と思うかも知れません。しかし、マイコンのポートはマイコンが起動し(電源が立ち上がりリセット解除された状態)ポートの初期設定を終えるまで入力は不定となります。これは、電源を入れたとたんにマイコンが何かしら出力してしまうと、回路が意図した動作とならないことを防止するためです。

 

図4 マイコンとの接続例

 

このため、設計者は電源起動時にどのような状態を期待するかによって、プルアップかプルダウンのハードウェア端子処理を追加しなければなりません。

なお、このプルアップかプルダウンはどちらでも良いわけではありません。基本的には電源起動時などは、回路がまだ不安定な状態ですので、後段の回路ブロックがいきなり動きださないようにネゲート(インアクティブ)する方向にハードウェア端子処理を入れます。

例えば、図4の回路で出力を何かしらのデバイスのイネーブル端子(Lowアクティブ)に接続する場合、次のようにハードウェア端子処理を施して電源起動時はディセーブルになるように設計します。

 

図5 マイコン起動時に接続先デバイスをディセーブルする端子処理

 

このようにマイコン制御する回路の場合、電源起動時の振る舞いに注意して正しくハードウェア端子処理を施す必要があります。

 

次にハードウェア処理が漏れてしまうワースト2(あくまで私見ですのであしからず)は、基板間を跨ぐ信号ラインの場合です。

図6は、回路としては図5の回路と同じで問題ないように思いますが、基板間を跨ぐ場合、次のケースについても考慮が必要です。

✓ 基板Aがオプション設定であり基板Bのみで動作させる場合があるとき
✓ 基板Aと基板Bで電源の立ち上がりタイミングが異なるとき
✓ 実装基板の出荷検査などで基板Bのみで動作させるケースがあるとき

 

図6 基板間を跨ぐ信号の回路例

 

これらのことを考慮するとやはり基板B側にも下記図のようなハードウェア端子処理が必要となります。

 

図7 基板間を跨ぐ信号ラインのハードウェア端子処理例

 

このようにハードウェア端子処理はあらゆるユースケースを考え、漏れがないように施す必要があります。設計者なら誰でも知っているハードウェア端子処理ですが、これが漏れてしまうのは、ユースケースの洗い出しが不十分だったことに起因する設計ミスとなります。

単純な処理ですが、ベテランのエンジニアでも忙しい時にはユースケースを漏れなく洗い出すのは難しいことや、審査会議のレビューアーも限られた時間の中で指摘できないで漏らしてしまうケースがあるのだと思います。

なぜか回路が上手く動作しないなど、お困りの際は、今回のブログをご参考にしていただけますと幸いです。

 

当社では、このような設計ミスを排除するため、過去トラをまとめた設計チェックシートを設計や社内レビューの際に活用するようにしております。

また、当社では組織的に品質管理した各種設計サービス(電気設計受託サービス基板レイアウト設計受託サービスなど)もご提供しておりますので、何かお困りの際はお気軽にご相談ください。

 

【関連リンク】

 

WTIメールマガジンの配信(無料)

WTIエンジニアが携わる技術内容や日々の業務に関わる情報などを毎週お届けしているブログ記事は、メールマガジンでも購読できます。ブログのサンプル記事はこちら

WTIメールマガジンの登録・メールアドレス変更・配信停止はこちら

 

WTI動画リンクはこちら
WTIの技術、設備、設計/開発会社の使い方、採用関連など、幅広い内容を動画で解説しています。

 

 © 2005 Wave Technology Inc.