This shows you the differences between two versions of the page.
— |
blogspace:xmegaのadcがおかしな値を出す件について [2016/08/04 22:49] (current) hirosi created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== XMEGAのADCがおかしな値を出す件について ====== | ||
+ | XMEGAの、と言っても自分が使っているATXMEG32A4Uだけなのかどうなのか分からないけども\\ | ||
+ | そいつらはどうもGNDに近い値を測った時にノイズフロアとはまた別の良く分からない直流バイアスが計測される。\\ | ||
+ | 実測するとADC値で大体100~180ぐらいの値(若干変動あり)が出てきていて、「ノイズにしては大きいなー」\\ | ||
+ | とは思っていたんだが、どうやらこれは仕様らしい。というかむしろわざと利便性を考えてこうなっているらしい。\\ | ||
+ | |||
+ | この状況が発生する条件は次の通り\\ | ||
+ | ・ADCを差動でなくシングルエンドモードで動かす。\\ | ||
+ | ・ADCを符号無し(unsigned)で動かす。\\ | ||
+ | |||
+ | この条件が二つ揃ったときにADC値に下駄が履かされる。\\ | ||
+ | 履かされる下駄の大きさはデータシートではΔVとして書いてあり、その大きさは0.05Vrefぐらいの大きさになる。\\ | ||
+ | ADC値だと大体200LSBぐらい。\\ | ||
+ | Atmel曰く、「マイナス入力が入った時に分かるように下駄を履かせてる」との事。\\ | ||
+ | マイナス入力を測りたかったらsignedモードを使うので余計なお世話感しかないが、そういうことらしい。\\ | ||
+ | |||
+ | で、下駄が邪魔な場合は上の二つの条件を満たさないようにADCを設定すれば良い。\\ | ||
+ | 自分がやったのはsignedモード&シングルエンドで変換すること。\\ | ||
+ | ただし、この場合は符号ビットで1bit使うので分解能が11bitになる。\\ | ||
+ | 他に良い解決方法が有るならこんな事しなくて良いけど、11bitもあれば十分なので特に今の所困ってない。\\ | ||
+ | |||
+ | 誰か(自分)の参考の為に書いときますた。\\ | ||
+ | |||
+ | |||
+ | |||