今は電源のノイズの問題に苦しんでいる。例えば、なぜ電源ラインのノイズがグラウンドまでいくのか?とか、グラウンドのバイアスと、ノイズの違いがはっきりとわからない。
IRFR5506 と J471 の出すノイズはほぼ同じだった。オン抵抗は1 Ω、 0.025Ωらしいのだけど、同条件では同じぐらいになるようだ。
今のノイズの原因が、PWMとスイッチングレギュレータによる急激な電流量の変化で電源の電圧が揺れ、それがグラウンドにまで伝わっていると考えている。その証拠に、レギュレータの前にインダクタを入れるとノイズが減る。
また、スイッチングレギュレータの入力側から出るノイズもある。本来なら、LM2596 を挟むようにインダクタが必要だ。
ノイズが MOSFET の電圧降下のみによるものなら、最も根本の部分のVCCラインにかなり大きめのインダクタを入れてローパスフィルタを形成すればよいが、どうもそうではないようだ。単に電源ラインの長さを変えると、電源ラインのノイズが増える。
LEDの時のみのノイズのスペクトラムは、次のようになっている。大体 25Hz(でいいのか?)まで線形に上がって、50Hz 付近でもう一つ山がある。PWMによるものだと思う。
もう少し低い周波数まで見てみると、次のようになった。三角派とか矩形波のような模様がでているが、これはアンプリチュードが低すぎて量子化が十分でないからだろう。
このようになる。やはり25Hz以下がドミナント。
HANTEK のソフトが長時間のデータを簡単に保存できるようになっていないので、(SDKは公開されているようだが)きれいなデータは取れないが、まぁだいたい 25Hz の低周波がノイズとして乗っていることがわかる。
周波数とは別に、バイアスがかかってしまっている。k下の図で「middle」という統計量があるが、これがゼロに近くない。これは電源ラインのインピーダンスの問題で、消費電力がサーボの駆動で増えた時に起こっている。インピーダンスの低いグラウンドを用意することで対策する。
では次に1/fノイズに対する方法だけど、難しいことを考えず LC フィルタで対策する。電源ラインなので発振しないように超強いローパスフィルタをかければ良い。
その時に、どこにLCフィルタを仕込むかが問題になってくる。
12Vで2Aを消費する負荷モジュールが25個(全部で600W)あり、マイクロコントローラは3つを予定している。それぞれのマイクロコントローラに MOSFET がはいっている。このMOSFETは主に TLC5940 の保護のために入れたもので、これがないとちょっとした誤作動でTLC5940 が発熱してしまう。
電源はATX電源を使っているので、ATX電源のPS-ONの機能を使えば似たようなことができるが、デバッグ用にももう少し細かくスイッチングをしたかった。今のところ、負荷モジュール5つにつき一つのFETで電源管理をしている。
負荷モジュールは今のところスターグラウンドではなく、電源ラインをシリアルにつないでいる。もしノイズの原因が MOSFET の電圧降下によるもののみか、それが主なものならば、MOSFET 出力側にかなり大きなインダクタ(トロイダルコイル)を入れてやれば済む話だが、実際は 70cm 以上という伝送線の上で徐々にノイズが増えてしまう。
これは、それぞれのモジュールの入り口にある LM2596 モジュールのスイッチングによるものだと思われる。LM2596 の出口側にはインダクタが付いているが、入口側にはコンデンサしかついていない。これがノイズを外部に放射していると思われる。
そこで、シリアルの伝送はやめて、グラウンドと電源は個別に配ってやることにする。電源ケーブルのみを増やすのはコスト的にも取り回し的にもそれほど難しくない。そして、それぞれの負荷モジュールの入り口でノイズをシャットアウトする。
それぞれのモジュールの入り口のVCCにインダクタを仕込めば、電源ライン自体は共通インピーダンスがあっても良い。実験したところ、LM2596の入り口近くにインダクタを仕込んでおくと、隣のモジュールへのノイズの伝搬がかなり減った。
GND のバイアス(電圧降下)は、オシロスコープの Middle (中央値)と Mean を見るとよく分かる。GNDをモジュール間でつなげると共通インピーダンスになり、660uV -> 10mV 程度になった。オシロスコープの測り方の問題もあるが、確実に増えている。
これによりグラウンドもスターにするのが効果があると考えられる。
No comments:
Post a Comment