RL78/G14のマイコンで別の通信中にシステム全体の電源ラインにノイズが乗り、基準電圧が変動します。この変動がA/D変換結果のバラツキとして現れることがあります。ソフト側で移動平均(過去8個分のデータの平均)を取ることによって対処していますが、それでもAD値がふらつきます。なにか他によい対策法はありますか?
hira です。
・第1に、電源のノイズレベルを下げるように、ハードを改修する事です。
・ソフトで何とかする場合、8つ平均では無く、8つの中で、一番小さい値と大きい値を捨てて、6個の平均にするべきです。
・小さい二つ、大きい二つを捨てて、4個の平均の方が、実際の値に近いかもしれません。
返信ありがとうございます。ハードを改修の点で何かいい方法はないでしょうか?
電気系の知識に乏しく、そのあたりをご助力いただきたいです。返信よろしくお願いいたします。
このマイコンはアナログ用のAGNDやAVCCが存在しないのでADC以外の回路とGND(VSS)が共通になります。そのGNDのパターンがアナログ回路以外の信号変化で流れ出す信号の電流によってフラつきます。これはパターンの抵抗値が大きい場合に起こりますのでまずできそうなのはベタでGNDを引くことでしょうね。信号は基準に対してですのでデジタルもアナログもGNDが共通の場合、それぞれの信号がどのように流れるのかを考えてパターンを引くのが大事です。流れた電流はGNDで戻ってきます。戻った電流分は抵抗があれば電圧になり、記号としてのGNDは必ず抵抗値(等)が存在します。
ADCは変換の基準になる電源を選択できます。このマイコンならAVREFPというP20に基準を与えられる他、VDDか内部で生成する1.45Vを用意できます。使うアナログ電圧の範囲もありますが、基準がフラつくとそのまま結果もフラつきます。もし現在AVREFPを使っているならそれの基準電圧が安定しているかを計測器で評価するといいと思います(基準はマイコンのVSSピン近くで)。測定対象が1.45V未満なら基準電源を内蔵1.45Vにしてみるといいかもしれません。測定する信号の出力インピーダンスに注意すべきです。ADC動作では最初にサンプリングがありますので内部コンデンサにチャージ動作が発生します。オペアンプなどでバッファリングしてない場合は変換待機時間を長めに設定するとより安定するかもしれません。
ハードで何かする余地があるのであれば、電圧リファレンスICや、安定した電源から抵抗分圧で、リファレンス電位を作り、A/D入力につなげる。
・リファレンス電位のA/D変換(a)
・目標端子のA/D変換(b)
・リファレンス電位のA/D変換(c)
を行い、
(1)安定して測定出来ている結果を採用
(a)(c)の測定値が期待値通りなら、(b)の測定値を採用する
(2)電圧変動の影響を計算で補正
(a)(c)の測定値に差異がなければ、(b)の測定値を(a)(c)の測定値でスケーリングする((a)の測定値が、期待値の90%なら、(b)の測定値の90%の値を測定値とする)
((a)(c)の測定値に差異があれば、真値が予想できないので(b)の値は捨てる)
(ノイズの発生源を突き止めて、ノイズを抑える対策を行うのがあくまで本筋ですが)
チョコです。
RL78/G14のハードウェア マニュアルの「14.10 A/Dコンバータの注意事項」に以下のような記述があります。
以下のようにアナログ入力にコンデンサを入れる方法が記載されています。
さすがに0.1μFは大きすぎると思いますが、1000pF位まではいけそうです。
以上