2020年9月12日土曜日

DACを使ってみよう(PICシリーズその9)

 前回、「MCCでI2CかADCの設定をして動作させてみようと思っています。」といっていましたが、うまくできなかったのでとりあえず置いておきます。

代わりに今回は、PIC内部にあるDACを使ってみます。

MCCの設定

いつもの通りにプロジェクトを作成した後、MCCをクリックします。
今回はDACを使用してみるので、DACとFVR横の+をクリックします。

次にDACとFVRそれぞれの設定を行います。


①DAC(5bit)の設定
設定は以下の通りになります。
参照電圧は内部のものを使用するので、FVRを設定します。



②FVRの設定
FVRとは、固定参照電圧の略です。DACやADCのリファレンスに当たるものと考えていいと思います。
出力レベルは1.024V/2.048V/4.096Vが選択できます。また、FVRは外部出力不可です。

設定は以下の通りになりますが、FVR_buffer2 Gainは4xの方が電圧にばらつきが少ないなと思っています。

コード

今回のプログラムは、5ビットのDACを階段状に変化させます。内容としては0~31に1づつ変化させます。

変化のさせ方はfor文で0から開始し1づつ増やし、31に達したら1づつ減らし、0になる。その繰り返しになります。

(ちなみに、1の変化量は0.157Vとなっています。)

==================================================

#include "mcc_generated_files/mcc.h"

void main(void)

{

    int i;

    SYSTEM_Initialize();

 while(1) {

          for (i=0 ; i < 32 ; i=i+1) {

               DACCON1 = i ;

               __delay_us(1) ;

          }

          for (i=i-2; i > 0 ; i=i-1) {

               DACCON1 = i ;

               __delay_us(1) ;

          }

     }

}

==================================================

接続図

用意したもの

・PIC16F1503↓
・PICkit4
・ブレッドボード
・ジャンパコード
・書き込み機
・オシロスコープ

接続図は以下の通りとなります。
マイコンの11pin出力波形をオシロスコープで確認しました。

結果

波形は以下の通りとなります。
PIC16F1503は5bitなので、ガタガタが目立ちます。

8bitのものだともう少し滑らかになります。また、個別のDACだと12bitや16bitのものがあります。

この状態では、DAC出力に負荷をつなげても電流が引くことができないので、電流が引く際は、パワーアンプを付けます。

0 件のコメント:

コメントを投稿