マイコンに搭載されたA-Dコンバーターの測定精度を上げる方法【原因と対策】:ハイレベルマイコン講座【ADC測定精度編】(1)(4/5 ページ)
すでにマイコンを使い込んでいるマイコン上級者に向けた技術解説連載「ハイレベルマイコン講座」。今回から2回にわたって、ノイズの影響を受けず、マイコンに搭載されているA-Dコンバーター本来の測定精度を得る方法を、実際の測定を基に解説する。
ノイズ対策
[1]ハードウェア対策
前述の実験より、電源端子にデカップリングコンデンサーをつなげると、有効なノイズ対策になることが分かった。これは、ノイズの主成分が交流成分であることから、交流成分に対しインピーダンスが低いコンデンサーの特性を利用して、ノイズをGNDに逃がす対策である。マイコンの入り口にコンデンサーをつなげれば、外部から来たノイズをマイコンに入る前にGNDに逃がすことができると同時に、マイコン内部で発生したノイズも外へ逃がせる。
理論的には、ノイズの周波数成分に共振するデカップリングコンデンサーをつなげれば、最も効率的にノイズを除去できるのだが、実際のノイズは複雑な波形なので、無限の周波数成分を含んでいる。数種類のコンデンサーを使えば、ある程度ノイズは除去されるが、完全には取り除くことはできない。
STM32L15xでは、データシートに容量の異なる複数のデカップリングコンデンサーの推奨値を記載しているが、ノイズの特性はユーザーのマイコンの使用環境に依存するため、最終的にはユーザーが決めるべきである。
チョークコイルについては、データシートに記載されていない。これは通常の使い方であれば、デカップリングコンデンサーだけで、データシートに記載のA-Dコンバーターの精度を得られると考えられる。次回に解説する実測もデカップリングコンデンサーのみの回路で行う。
[2]ソフトウェア対策
デカップリングコンデンサーを付けても、ある程度のノイズは乗るので、乗ってしまったノイズをソフトウェアで除去する方法を解説する。
一般的に知られている方法は平均化だ。複数回測定し、平均を取るとノイズの影響を減らすことができる。子供の頃に、サイコロの目が出る確率を勉強した際、複数回サイコロを振って確率を計算すると、試行回数が多ければ多いほど理想値の6分の1に近づくことを学んだと思う。それと同じ原理である。
複数回測定し累算して、その回数で割る一般的な「単純平均」に加え、「移動平均」(図6参照)という考え方もある。「移動平均」の方が単純平均より、滑らかな平均結果が求まるので、ノイズ成分の除去効果が高いといえる。
本記事では「移動平均」は行わないが、一般的にはデルタシグマ(ΔΣ)型A-Dコンバーターのデジタルフィルターなどでは「移動平均」が用いられていて、ノイズ除去の効果が認められている。
Copyright © ITmedia, Inc. All Rights Reserved.