ねがてぃぶろぐ(跡地)

引っ越しました→ http://gomisai.blog75.fc2.com/

全体表示

[ リスト ]

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のデータシートにあるアナログ入力モデルです。
イメージ 1


これを元に、LTspiceでモデルを作ります。
イメージ 2


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

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

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

信号源抵抗Rs=1Ωのとき。
イメージ 4

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

信号源抵抗Rs=1kのとき。
イメージ 5

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

信号源抵抗Rs=10kのとき。
イメージ 6

V(adc),V(hold)ともにV(vs)から少し遅延。
イメージ 7

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

信号源抵抗Rs=100kのとき。
イメージ 8

遅延の量もかなり大きくなっているのが分かる。
イメージ 9

さらに定常状態に入った後での誤差も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以内でなければならないというのはこういった理由からだと思います。

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事