ATtiny3224の12bit ADC
ATtiny3224の12bit ADCを評価するため、電源回路
からあれこれと・・・
電源回路 主電源より0.1V~0.2V低い電圧の電源が欲しい
電源回路 主電源より0.1V~0.2V低い電圧の電源が欲しい #2
ラズパイ・ピコのAD入力テストでもマルチプレクサを
使って、PWMを用いたDACを試していました。
Arduino IDEでRaspberry Pi Pico:PWMでD/A出力してA/D入力を試す
Arduino IDEでRaspberry Pi Pico:A/D入力が…あれっ?
ATtiny3224での結果、そのうちまとめますが
あんまし良くありません。
単調性は大丈夫なのですが、12bit値として
想定より6~8くらい小さな値が出てくるのです。
いわゆるオフセット誤差です。
電源電圧で変化
Vref値で変化
データシートを見ると
代表値は「1.5LSB」と良い値が示されているのですが、
最大最小値が「±28LSB」とエラい大きな値になって
います。
Arduino UNO R3のATmega328Pの10bit ADCが
調子良かっただけに、ちょいと不満です。
取り急ぎ、ATtiny3224のADC特性です。
TCA0で12bitのPWM波を発生させ、LPFを通して
DAC出力を得ます。
それをAD変換。
出力も入力も12bitなので、その差を求めて正確さ
を見つめます。
まず、0~4095をスキャンしたときのようす。
電源電圧Vddは5.0V。
DA電圧得るオペアンプは電圧を少し
拡大して出力がサチるのを防いでいます。
VrefをVddと外部基準電圧2.5Vにして計ってみました。
想定値より低い測定電圧になっています。
Vrefを2.5Vにするとさらに下がりました。
AD入力端子にVref電圧をつっこんでも、
フルスケールの4095は得られません。
VrefがVddなら電源につないでもフルスケール
値が出ないのです。
また、ゼロボルト付近の挙動もやっかいです。
入力電圧が上昇してもしばらくゼロが続き、
あるところから変換値が出始めます。
ATtiny3224のAD部には差動増幅回路が仕込ま
れていて最大16倍のゲインを設定できるように
なっています。
この内部回路のせいで、単純なAD変換が苦手な
のでしょう。
もう一つ。
LM7705でマイナス電源を作ってオペアンプを
駆動したときの効果を。
LMC6482(今はエラい高価に)の出力特性が
改善されているようすです。
LMC6482での0V付近出力
+------------ 電源0~+5.0V
+ +---- -0.2V~+5.2V
PWM (mV) (mV)
0 6.9 0.2
1 6.9 1.3
2 7.1 2.4
3 7.2 3.7
4 7.4 5.0
5 7.8 6.2
6 8.3 7.4
7 9.0 8.5
8 10.1 10.0
9 11.0 11.0
いちばん右側に数字が±電源での出力電圧。
あたりまえですが、0V付近のリニアリティがちゃんと
なっています。
単電源だと入力が0Vでも出力は10mVくらいまで
しか落ちませんが、マイナス電源が入るだけで
ちゃんと0Vから出るようになります。
・ATtiny3224 12bit ADCテストプログラム
ダウンロード - ad_test1.txt
ファイルタイプをinoではなくtxtにしています
プロンプトに対し、
?:コマンド一覧表示
数値(0~4096):DA用PWM値出力
Enter(CR):PWM値と12 bit ADC値を表示
G:スキャン開始 scan_lo→scan_hi
L:スキャン開始PWM値
H:スキャン終了PWM値
S:スキャンstep
W:スキャン待ち時間(約1ms)


































最近のコメント