« 電源回路 主電源より0.1V~0.2V低い電圧の電源が欲しい #2 | トップページ | MOLEXの圧着工具、スプリングが折損 佐藤テック君が修理 »

2026年4月30日 (木)

ATtiny3224の12bit ADC

ATtiny3224の12bit ADCを評価するため、電源回路
からあれこれと・・・

電源回路 主電源より0.1V~0.2V低い電圧の電源が欲しい
電源回路 主電源より0.1V~0.2V低い電圧の電源が欲しい #2

で、結局、こんな評価回路になりました。
Lm74

ラズパイ・ピコの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にして計ってみました。
Cap012_20260501131901
想定値より低い測定電圧になっています。
Vrefを2.5Vにするとさらに下がりました。
AD入力端子にVref電圧をつっこんでも、
フルスケールの4095は得られません。
VrefがVddなら電源につないでもフルスケール
値が出ないのです。

また、ゼロボルト付近の挙動もやっかいです。
Cap013_20260501132201
入力電圧が上昇してもしばらくゼロが続き、
あるところから変換値が出始めます。

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)

 

|

« 電源回路 主電源より0.1V~0.2V低い電圧の電源が欲しい #2 | トップページ | MOLEXの圧着工具、スプリングが折損 佐藤テック君が修理 »

ATtiny」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« 電源回路 主電源より0.1V~0.2V低い電圧の電源が欲しい #2 | トップページ | MOLEXの圧着工具、スプリングが折損 佐藤テック君が修理 »