MCU 78:D/A 5bits Converter


5ビット D/Aコンバータ・モジュール

 最近のPIC12F/16Fの1000番シリーズは5bitのD/Aコンバータが追加されており、入力や出力動作を何種類か設定出来ます。使い道も多いと思うので書き出してみました。

[主な動作]
☆入力は+が3つ(VDD.Vref+.FVR Buffer2)、-が2つ(Vref-.VSS:GND)の入力を設定出来ます。
☆出力は外部PINに取り出し(DACOE=1)たり、内部で使うことも出来ます。
☆FVR(FIXED VOLTAGE REFERENCE)はD/A入力の場合別系統なので、電圧設定もA/Dコンバータとは別に設定出来ます。
☆分解能力は5bitで1/32と少し不満です。

[使用例]電池動作で電圧チエックをしたい!
 入力をVDD(DACPSS=00)とVSS(DACNSS=0)に設定し、出力をPINに出さず(DACOE=0)にA/Dコンバータに入れる(ADCON0.ADCHS=0b11110)。
 A/Dコンバータの基準電圧をFVR Buffer1にし(FVRCON.ADFVR=01)1.024Vとする。
 これでA/Dコンバータを動作させれば電池電圧を測れます。この時D/Aコンバータは分圧器(3/32:約1/10、入力が1Vを越える為)として作動します(この他もう少し設定が必要)。
 電圧が分かるとLCDに表示したり、コントラストの補正や電圧低下のアラーム発生・忠告などに使えます。

DACCON0で各種設定
7-DACEN1=Enabled
6-DACLPS1=Positive 0=Neg
5-DACOE1=OutPutPin Enabled(端子) 0=Dis
4-not use-
3.2-DACPSS00=VDD
01=VREF+(端子)
10=FVR Buffer2(1.024V 2.048V 4.096V)
11=not use
1-not use-
0-DACNSS1=VREF-(端子) 0=VSS(GND)
DACCON1で5bitの選択
-0b000*****
例:3.3V*3/32=0.309(V)でA/D=302となる。これに逆数(K)を入れると数字が出ます。
302*109=329これをLCDに3.29Vと出せば電圧が分かる。
K=1.024*32/3です。(精度は8%の誤差があるので2桁以上出しても意味が無いかも!)

[この方法は]
 A/D入力を外部ピンを使わずSoftだけで調べられるのがメリットです。  精度はFVRによりますが、温度的には安定しているようなので使えます。数字を正確にするには何所かで補正する必要があります。

 なを、A/D入力には温度センサー(ADCON0.ADCHS=0b11101)も含まれているので、興味ある方は実験して下さい。ラフな測定なら使えると思いますが、専用の温度センサー(LM61BIZなど)を使う方が簡単で精度も取れます。
 内臓のセンサーを使うメリットはSoftだけでそこそこ測れる、という点でしようか。


2011/8/8 8/15


 [MENU] [MAIN MENU]

inserted by FC2 system