2010年3月10日水曜日

続々・AD変換精度

 前回の投稿に関していろいろコメントいただいたので,さらに状況を整理してみる.

まず,確認として,
・部品点数を可能な限り少なくしつつ性能を確保する
のが目標である.

それで,試作回路の補足として,
・アナログ電源,デジタル電源,モータ電源は全て分離している.しかもバッテリコネクタの根元から.
・アナログとデジタル電源にはリニアレギュレータを使用.
本当は回路図を示せるといいのだが,それはそのうち.

ノイズ発生のタイミングは,
・PWM制御しているモータのon-offの切り替えのときである.

考えていくなかでわかってきた原因は,
・モータは電流連続に近い状態で回っているが,バッテリに流れる電流は連続ではない.
・ゆえに,流れる電流に応じてバッテリ電圧が変動する(内部抵抗など)ならばレギュレータ入力は不連続な電位となる.
・レギュレータはステップ入力に対して数十usのオーダで遅れがあるため,遅れ期間中は安定点とは異なる電位を示す.

これが本当であれば,解決策は,
・レギュレータ入り口の電圧変動を抑えるためにコンデンサを入れる(それなりの効果はあった)
・精度を確保すべきAVCCにLCフィルタをいれる(Nakashimaさんご提案)
など.

 もう少し詳細に探らないとなんとも言えないこともあるが,実はAD変換器だけ精度を確保すればいいかというとそうでもなく,フォトセンサのLED発光強度が変動するのもまた問題となっていて,この場合それなりに電流を消費する.まあ,ジャイロほど精度にはこだわらないのであきらめてもいいが.

 L,Cなどをうまく配置することを考えてもう少し試してみよう.

3 件のコメント:

w谷 さんのコメント...

Lは電流が流れるところでないと効果が薄いので、AVCCに入れるのであれば、RCフィルタでも意外と効くかもしれません。

yuta さんのコメント...

消費電流に対してバッテリの内部抵抗が大きすぎる、って事なんでしょうか。 むつかしいですね^^;

良ければ参考までに教えて頂きたいのですが
現時点でADはどの位振れているのでしょうか?

kojima さんのコメント...

まず,STM32を使っていて12bit分解能なので4096分割
されます.AVCCには2.5Vを入力.

安定状態でも±5くらいはふらふらしますが,その平均値はほとんど変化なし.
現状でスイッチングのタイミングにAD変換のタイミングをあわせるとSTM32の内蔵基準電圧とかジャイロの基準電圧の平均値が5程度シフトします.(2000 -> 2005 とかいうかんじ)
ぴったりタイミングをあわせるともっとシフトすると思います.
フォトトランジスタからの入力は100くらいシフトしていたような気がします.(これが調べはじめたきっかけ)

積分なんて考えなければフィルタでどうにでもなりますが,最近は積分のために平均値の変動を±0.1に抑えたい気がしてきたのでRCフィルタとかをはさんでも不十分になってきました.

PWMとAD変換の周期が全く同じとか整数倍とかで無い限りは気づきにくい現象ですね.

コメントを投稿