連続したA-Dコンバーターの変換の際に、被測定電圧が、n回目とn+1回目で大きく異なった場合、n+1回目の変換電圧の誤差が大きくなることがある。これは、サンプリング用の内部の電圧保持用コンデンサーの充電または放電の時間が、ユーザーが設定したサンプリング時間よりも長くなってしまい、被測定電圧に至らないままで二分検索が始まって、正常な変換結果が得られないためである。
対策としては、サンプリング時間を十分確保するか、ダミー変換を1回入れて、電圧保持用コンデンサーの電荷をある程度充電または放電しておき、2回目で本番の変換を行う方法が有効だ。
実際にあった例では、ユーザーが被測定電圧を安定させるために、端子に外部コンデンサーを付けた場合にこの現状が起きて、A-Dコンバーターの変換結果の誤差が大きくなったことがある。
ただし、マイコンによっては、電圧保持用コンデンサーの充放電回路を内蔵している製品もあるので、詳細については、マイコンのマニュアルを確認してもらいたい。
被測定電圧源とマイコンのA-Dコンバーターの入力端子をつなぐ配線が長くて、正確に変換できなかった例がある。「A-Dコンバーターの変換ができない」という問い合わせがあったので調べた結果、1m近い配線を引き回していた。これでは、ノイズを拾うアンテナを設けているのと同じであるので、どんなに優秀なA-Dコンバーターでも正確な変換は不可能である。
マイコンに接続する配線を長くすると、A-Dコンバーターの変換だけでなく、マイコンのノイズ耐量が落ちて、ESDやラッチアップの原因になる。また、高速通信の配線であれば、通信不良の原因になるので、絶対に行ってはいけない。
前述したが、マイコン自体もノイズの発生源である。自ら出したノイズでA-Dコンバーターの変換誤差を大きくする。
変換の際には、A-Dコンバーターモジュールだけ動作させて、他の機能を止めて変換するのが理想的であるが、CPUやDMA(Direct Memory Access)を使わなければ、変換結果を取り出すことができない。したがって、CPUまたはDMAとA-Dコンバーターモジュールだけ動作させて、その他のモジュールは停止させることが現実的である。
実際に、その他のモジュールが動作すると、どのくらい誤差が増えるか実測してみた。具体的にはA-Dコンバーター変換と同時に、PWM(Pulse Width Modulation)機能で汎用I/Oをパタパタとトグルしてみた。それも、汎用I/OはA-Dコンバーターの参照電圧用端子VDDAの隣の端子の汎用I/Oと、被測定電圧の入力端子の隣の汎用I/Oを使ってノイズの影響が出やすい状況にして変換を行った。
結果を図13に示す。変換結果がマイナス側にシフトしていることが明らかだ。
今回の実測はJTAGツールを接続して、マイコンの内部レジスタを観測している。もちろん、JTAGツールからもノイズは発生し、それが誤差になって現れる。実際の製品では、JTAGツールは取り外されているので、JTAGツールのノイズの影響はないと考えられる。
Copyright © ITmedia, Inc. All Rights Reserved.