2023.2.2
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第174回]



●PICUSBIO−03(123)ADコンバータ(6)’DAC’入力

今まではDACの値をCVREF端子から出力してそれをAN7端子から入力してAD変換をするという形で動作テストをしてきました。

ところで。
[第169回]で少しだけ書いたことですが、AD変換は普通はアナログ入力端子からアナログ信号を入力してそれをデジタル値に変換するのですけれど、そのほかにDACの値を外部端子に出力してそれをAD端子から入力するのではなくて、内部的に直接入力するチャネルがあるようです。
[第167回]のブロック図とADCON0レジスタのところを見るとDAC出力はADCのチャネルbd(’1110’)から入力できるように読めます。
またFVRはチャネルbe(’1111’)から入力できるようです。

FVRについてはこの次に確認することにしてまずはDAC入力チャネルをテストしてみることにします。
[第172回]のプログラムをもとにして一部を書き換えました。

10行でDACの値を外部出力端子CVREFから出力しない設定にしました。
REFCON1は[第169回]で説明しています。
REFCON1のbit5=0にするとDACが外部端子から出力されなくなります。
今回のテストでは今までと同じように外部端子に出力されていても構わないのですが外部端子に出力されている値を入力していないことを明確にするためにそのような設定にしました。
同様に20行と30行でAN7端子をアナログ入力に設定しているところも削除しました。
これもそうしなければならないわけではありませんが上記と同じ理由からそのようにしました。
60行、70行、100行でADCON0の<bit5:bit2>を’1110’に設定します。
ADCの入力チャネルをDACにする設定です。
ADCON0は[第167回]で説明しています。
130行では前回のプログラムと同じ考えでprint文の最後にDACに設定したデジタル値をアナログ電圧に換算した値を追加しました。
DACの出力はVDD(=5000mV)をa/32分圧したものなのでそれを計算で求めると5000*a/32になります。

プログラムを実行しました。

スクロールして見えなくなった部分を下に戻して表示しました。

最初にDACに入力したデジタル値があって、その次がADコンバータのチャネル’E’(DAC入力)に入力されたアナログ値が10ビットのデジタル値に変換された値で、その次はそれを電圧値に換算した値で、最後は最初のDACに入力したデジタル値を電圧値に換算した値です。
最後の値とその前の値がほぼ同じ値になっていることからDACの値がADCに入力されたことが確認できます。
これでADCのチャネル’E’にDACの値が入力されることが確認できましたからそこまででテストを終ってもよいのですけれど。

前回はDACのプラス側電源としてFVRを選択するプログラムを作ってテストしました。
そこで作ったプログラムを見ながら今回のプログラムをほんの少し書き換えればDACのプラス側電源をFVRにして上記と同じテストをすることができます。
ことのついでですから今回はそれもテストすることにしました。

最初はFVR=1.024Vにしてのテストです。

10行の$c0を$c8に書き換えました。
REFCON1の<bit3:bit2>を’10’にするとDACのプラス側電源がFVRになります。
15行を追加しました。
REFCON0のbit7=1にするとFVR出力が有効になり、<bit5:bit4>を’01’にするとFVR=1.024Vになります。
REFCON0、REFCON1は[第169回]で説明しています。
ADコンバータの設定に変更はありません。
130行で最後に追加したa*5000/32をa*32に変更しました。
a*32については前回説明しました。

プログラムを実行しました。

スクロールして見えなくなった部分を下に戻して表示しました。


次はFVR=2.048Vにしてのテストです。

変更するのは15行と130行だけです。
REFCON0の<bit5:bit4>を’10’にするとFVR=2.048Vになります。
130行のa*64については前回を参照してください。

プログラムを実行しました。

スクロールして見えなくなった部分を下に戻して表示しました。


最後ははFVR=4.096Vにしてのテストです。

15行と130行を変更しました。
REFCON0の<bit5:bit4>を’11’にするとFVR=4.096Vになります。
130行のa*128については前回を参照してください。

プログラムを実行しました。

スクロールして見えなくなった部分を下に戻して表示しました。


PIC−USBIO using BASIC[第174回]
2023.2.2upload

前へ
次へ
ホームページトップへ戻る