ここにはいくつかの要因があります。
まず、ADCの入力インピーダンス。ATmega328Pは逐次近似ADCを使用します。そのため、入力は基本的にコンパレータへの入力であるため、ADCの入力インピーダンスは非常に高くなります。
ADCは、100MΩ(つまりメガオーム)の入力インピーダンスを持つように指定されています。
しかし、これは私にはやや疑わしいようです。アナログ入力リークが指定されていないという事実と合わせて、これはADCとIOピン構造全体の電気特性ではなく、ADC のみの電気特性であると推測します。デジタルIOと共有されているADC IOラインは、アナログのみのIOライン(ドキュメントから1 uA)よりはるかに多くのリーク電流(50 nA、SARコンパレーターがアナログコンパレーターに類似していると仮定すると)を持っていると思います入力トポロジ)。
ただし、ここで別の考慮事項があります。これは、Atmelが<10KΩのソースインピーダンスを指定する理由です。
入力キャパシタンス
基本的に、マルチプレクサーにいくらかの容量があった後、チップ内部のADCへの入力接続。ATmega ADC入力の等価回路を見ると:
入力がどのように見えるかを確認できます。
入力マルチプレクサをあるピンから別のピンに切り替えると、高ソースインピーダンスの問題が発生します。2つの入力(1つは0.5V、もう1つは4.5V)がある場合、一方から他方に切り替えると、入力はその14 pFコンデンサを充電(または放電)する必要があります。
信号源のインピーダンスが非常に高い場合、コンデンサを充電する必要があるため、入力電圧が一時的に低下することがあります。コンデンサを充電している間にADCが入力を変換すると、誤った値になります。
これはおそらく、ADCチャネルを切り替えた後、一定期間ADC入力を安定させることで対処できますが、対処するための最良の方法は、入力ソースが問題にならないほど十分に速く容量を充電できるようにすることです。