2010年3月7日日曜日

続・AD変換精度

 少し前にAD変換の精度について考えることになって,その続きでもう少し探ってみた.やはり,特定のduty比でモータをPWM駆動するとAD変換結果がシフトする.AD変換のタイミングとモータのon-offのタイミングを考えてみると,ちょうどonからoff(brake)に変わるときにサンプリングしているようである.

 そのノイズ源であるが,おそらくスイッチングの瞬間に電源(バッテリ)の電圧がステップ上に変化し,それがレギュレータを通してロジック電源(AD変換器電源)に伝わっているものと思う.レギュレータは極めて安定した電源を供給するが,データシートを見ていると,ステップ応答に対しては数十usのオーダで遅れが出るらしい.なので,スイッチングの瞬間にはAD変換したくない.

 しかしながら,DCモータの制御をする上であらゆるタイミングでスイッチングが起こる可能性があり,duty制限によりスイッチングの起こらない安定した期間を作るなどが必要に思われる.

 少しでも緩和するには大容量のコンデンサで変化を吸収することであるが,コンデンサはかなり場所をとるのでなるべく減らしたい.

5 件のコメント:

福井 さんのコメント...

電圧リファレンスじゃだめなのかな?
かむかむhalfはref195を何となく積んでいます.

kojima さんのコメント...

なるほど.電圧リファレンス素子のことは考えていませんでした.
しかし,
・64ピン(もしくはもっと少ない)のSTM32はAD変換器の電源からREFをとることと,AD変換の瞬間にはけっこう電流を食うことを考えると十分ではないかも
・こういった素子でさえも入力側の電圧変動の影響をうけて出力が振れる
といったことがあって簡単にはいかないかもしれません.
電源電圧が急激に変化したときの過渡的な変化を抑えるにはやはりコンデンサを使うしかないかと思っています.

ただ検討の余地はありますね.

福井 さんのコメント...

FETのゲート容量が問題になっているのかな?
VCC-R-C(ゲート)-GND
とあって,Rは恐ろしく小さい値と予想されます.
理屈の上では限りなく不連続に近い(ゲートへの)入力電圧の切り替えが行われるわけで,そいつの影響を回避しようとすると,Cを吊り下げて,連続な微分方程式の係数をいじるだけで本質的に解決できるかちょっと疑問.(改善はされるかもしれないけど,具体的なCを求めるには職人チューニングが必要な可能性がある)
というわけで,そこを問題視するなら,ダイオード等で保護された,ゲート用の電源ラインを別に用意するしかないのではないかなぁと思うわけですよ.

福井 さんのコメント...

何か自分のコメントがうまくかけていない気がする.
結局,回路全体は,RとCとLを組み合わせた線形な微分方程式な感じで,普通の回路ならそんなたいした値の素子はいらないはず.
ところが,モータドライバICの中身はその道のプロが作った逸品.
限りなく無限大に近いCの値を用意しなければならなくて,いくらチューニングしても無意味に終わる可能性がある的なことを危惧してみた.

Nakashima さんのコメント...

んー、AVCCとAGNDにLCフィルタ入れれば良いんじゃない?
アナログ電源とデジタル電源(&モーター系電源)の分離を
まずは試してみるべきじゃないかと。
A/Dに使う電流ぐらいなら、小さなLCで大丈夫だし。

コメントを投稿