1.DAC概述
DAC為數字/模擬轉換模塊,故名思議,它的作用就是把輸入的數字編碼,轉換成對應的模擬電壓輸出,它的功能與ADC相反。在常見的數字信號系統中,大部分傳感器信號被化成電壓信號,而ADC把電壓模擬信號轉換成易于計算機存儲、處理的數字編碼, 由計算機處理完成后,再由DAC輸出電壓模擬信號,該電壓模擬信號常常用來驅動某些執行器件,使人類易于感知。如音頻信號的采集及還原就是這樣一個過程。
查閱RA2L1說明也可以得知,該芯片帶有DAC模塊。
本篇文章主要介紹如何使用e2studio對瑞薩單片機進行DAC輸出。
2.硬件準備
首先需要準備一個開發板,這里我準備的是芯片型號 R7FA2L1AB2DFL 的開發板。
3.新建工程
4.工程模板
5.保存工程路徑
6.芯片配置
本文中使用R7FA2L1AB2DFL來進行演示。
7
7.工程模板選擇
8.DAC配置
點擊Stacks->New Stack->Driver->Analog -> DAC Driver on r_dac。
9.DAC屬性配置
10.工程文件
查看pin_data.c,可以看到P014的定義為DAC配置,說明配置成功。
11.R_DAC_Open()函數原型
R_DAC_Open()函數為執行DAC初始化,開啟配置如下所示。
/* Initialize the DAC channel */
err = R_DAC_Open(&g_dac0_ctrl, &g_dac0_cfg);
/* Handle any errors. This function should be defined by the user. */
assert(FSP_SUCCESS == err);
12.R_DAC_Start()函數原型
R_DAC_Start()函數為啟動 D/A 轉換輸出,開啟配置如下所示。
err = R_DAC_Start(&g_dac_ctrl);
assert(FSP_SUCCESS == err);
13.R_DAC_Write()函數原型
R_DAC_Write()函數為將數據寫入 D/A 轉換器,輸出電壓=value/4095*3.3V
若設置輸出電壓為2V,value=2/3.3*4095=2482
err = R_DAC_Write(&g_dac0_ctrl, 2482);
assert(FSP_SUCCESS == err);
14.代碼
??????
void hal_entry(void)
{
/* TODO: add your own code here */
fsp_err_t err;
uint16_t value;
/* Pin configuration: Output enable DA0 as Analog. */
/* Initialize the DAC channel */
err = R_DAC_Open(&g_dac0_ctrl, &g_dac0_cfg);
/* Handle any errors. This function should be defined by the user. */
assert(FSP_SUCCESS == err);
err = R_DAC_Start(&g_dac0_ctrl);
assert(FSP_SUCCESS == err);
while(1)
{
if(value<4096)
{
value++;
if(value%512==0)//使得輸出波形為階梯狀
{
err = R_DAC_Write(&g_dac0_ctrl, value);
assert(FSP_SUCCESS == err);
}
}
else
value=0;
}
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
15.結果演示
16.視頻教學
視頻教學稍后會在B站官方賬號更新,請留意B站視頻更新~
原文標題:瑞薩e2studio----DAC
文章出處:【微信公眾號:RA生態工作室】歡迎添加關注!文章轉載請注明出處。
-
mcu
+關注
關注
146文章
16984瀏覽量
350293 -
ARM
+關注
關注
134文章
9045瀏覽量
366800 -
嵌入式
+關注
關注
5068文章
19014瀏覽量
303229
發布評論請先 登錄
相關推薦
評論