PIC16F18326のDACのテストをします。
環境は、MPLAB X(v6.15) XC8(v2.45) MCC(v5.3.7)です。
回路図です。RA0がDACの出力ですので、ICSPが使えません。
MPLAB Xでprojectを作り、MCCを立ち上げます。
まず、systemモジュールでクロックを設定します。4MHzとしました。
DACモジュールを導入します。デフォルトのままで特に設定はしません。
Positive Reference はVDD、Negative ReferenceはVSSです。
Pinモジュールです。DAC1OUTはRA0にだけ設定できます。
DAC1OUTのDirectionがinputとなっているのですが、これでAnalog出力になります。
Generateして、main.cを編集します。
鋸歯状波を出力してみます。
プログラムです。
--------------------------------------------------------
/*
* PIC16F18326 MCC DAC test
* 2024.1.24
* JH7UBC Keiji Hata
*/
#include "mcc_generated_files/mcc.h"
void main(void)
{
// initialize the device
SYSTEM_Initialize();
while (1)
{
for(uint8_t i = 0;i<32;i++){
DAC1_SetOutput(i);
}
}
}
--------------------------------------------------------
DAC1_SetOutput(uint8_t data);関数でDACの出力が決まります。
PIC16F18326のDACは、5bitですので、dataは0から31の間の値を入れます。Positive Referenceは、VDDのほかFVR(Fixed Voltage Reference)や外部からの電圧も使えます。
DAC1OUTの出力波形です。ギザギザのある鋸歯状波が出力されました。
DAC1OUTの出力は、電流が取れませんので、実際に利用する場合は、オペアンプなどのバッファが必要です。
※コメント投稿者のブログIDはブログ作成者のみに通知されます