基本的な考え方は次のとおりです。
V1はフィルターされたPWM出力で、R2はセンサーです。U1は電圧電流変換器で、負荷R1を流れる電流はI = V1 / R2です。つまり、R1の両端の電圧は両方の入力に依存します。U2とU3は、ゲイン10の計装用アンプで、R1両端の電圧を増幅します。
R1 = 100オームとV1 = 0..5Vの場合、回路はR2 = 50..5000で動作します。たとえば、2桁の大きさで、これで十分です。
あなたがすることはそれを取り出してそれを基準電圧と比較し(最大ダイナミックレンジのために4Vがここで適切であろう)、V1の逐次近似を使用して基準電圧に可能な限り近づけることです。V1とR1の既知の電圧降下(たとえば、基準電圧)から、センサーであるR2の値を計算できます。もちろん、これによりPWMの解像度内でのみ結果が得られますが、2番目の計装用アンプを使用してエラー(出力電圧と基準電圧の差)を増幅し、マイクロコントローラーのADCの範囲内に収まるようにすると、追加のビットが得られます解像度の。
2つのオペアンプ(U1とコンパレータ)と2つの計装アンプが必要です。オペアンプから作成するのではなく、実際のものを使用してください。抵抗とオペアンプの不正確さによりエラーが発生するためです。
2桁では不十分な場合は、R1をデジタルポテンショメータに置き換えると、さらに自由度が増します。私は一度も作業したことがないので、それらがどれほど正確か、そしてそのような解決策が何らかの校正を必要とするかどうかはわかりません。
また、このアイデアを思いついたのはjpcでした。
更新:
OK、これは彼の質問への答えではありません(技術的には問題を解決しますが)OPに同意する必要があります。タイトルにある「アダプティブアンプ」にアナログデザインをする口実としてはまってしまいました。オペアンプについて何か(少し)を学びたいのでない限り、上記のすべてを忘れてください。これが私が望む、より良い答えとはるかに簡単な解決策です:
(他の回路のノイズから分離するために)電圧レギュレータから給電される抵抗分割器を使用し、上部抵抗をセンサーが持つことができるおよその最大抵抗(Rmax)に設定し、下部抵抗をセンサーにします。
ADCの基準電圧を電圧レギュレータの出力の半分に設定します。
次に、ADCでセンサーの電圧をサンプリングします。この方法では、センサーごとに1つのシングルエンドチャネルのみが必要です。他の投稿でADCの推奨を行いました。
あなたが言及したマイクロコントローラに統合されている10ビットADCを使用する場合、ダイナミックレンジはあまり得られません。最初に投稿したようなアナログ回路を使用して範囲を拡張すると、追加の部品が多くなりすぎます。そのため、他の投稿で推奨したADS1256のように、24ビットADCを使用することをお勧めします。シングルチップでの低ノイズと高ダイナミックレンジ(さらに、小さいリファレンスと、小さい場合もある電圧レギュレータ)-レギュレータを省いて、リファレンスから直接抵抗分割器に電力を供給することもできます-これは1ビットの解像度を奪いますが、とにかくたくさんあります)。いくつかの数値計算を行う必要があります(「指定された分析ウィンドウで最小値と最大値を見つけることによる自動キャリブレーション」-良いアイデアです)、
これがもう少し役立つことを願っています。
更新2:
これが最後の1つです。TIからMSP430マイクロコントローラを使用していて、それらの一部には内部リファレンス付きの16ビットシグマデルタADCがあることがわかりました。つまり、MSP430F2003およびMSP430F20013です。もしあなたがAtmelsをあきらめる気があるなら、それはあなたのワンチップソリューションでしょう。非常に低い電力。また、24個のADCを備えたマイクロコントローラーが待ち行列に入っていますが、これらはまだ生産されていません。参考として、サイプレスのPSoCマイクロコントローラーもあり、これには20ビットのシグマデルタADC(PSoC 3およびPSoC 5シリーズ)も搭載されています。これらはさらに良いでしょう。