外部ADCの使用例


9

ほとんどのマイクロコントローラー(uC)には、周辺機器セットの一部としてアナログデジタルコンバーター(ADC)があります。これは、2つのコンポーネントを1つのパッケージに統合するため、驚異的です。これらのADCは通常、レジスタマッピングも行われるため、データをすばやく簡単に抽出できます。

この緊密な統合にもかかわらず、外部ADCを購入できます。私はこれらのいくつかのケースを見ることができます:

  • ADCはuCから分離する必要があります。
  • ADCサンプルのビット深度は、uCのADCよりも高い必要があります。
  • 感知する電圧はマイクロコントローラから遠く、長いアナログラインは受け入れられません。
  • 検出する電圧は、uCに適していない過酷な環境にあります。
  • 外部ADCは、uCのADCよりもはるかに高速にサンプリングします。
  • 一部のサンプルの基準電圧は他のサンプルとは異なり、複数のVrefピン(したがって複数の外部ADC)が必要です。
  • 現在のuCには十分なADCチャネルがなく、新しいuCを配置するコストは法外です。
  • 外部ADCはuCのADCよりも消費電力が少ないです(それを信じるには例が必要です)。
  • ADCチャネルは同時にサンプリングする必要があります(まれなシナリオ)。
  • 製造時のファームウェアのプログラミングコストは、より高価なADCパーツのコストを上回ります(あまりありません)。
  • PCBにはスペースの制約があり、uCは適合しません(まれに)。

これは問題なく機能しますが、奇妙なことに、外付けADCは通常、対応するuCのものよりかなり高価ですが、同等の機能を提供します。たとえば、12ビット1Msps ADC(内部リファレンス付き)を備えたEFM32Zパーツを約$ 1で購入できます。または、同等の12ビット200ksps ADCを約$ 3.50(同じ速度(ish)、比較的同じ電力値など)で購入できます。同じタスクを実行します(ADCデータの抽出)。

質問は次のようになります。後者が同じ機能を実行できるときに、エンジニアがuCのADCよりも外部ADCを好む説得力のある理由はありますか?


1
同時サンプリングは、実際には、信号処理などの一部のアプリケーションスペースではかなり一般的なシナリオです。
Jason R

回答:


12

マイクロコントローラーの内部ADCが必要なジョブを実行する場合は、外部ADCは必要ありません。しかし、それは彼らが目指しているのではありません。

外付けADCの理由のほとんどをカバーしましたが、他にもいくつかありますが、私の意見では、これらは最も重要な理由のいくつかです。

  1. 別のサンプリングテクノロジーが必要です。たとえば、内部ADCはSARですが、デルタシグマを実行する必要があります。
  2. 内部ADCは内部にあり、メインMCUと同じダイを共有するため、MCUの他の部分のノイズが100%なくなることはないため、外部ADCは超低ノイズを実現することができます。
  3. 選択したマイクロコントローラー/ SoC / FPGAにはADCがありません。後者の2つが最も可能性が高いです。最も一般的なSoCおよびFPGAには、ADCがまったくありません。はい、できるものを手に入れることができますが、多くはできません。したがって、外部のものを追加します。

ポイント3として、Raspberry Piを例にとってみましょう。これにはADCがまったく使用できません。アナログ作業を行うには、外部ADCを追加する必要があります。


面白いですね。ノイズに関しては、外部ADCを購入する代わりに、ビット深度の高いuC ADCを取得し、サンプリングされた結果の最下位ビットを無視することで同じ結果が得られます(これにより、追加のビットは妨げ要因ではありません)。
TRISAbits 14

3
事後の信号処理は、サンプルタイミングに依存しないプロセスからのノイズ(つまり、「ランダム」ノイズの原因となる)にのみ役立ちます。プロセッサシステムのノイズの多くは、サンプリングプロセスとある程度同期している電源と接地負荷の変動の結果です。それらを回避する唯一の方法は、ADCに独自の切り離された電源レールを使用させることです。多くのADCはアナログとデジタルのVDD / VSS間で100mV程度を容易に許容できるため、完全な絶縁は必要ありません。
スーパーキャット2014

9

外部ADCを使用するもう1つの理由:

  1. 多くの外部ADCパーツには差動入力が含まれていますが、マイクロコントローラーの組み込みコンバーターには含まれていないことがよくあります。入力に多くのコモンモードノイズがある場合、それは非常に重要です。

  2. 多くの外部ADC部品には、コンバータ自体の前にアンプ段が含まれているため、コンバータは高インピーダンス信号を直接測定できます。多くのマイクロコントローラでは、入力信号をサンプリングする動作が妨害することがあります。入力信号の性質によっては、正確な測定を行うために必要な集録時間が大幅に増加する可能性があります。

  3. 内部ADCの幅が12ビットであっても、一般に、4096の読み取り精度が1部分であるとは限りません。両方のアドバタイズされたビット深度が同じであっても、一般的な外部ADCの仕様は、内部ADCよりも優れていることがよくあります。

ADCをマイクロコントローラに統合するのは簡単です。優れた ADCを統合することははるかに困難です。より一般的な推測。


1
サンプリングコンデンサアレイを入力に瞬間的に接続すると、測定対象が中断されるため、SAR ADCは電荷注入の影響を少し受けます。入力ソースがすぐに回復しない場合、これにより測定エラーが発生します。通常、分解能を上げるには、内部サンプリング容量を大きくする必要があります。デルタシグマ分解能は、デジタルカウンターの拡張にのみ依存します。(ただし、高解像度のINL / DNLの優れた仕様を実現することは簡単ではありません。)
MarkU

@supercat:変換の一部としてアンプ段を考慮したことがなかった。これは興味深い回路サンプリングの道を開きます。
TRISAbits

2
@MarkU:一部の回路で電荷注入の問題を確認しました。奇妙なことに、一部のコンバーターは、(最後にサンプリングされた入力から)前のサンプリング値に向かって入力を充電しようとするように見え、一部はゼロに向かって充電しようとし、少なくとも1つは任意に(ランダムに)高い方に充電するように見えましたまたは私がかなり迷惑だと思った低い電圧。一部が後者を行う理由がわかりません。何かに向かって充電する必要がある場合でも、一貫してゼロに向かって充電する方が、「ランダムな」値に向かって充電するよりも優れています。
スーパーキャット2014

4

一部の外部ADCが存在するもう1つの理由は、外部ADCが内部ADCを備えたマイクロよりもかなり長く、多くの製品に組み込まれていることです。おそらく20年または30年長くなります。(リンクされたSOICパーツの場合はおそらくありませんが、クラシックパーツの最新のダイ収縮バリエーションである可能性があります)

ADCが優れた分解能、精度、または速度を備えていないにもかかわらず、プレミアム価格を要求する場合、これが原因である可能性があります。

新しい設計の場合でも、新しいパーツの周りを再設計するよりも、うまく機能するブロックを再利用する方が望ましい場合があります(結果として生じる統合によってBOMコストが削減されたとしても)。そのリエンジニアリングは高価になる可能性があります。テストと規制の承認プロセス、さらにそうです。

最初から始めて、選択したマイクロコントローラーに要件を満たす十分なADCチャネルがある場合、上記のいずれも当てはまりません。


2

これは非常に古い質問であることは承知していますが、社内でかなり頻繁に議論している質問です。

そうです、外部バージョンが機能的にまったく同じである場合、外部ADCを選択することは珍しいでしょう。ただし、私の経験では、低コストのマイクロには通常、温度ドリフト、低ビット数(10-12ビット)、およびVCCからのノイズ(場合によっては+/- 20mV)を備えたかなり粗いADCがあります... ..オーバーサンプリングしてノイズが存在する場合は、S / Nを改善できます。私たちの製品開発活動では、内部に存在するADCの品質に基づいてMCUを選択することはほとんどありません。通常、それはツールチェーン、コスト、現存するファームウェアなどの詳細です。内部ADCは通常、バッテリー電圧の読み取りなどの重要でないタスクに制限されています。

さまざまなマイクロを使用すると、高速なサンプリング時間のために独占する必要がある共有タイマーの問題が発生する可能性がありますが、ADCに対して独占されると、MCU内の他のもの(ソフトウェアシリアルポート、ISRなど)に干渉します。

また、VREFとは何ですか?ファームウェアのリファレンスとしてVCCを使用している場合、「実際の」VCCに調整しても、その値は操作中にかなり大きく変動する可能性があります。オンボードの高電流デバイス(無線、Wi-Fi、MCUなど)で過渡電流の使用量が多い場合、VCCは送信中に4.8ボルトに落ちる可能性があり、サンプルがそのウィンドウの間に発生し、単純に0-1023を変換するとします。 ADC_VAL / 1023 * 5.0によるADCの読み取り値と電圧の比較-なんと200mVの精度を失っています。または、電源モードが異なる場合(USB、壁​​のいぼ、バッテリー)-MCUのVCCが(特にUSBで)変わる可能性があります。外付けADC(同じビット数でも)は、変動するVCC条件下で安定した内部vrefを提供できます。

解像度はかなり重要です。現実の世界では、10〜12ビットの解像度がいくらか使用されていると思いますが、実際のアプリケーション(ガス検出、音響測定、加速度計測定、精密温度測定など)の場合、16ビットは通常適切なS / N比および解像度特性を実現するための最小解像度。AtmelのSAMDのような本当に素晴らしい32ビットMCUでさえ、12ビットの内部ADCに制限されています。

クロックジッタも問題であり、12ビット幅の読み取りを提供するために他の8ビットマイクロが必要であり、12ビット値を操作するために少なくとも2クロックサイクルが必要な場合、本質的に不正確なことがあります。外部ADCを使用する(内部発振器を使用できるため)。

トランスデューサーへの物理的な近接とMCUからの分離が重要な場合もあります。一部の非常に敏感なトランスデューサーは、独自の調整された電力、絶縁接地面、および0.01%の受動素子を備えた非常に敏感なトランスインピーダンスチョッパーアンプを必要とします。

ただし、内部ADCを使用する説得力のある理由がある場合もあります。DMAは1つの理由です...サンプリングレートは別です。オーバーサンプリングのしやすさは別です。高速データレートで外部ADCをインターフェースすると、多くの貴重な多重化I / Oピンを消費し、より複雑な設計を行う可能性があります。また、使用したADCの多くはI2Cベースであるため、サンプリングレートはI2Cバス速度によって非常に制限されます。1ビット/秒でも、16ビットの読み取りには非常に長い時間がかかります。


これは素晴らしい洞察です!年が経つにつれて(そして私の経験が増えて)、私は同意する必要があります:内部MCU ADCはかなり粗末になり得ます。
TRISAbits 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.