A/Dコンバータ その1

PIC16F88やPIC12F683などA/Dコンバータが内蔵されたPICは便利です。
A/Dコンバータとは、簡単に言うと入力端子の電圧をマイコン内部にデジタルな数値として読み取る回路です。

PIC内蔵A/Dコンバータのハードウェア的な詳細は、fitDESIGN超初心者向けPICハードウェアマニュアル第7章 A/Dコンバータが分かりやすいです。
記のサイトではPIC16F87XのA/Dコンバータについて書かれていますが、PIC16F88やPIC12F683でも基本的な部分は同じです。(ハードウェア的にはPIC16F88の方がPIC16F87Xよりも柔軟な構成が取れるように改良がされていますが、その代わりレジスタ構成が変化しているため87X用のソースコードを流用するときには若干の変更が必要です。)

さて、fitDESIGNのサイトの7-4 入力回路
には、ハードウェア的に考慮しなければならない点として以下を挙げています。

A/Dコンバータの入力回路はその計測仕様や信号源側の条件によって様々な考慮をする必要があります。以下にその考慮すべき要件を列挙しました。

● 信号源の出力抵抗はPICの仕様を満たしているか?
      (PICの仕様: 許容信号源抵抗 10kΩ Max)
● 計測信号のノイズのレベルや周波数成分は? また計測したい最大周波数は?
● 計測信号はPICの仕様の入力電圧範囲を超える可能性があるか?

今回はこれらの一番目「信号源抵抗」について書きます。

結論から書くと、信号源抵抗に制約があるのはA/Dコンバータの入力インピーダンスが高くないからです。そのため、信号源の出力インピーダンスが高いと正確な電圧が計測できないことになります。どの程度入力インピーダンスが低いのかを考えるためには、PICのA/Dコンバータの内部回路(実際はA/Dコンバータではなく、その前段のサンプル&ホールド回路)を考える必要があります。

この図は、PIC16F88のデータシートにあるアナログ入力モデルです。



これを元に、LTspiceでモデルを作ります。



RicはPIC内部のアナログマルチプレクサのオン抵抗でしょうか。最悪値としてRic=1kと選びました。
Ileakageは±500nAの間でばらつきますが、さしあたって正の値を選びました。
Rssはサンプリングスイッチのオン抵抗です。電源電圧に応じて変化することがグラフから読み取れます。電源電圧とオン抵抗には以下の関係があります。
Rss=17k-2k*(VDD-VSS)
VDD=5V,VSS=0Vと考えてRss=7kとしました。

このモデルに対して、2.5Vのステップ入力を与えたときの応答を信号源抵抗の値を変えながら確認します。


上の回路図は、信号源抵抗Rs=10kのものです。

信号源抵抗Rs=1Ωのとき。


信号源の出力インピーダンスが非常に低い場合。計測対象の信号源の電圧V(VS)とPICの入力端子電圧V(ADC)は、ほぼ完全に一致。実際にPICに読み込まれるホールドコンデンサの電圧V(HOLD)も若干の遅延が見られますが、最終的な値はほぼ一致。

信号源抵抗Rs=1kのとき。


V(VS)に対してV(ADC)がわずかに遅延しているが、V(ADC),V(HOLD)ともに最終的な値はV(VS)とほぼ一致。

信号源抵抗Rs=10kのとき。


V(adc),V(hold)ともにV(vs)から少し遅延。


また、定常状態に入ったときのV(vs)とV(hold)の差(すなわち誤差)は5mV程度。

信号源抵抗Rs=100kのとき。


遅延の量もかなり大きくなっているのが分かる。


さらに定常状態に入った後での誤差も50mV程度まで大きくなっている。

まとめると、信号源抵抗が大きくなることによって被る影響は以下の2点になります。
・サンプリングコンデンサへの充電時間が長くなる
・定常状態での誤差が大きくなる

とはいえ、これらの2点の原因は見てのとおりです。

サンプリングコンデンサへの充電時間が長くなる理由は、信号源抵抗RsとホールドコンデンサCholdがローパスフィルタを構成するからです。(経路上にある他の抵抗やコンデンサも寄与しますが、RsとCholdの影響が支配的です。)

一方、定常状態での誤差は、Ileakageによる信号源抵抗Rsの両端での電圧降下が原因です。Rs=10kのときはオームの法則V=R*Iより10k*500nA=5mVの誤差、Rs=100kのときは100k*500nA=50mVの誤差とシミュレーション結果に一致します。
fitDESIGNのA/Dコンバータの基礎の表から、5Vを10bitでA/D変換した際の1LSBは4.9mVに相当します。信号源抵抗Rsが10kのときの誤差は5mVであるので、まぁ、ちょっと1LSBを超えていますが、10bit精度のA/D変換を確保するためには信号源抵抗Rsが10k以内でなければならないというのはこういった理由からだと思います。


tag: LTspice PIC A/Dコンバータ 

comment

Secret

FC2カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoC強磁性OPアンプPICCPAecaljモンテカルロ解析常微分方程式odeトランジスタ状態密度DOSインターフェース定電流PDS5022スイッチング回路半導体シェルスクリプト乱数レベルシフト分散関係HP6632AI2C可変抵抗トランジスタ技術ブレッドボード温度解析R6452A反強磁性確率論バンドギャップセミナー数値積分熱設計非線形方程式ソルババンド構造絶縁偏微分方程式ISO-I2CLM358マフィンティン半径フォトカプラシュミットトリガカオスLED三端子レギュレータGW近似A/Dコンバータ発振回路PC817C直流動作点解析USBTL431数値微分アナログスイッチカレントミラー74HC4053サーボ量子力学単振り子チョッパアンプ補間2ちゃんねる開発環境bzqltyFFT電子負荷LDAイジング模型BSch基本並進ベクトルブラべ格子パラメトリック解析標準ロジックアセンブラ繰り返し六方最密充填構造SMPコバルトewidthFET仮想結晶近似QSGW不規則合金VCAMaximaGGA熱伝導cygwinスレーターポーリング曲線キュリー温度スイッチト・キャパシタ失敗談ランダムウォークgfortran抵抗相対論位相図スピン軌道相互作用VESTA状態方程式TLP621ラプラス方程式TLP552条件分岐NE555LM555TLP521マントル詰め回路MCUテスタFXA-7020ZR三角波過渡解析ガイガー管自動計測QNAPUPSWriter509ダイヤモンドデータロガー格子比熱熱力学起電力awkブラウン運動スーパーセルUbuntu差し込みグラフ第一原理計算フェルミ面fsolveCIFxcrysden最大値最小値ubuntu最適化平均場近似OpenMP井戸型ポテンシャル固有値問題シュレディンガー方程式TeX2SC1815結晶磁気異方性OPA2277フラクタルFSM固定スピンモーメントc/a非線型方程式ソルバgnuplot全エネルギーfcc初期値マンデルブロ集合縮退正規分布interp1ウィグナーザイツ胞L10構造multiplotフィルタ面心立方構造PGAハーフメタル二相共存ZnOウルツ鉱構造BaOSIC重積分磁気モーメント電荷密度化学反応クーロン散乱岩塩構造CapSenseノコギリ波デバイ模型キーボード半金属フォノンquantumESPRESSOルチル構造スワップ領域リジッドバンド模型edelt合金Realforce軸ラベルグラフの分割凡例線種シンボルMAS830LCK1026LMC662PIC16F785トランス関数フィッティングトラックボールPC等価回路モデルヒストグラムパラメータ・モデル不規則局所モーメント最小二乗法TS-112TS-110直流解析ExcelGimp円周率片対数グラフ両対数グラフspecx.f疎行列三次元ifort文字列不純物問題P-10等高線ジバニャン方程式ヒストグラム確率論マテリアルデザイン入出力境界条件陰解法AACircuit熱拡散方程式HiLAPWMBEEAGLE連立一次方程式ナイキスト線図負帰還安定性Crank-Nicolson法日本語

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ