こんにちは、ENGかぴです。
マイコンの周辺回路を設計しているとプルアップとプルダウンを使うことが多くあります。プルアップやプルダウンを実装しないとマイコンのDIやロジックICのDIが誤検出して誤動作の原因になることがあります。抵抗値の決め方について一例をまとめました。
多くの場合プルアップとプルダウン抵抗値として10kΩが使用されます(私の開発環境が10kΩをつかっているだけかもしれません)が、プルアップとプルダウンの抵抗値の決め方についてはロジックICやマイコンのデータシートの値を参考にしながら計算しています。
抵抗の使い方で押さえておきたいポイントについては下記記事にまとめています。
マイコンのプルアップとプルダウンの意味
マイコンのDIとDOには抵抗を介して電源やGNDに接続することがあります。電源に接続している抵抗をプルアップ抵抗といいGNDに接続するものをプルダウン抵抗といいます。マイコンによってはプルアップやプルダウンが内蔵されているものもあります。
プルアップとプルダウンはDIの信号を安定させるために使用します。接続する際は対象のなるDIピンの近傍に接続することが推奨されます。
DIはインピーダンスが高く入力が接続されていない場合入力電圧が浮遊することがあります。電圧が浮遊すると対象のDIが0になったり1になったりと安定しない状態になります。
配線パターンを引き延ばしていた場合はアンテナを接続しているようなイメージになりノイズの影響を受けやすくなってしまいます。
マイコンやロジックICにおいてDIの空きピン処理は電源に接続するかGNDにつないで信号を安定させることが奨励されています。
プルアップとプルダウンで信号を安定
プルアップとプルダウンの効果についてマイコンがDIだった場合とDOだった場合について説明します。
マイコンがDIだった場合:
マイコンがDIであり外部機器からDO信号からマイコンのDIに信号が入る場合外部機器のDOが安定していればプルアップ/プルダウンはなくても問題ありません。外部機器のDOが不安定な期間があった場合はプルアップ/プルダウンがなければDIが浮遊してしまいます。
マイコンがDOだった場合:
マイコンは電源投入後はDIピンとして動作します。マイコンの初期化処理によってDOピンに切り替えて使用します。外部機器がDIでありマイコンの安定したDOによって動作するものであればマイコンの初期化時にDIになっている短時間が問題になる場合があります。
プルアップまたはプルダウンすることによって、マイコンのDIOが切り替わる時間についても外部機器に対して安定した信号レベルになります。プルアップするかプルダウンするかは外部機器のアクティブ条件に従います。
外部機器がLOWアクティブであればプルアップ、HIGHアクティブであればプルダウンします。
過去にマイコンからPWM出力するプログラムを開発したときマイコンの電源をONした瞬間に予想していない出力が発生する不良を経験したことがあります。上記のDOピンになるまでの短期間の浮遊電圧による不良でした。
プルアップとプルダウンの注意事項
外部機器がオープンドレインの出力でプルアップされていた場合について考えるとマイコンのDIにプルダウン抵抗を実装した場合は問題になります。
電源電圧VDDを外部機器の抵抗とプルダウン抵抗で分圧した電圧がマイコンのDI入力となるため電圧が低下してしまいます。
マイコンのDIをプルダウン入力とした場合も同様に分圧されてしまうため注意が必要です。どちらともプルアップにした場合は影響はありません。
マイコンをプルアップもしくはプルダウンする際は接続される外部機器について把握しておくことが重要です。
抵抗値を計算する
プルアップとプルダウンの抵抗は大きすぎても小さすぎてもいけません。電流をケチるためにプルアップ抵抗を大きくしたため機器への電流が減ってしまい動作できないこともあります。プルアップ抵抗とプルダウン抵抗の値について計算方法を説明します。先に共通事項の値の採用について説明します。
マイコンはルネサスエレクトロニクスのRXマイコン(RX210)を例にして計算方法を説明します。リーク電流については値が大きい方を採用し1.0uAとします。
外部機器のロジックICがCMOSであればEIA/JEDEC規格に沿って製造されていることもあるので同様に1.0uAとみなすことができます。外部のロジックICが決定している場合はデータシートのDC電気的特性の入力電流Iinを確認してその値を採用します。
最大許容電流は通常出力時に4.0mAとなっていますが、余裕を見ることやプルアップ/プルダウンでは消費電流が増えることを抑えるために1mAが最大になるように考えていきます。
プルアップ抵抗の計算時にはVOLの値として0.8Vを採用します。プルダウン抵抗の最小値を計算する外部ロジックの最大VOH(以下VOH2)を使用しますが、最大の条件が電源電圧となるため5.0Vを採用します。
プルアップ抵抗の計算時には外部ロジックのVIH(以下VIH2)を使用しますが、詳細はデータシートを確認する必要がありますが、多くの場合VCC×0.8であることが多いことからVCC×0.8を採用します。プルダウン抵抗の計算時はVILの値としてVCC×0.2を採用します。
プルアップ抵抗
マイコンのDOがLレベルのときマイコンに流れる電流IOLは$$I_{OL}=I_P+I_{in}・・(1)$$となります。マイコンのDOがHレベルの時外部機器のロジックICに流れる電流Iinは$$I_{in}=I_P+I_{OH}・・(2)$$となります。
マイコンの電源電圧をDC5VとしたときDOがLレベルの時について考えるとプルアップの最小値は$$R > \frac{V_{CC}-V_{OL}}{I_{OL}}=\frac{5-0.8}{1×10^{-3}-1×10^{-6}}=4.2kΩ$$となります。次にDOがHレベルの時について考えます。マイコンのDOがHレベルの時に外部のロジックICにHレベルを伝える必要があります。
DOがHレベルになるとDOがVDD付近の値となるためほとんど電流が流れなくなります。IOH=0の時プルアップ抵抗の電圧降下は外部のロジックICの入力電流Iinで決まります。この電流による電圧降下が外部のロジックICのVIHの最小値よりも高くなることが必要です。
外部ロジックICのVIH2はVCC×0.8を採用しているので電源電圧が5Vとすると4.0Vになります。またIinを1[uA]とすると$$R < \frac{5.0-4.0}{1×10^{-6}}= 1000kΩ$$となります。
以上からプルアップ抵抗は4.2kΩ以上1000kΩ以下の範囲で抵抗値を選択することになります。
ロジックICへの信号が高速になるほどプルアップの抵抗と配線のパターンやロジックICの容量分によって時定数となり波形がなまることがあるので値を大きくしすぎるのは用途によっては不良の原因になります。
プルダウン抵抗
外部ロジックICのDOがLレベルのときマイコンに流れる電流は$$I_{in}=I_{OH}-I_P・・(3)$$となります。外部ロジックICのDOがHレベルのとき外部ロジックICに流れる電流は$$I_{OL}=I_{in}-I_P・・(4)$$となります。
外部ロジックICがHレベルの時電圧はVOH2になります。プルダウン抵抗に流れる電流はマイコンの入力電圧の差になります。プルダウン抵抗に流す電流をプルアップと同様に1mAとしマイコンのDIの電流はデータシートより1uAなのでプルダウンの最小値は$$R>\frac{V_{OH2}}{I_P-I_{in}}=\frac{5.0}{1×10^{-3}-1×10^{-6}}= 5.0kΩ$$となります。外部ロジックICの電源電圧はマイコンと同じDC5Vとしています。
外部ロジックICがLレベルの時は(4)においてIOL=0の時マイコンのDIがLレベルにするようにプルダウン抵抗の値を決める必要があります。IOL=0なのでマイコンのDIから流れ出たリーク電流Iinがプルダウン抵抗に流れます。この電流によって発生した電圧がマイコンのVIL以下になるように抵抗値を決めます。
マイコンのVILはVCC×0.2=1.0Vでありマイコンのリーク電流は1uAであるから$$R< \frac{V_{IL}}{I_{in}}=\frac{1.0}{1×10^{-6}}= 100kΩ$$
以上からプルダウン抵抗は5.0kΩ以上100kΩ以下の範囲で抵抗値を選択することになります。
私はプルアップとプルダウンの抵抗値として10kΩを多く使用しています。今回の例の範囲を見ると問題ないため特に外部機器との関係から回路を見直すことがない限り10kΩで十分だと感じています。
関連リンク
抵抗はプルアップとプルダウン以外にも非常に多く使われる部品です。抵抗の使い方について押さえて押さえておきたいポイントについて下記記事にまとめています。興味があればご覧ください。
最後まで、読んでいただきありがとうございました。