26.5
實(shí)驗(yàn):使用DAC輸出正弦波信號(hào)
26.5.1
硬件設(shè)計(jì)
野火啟明6M5開(kāi)發(fā)板的引出引腳電路圖如圖所示。

點(diǎn)擊可查看大圖
野火啟明4M2開(kāi)發(fā)板的引出引腳電路圖如圖所示。

點(diǎn)擊可查看大圖
RA6M5和RA4M2都有2個(gè)DAC通道,兩個(gè)通道分別可以連接到P014和P015引腳上。
表5:RA6M5和RA4M2的DAC引腳
| DAC通道0 | P014 |
| DAC通道1 | P015 |
野火啟明2L1開(kāi)發(fā)板的引出引腳電路圖如圖所示。

點(diǎn)擊可查看大圖
RA2L1只有1個(gè)DAC通道,該通道可以連接到P014引腳上。
表6:RA2L1的DAC引腳
| DAC通道0 | P014 |
注意
在本實(shí)驗(yàn)中,啟明6M5、啟明4M2和啟明2L1開(kāi)發(fā)板使用的都是P014引腳(DAC通道0)來(lái)輸出模擬正弦波信號(hào)。
26.5.2
軟件設(shè)計(jì)
26.5.2.1
新建工程
對(duì)于e2studio開(kāi)發(fā)環(huán)境:拷貝一份我們之前的e2s工程模板“19_UART_Receive_Send”,然后將工程文件夾重命名為“26_DAC”,最后再將它導(dǎo)入到我們的e2studio工作空間中。
對(duì)于Keil開(kāi)發(fā)環(huán)境:拷貝一份我們之前的Keil工程模板“19_UART_Receive_Send”,然后將工程文件夾重命名為“26_DAC”,并進(jìn)入該文件夾里面雙擊Keil工程文件,打開(kāi)該工程。
工程新建好之后,在工程根目錄的“src”文件夾下面新建“dac”文件夾,再進(jìn)入該文件夾里面新建源文件和頭文件:“bsp_dac.c”和““bsp_dac.h”。工程文件結(jié)構(gòu)如下。
列表3:文件結(jié)構(gòu)
左右滑動(dòng)查看完整內(nèi)容
25_DAC ├─ ...... └─src ├─ led │ ├─ bsp_led.c │ └─ bsp_led.h ├─ debug_uart │ ├─ bsp_debug_uart.c │ └─ bsp_debug_uart.h ├─ adc │ ├─ bsp_dac.c │ └─ bsp_dac.h └─ hal_entry.c
26.5.2.2
FSP配置
打開(kāi)該工程的FSP配置界面進(jìn)行配置。
首先依次點(diǎn)擊“Stacks”->“Pins”->“Peripherals”->“DAC0”來(lái)配置通道DA0對(duì)應(yīng)的引腳為P014。如下圖所示。

點(diǎn)擊可查看大圖
然后依次點(diǎn)擊“Stacks”->“New Stack”->“Analog”->“DAC(r_dac)”來(lái)配置DAC模塊。如下圖所示。

點(diǎn)擊可查看大圖
DAC的屬性配置:

點(diǎn)擊可查看大圖
除了DA0引腳選擇按照默認(rèn)值即可。
表7:DAC屬性介紹

配置完成之后可以按下快捷鍵“Ctrl+S”保存,最后點(diǎn)右上角的“Generate Project Content”按鈕,讓軟件自動(dòng)生成配置代碼即可。
26.5.2.3
DAC初始化函數(shù)
DAC初始化函數(shù)如下:
列表4:代碼清單26?3DAC初始化函數(shù)
左右滑動(dòng)查看完整內(nèi)容
/** * @brief初始化 DAC * @param無(wú) * @retval無(wú) */ voidDAC_Init() { R_DAC_Open(&g_dac0_ctrl, &g_dac0_cfg); R_DAC_Start(&g_dac0_ctrl); }
R_DAC_Open()配置單個(gè)DAC通道,啟動(dòng)通道,并提供用于DAC API寫入和關(guān)閉函數(shù)的句柄。
R_DAC_Start()啟動(dòng)D/A轉(zhuǎn)換輸出。
26.5.2.4
設(shè)置DAC輸出電壓函數(shù)
列表5:代碼清單26?4設(shè)置DAC輸出電壓函數(shù)
左右滑動(dòng)查看完整內(nèi)容
/**
*@brief設(shè)置當(dāng)前的電壓
*@param需要控制的電壓
*@retval無(wú)
*/
voidDAC_SetVoltage(float voltage)
{
uint16_t dac_data;
dac_data = (uint16_t)(4095*((voltage)/3.3f));
R_DAC_Write(&g_dac0_ctrl, dac_data);
}
通過(guò)電壓轉(zhuǎn)換公式將輸入的模擬量轉(zhuǎn)換為數(shù)值量,輸入到R_DAC_Write()函數(shù)里,R_DAC_Write()會(huì)將數(shù)據(jù)寫入到D/A轉(zhuǎn)換器里。
26.5.2.5
DAC輸出正弦波
列表6:代碼清單26?5DAC輸出正弦波
左右滑動(dòng)查看完整內(nèi)容
//正弦波數(shù)據(jù)數(shù)組變量
uint16_tvar[] = {
2048,2460,2856,3218,3532,3786,3969,4072,4093,4031,3887,3668,
3382,3042,2661,2255,1841,1435,1054,714,428,209,65,3,24,127,
310,564,878,1240,1636,2048
};
/**
*@brief生成正弦波波形
*@param輸入的值可以調(diào)節(jié)波形的周期
*@retval無(wú)
*/
voidDAC_SinWave_Cycle(uint32_ttime_interval)
{
for(uint32_ti =0;i <(sizeof(var)/sizeof(var[0]));i++)
? {
? ??R_DAC_Write(&g_dac0_ctrl,var[i]);
? ??R_BSP_SoftwareDelay(time_interval,BSP_DELAY_UNITS_MILLISECONDS);
? }
}
通過(guò)輪循的方式將之前python生成的正弦波數(shù)據(jù)輸入到R_DAC_Write()函數(shù)里面,并且延時(shí)一段時(shí)間。而延時(shí)時(shí)間就是我們輸入到函數(shù)里面的數(shù)值,通過(guò)改變這一數(shù)值我們就可以調(diào)節(jié)正弦波的周期以及頻率。
26.5.2.6
hal_entry入口函數(shù)
列表7:代碼清單26?6hal_entry入口函數(shù)
左右滑動(dòng)查看完整內(nèi)容
/* 用戶頭文件包含 */#include"led/bsp_led.h"
#include"debug_uart/bsp_debug_uart.h"
#include"dac/bsp_dac.h"
voidhal_entry(void)
{
/*TODO:add your own code here */
LED_Init(); // LED 初始化
Debug_UART4_Init();// SCI4 UART 調(diào)試串口初始化
DAC_Init();// DAC 初始化
printf("這是一個(gè) DAC 輸出正弦波的實(shí)驗(yàn)例程
");printf("使用示波器測(cè)量 P014 引腳(DAC 0)
");
while(1)
{
DAC_SinWave_Cycle(1);
}
#ifBSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
26.5.3
下載驗(yàn)證
用USB TYPE-C線連接開(kāi)發(fā)板“USB TO UART”接口跟電腦,在電腦端打開(kāi)串口調(diào)試助手,把編譯好的程序下載到開(kāi)發(fā)板。
使用示波器測(cè)量P014引腳輸出的正弦波形,參考波形如下圖所示。注意觀察示波器測(cè)量出波形的頻率值和電壓峰值。

點(diǎn)擊可查看大圖
-
電路圖
+關(guān)注
關(guān)注
10488文章
10764瀏覽量
556911 -
正弦波
+關(guān)注
關(guān)注
11文章
662瀏覽量
59288 -
dac
+關(guān)注
關(guān)注
44文章
2818瀏覽量
197528 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
26文章
6386瀏覽量
120282
原文標(biāo)題:實(shí)驗(yàn):使用DAC輸出正弦波信號(hào)——瑞薩RA系列FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南(96)
文章出處:【微信號(hào):瑞薩嵌入式小百科,微信公眾號(hào):瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
瑞薩RA系列FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南之I2C讀寫EEPROM實(shí)驗(yàn)
瑞薩RA系列FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南之DAC簡(jiǎn)介和結(jié)構(gòu)框圖
瑞薩e2studio(1)----瑞薩芯片之搭建FSP環(huán)境
DAC輸出正弦波原理
【瑞薩RA4系列開(kāi)發(fā)板體驗(yàn)】7. 用DAC輸出正弦波以及余弦波
【瑞薩RA4系列開(kāi)發(fā)板體驗(yàn)】9. 用兩路DAC在示波器上顯示一個(gè)愛(ài)心
【瑞薩RA4系列開(kāi)發(fā)板體驗(yàn)】10. 我的試用總結(jié)
【瑞薩RA4系列開(kāi)發(fā)板體驗(yàn)】體驗(yàn)過(guò)程
【野火啟明6M5開(kāi)發(fā)板體驗(yàn)】開(kāi)箱+認(rèn)識(shí)開(kāi)發(fā)板+資料
DAC—輸出正弦波
DAC輸出正弦波的實(shí)驗(yàn)程序和工程文件免費(fèi)下載
利用DAC實(shí)現(xiàn)正弦波輸出
瑞薩RA系列FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南之使用DAC輸出正弦波信號(hào)實(shí)驗(yàn)
評(píng)論