まずはデジタル入力、出力の設計のやり方を紹介します。
え?アナログ回路やるのではないの?とお思いかもしれませんが、これもアナログ回路です。
基本的に基板上の物は全部アナログ回路です。
一般的にデジタル回路と言うのはFPGAやCPLDのようなプログラマブルなICやマイコンのようなICの中身を指します。
またデジタル回路の設計はハードウェア記述言語(HDL)を使用して設計します。
一見そんなこと簡単だろと思われるかもしれませんが、
『デジタル出力をデジタル入力に繋いで完成』
……というわけには行かないのです。
以下にざっくりと手順記載します。
間違ってること、不足していることもあるかもしれないので補足や指摘いただけるとありがたいです。
1.内部回路を調べる。
ICのデータシートやマイコンのハードウエアマニュアルを確認して内部回路を調べます。
出力側は大まかにこの5種類の回路。
FETがトランジスタになっている物もありますが特性が異なるだけで基本は同じです。
1番左がプッシュプルタイプ
VDDに繋がるFETがONするとHiを、OFFするとLoを出力します。
また両方OFFの状態をHi-Z(ハイインピーダンス)と呼びます。
消費電力を減らしたい場合や入力と出力を一つの端子で行いたい場合(バスなど)で使用します。
両方ONは壊れるので出力出来ません。
2番目、4番目がそれぞれプルアップ、プルアップと呼びます。
片方のFETが抵抗に変わっています。
抵抗ですのでHiLoが切り替わる速度はFETよりも遅いですが、FETを使用するよりも低コストで作れます。
3番目がオープンドレインやオープンコレクタと呼ばれます。
5番目がハイサイドスイッチ。
2番目、4番目の抵抗が外付けになった形です。
外付けの部品が増えるので少し面倒ですが、複数の出力を一つの入力に接続することが出来ます。
HiをFETで出力するICとLoをFETで出力するICが同時に存在すると、多大な電流が流れて壊れますが、この場合はHiかLoが抵抗になるので壊れない。
入力側は基本的に1種類ですが内部でプルアップやプルダウンが出来るようになっている場合があります。
2.外部回路
内部回路がオープンドレインやオープンコレクタの場合、プルアップ抵抗を接続する必要があります。
またハイサイドスイッチの場合はプルダウン抵抗を接続する必要があります。
プッシュプルの場合はどちらも付ける必要はないのですが、ノイズ対策や途中のコネクタ等の故障を考慮して、プルアップ抵抗やプルダウン抵抗を入れる場合があります。
少しめんどくさい話なのでここでは割愛。
3.絶対最大定格(Absolute Maximum Ratings)
各ICの電源ピン、入力ピン、出力ピンの電圧が絶対最大定格を越えないことを確認します。
特に注釈がなければ一瞬でも越えてはいけないと考えてください。
Hi/Loの切り替え時などにオーバーシュートにより本来の出力電圧よりも上がることがあるので多少の余裕を持ってください。
オーバーシュートについては別途説明します。
電源電圧は誤差も考慮して考えます。
電源電圧が5V±10%とすると、出力電圧は5.5Vまで上昇します。
つまり繋がれた入力ピンの絶対最大定格は5.5V以上必要となります。
出力ピンの出力電流が絶対最大定格を越えていないことを確認します。
接続された入力ピンのinput currentやプルアップ抵抗、プルダウン抵抗に流れる電流の合計が出力ピンの出力電流となります。
Hi, Loそれぞれ計算し、電源電圧は誤差を考慮して出力電流が一番大きくなる値を使用します。
4.入力閾値の確認
Hi出力時の電圧(High-level output voltage)の下限が入力電圧(High-level input voltage)下限より大きいことを確認します。
Lo出力時の電圧(Low-level output voltage)の上限が入力電圧(Low-level input voltage)上限より大きいことを確認します。
出力電圧は電源電圧に大して何V少ないかと定義されている場合があるので注意してください。
もちろん電源電圧は誤差を考慮する必要があります。
output voltageはいくつかの出力電流に分けて定義されていることがあります。
実際の出力電流より大きい物を選んでください。
これだけのことを考慮して設計すれば簡単なデジタル入出力は動くと思います。
【メモ】中級以降で書きたいこととか
・オーバーシュート、アンダーシュート、リンギング
・プルアップ、プルダウンの決め方
・バス、タイミング
・異種電源、ラッチアップ
・実際になんか回路を書いてみる
・もうすこしわかりやすく
0 件のコメント:
コメントを投稿