26.5
26.5.1
硬件設(shè)計
野火啟明6M5開發(fā)板的引出引腳電路圖如圖所示。

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

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

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

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

點擊可查看大圖
DAC的屬性配置:

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

配置完成之后可以按下快捷鍵“Ctrl+S”保存,最后點右上角的“Generate Project Content”按鈕,讓軟件自動生成配置代碼即可。
26.5.2.3
DAC初始化函數(shù)
DAC初始化函數(shù)如下:
列表4:代碼清單26?3DAC初始化函數(shù)
左右滑動查看完整內(nèi)容
/** * @brief初始化 DAC * @param無 * @retval無 */ voidDAC_Init() { R_DAC_Open(&g_dac0_ctrl, &g_dac0_cfg); R_DAC_Start(&g_dac0_ctrl); }
R_DAC_Open()配置單個DAC通道,啟動通道,并提供用于DAC API寫入和關(guān)閉函數(shù)的句柄。
R_DAC_Start()啟動D/A轉(zhuǎn)換輸出。
26.5.2.4
設(shè)置DAC輸出電壓函數(shù)
列表5:代碼清單26?4設(shè)置DAC輸出電壓函數(shù)
左右滑動查看完整內(nèi)容
/**
*@brief設(shè)置當前的電壓
*@param需要控制的電壓
*@retval無
*/
voidDAC_SetVoltage(float voltage)
{
uint16_t dac_data;
dac_data = (uint16_t)(4095*((voltage)/3.3f));
R_DAC_Write(&g_dac0_ctrl, dac_data);
}
通過電壓轉(zhuǎn)換公式將輸入的模擬量轉(zhuǎn)換為數(shù)值量,輸入到R_DAC_Write()函數(shù)里,R_DAC_Write()會將數(shù)據(jù)寫入到D/A轉(zhuǎn)換器里。
26.5.2.5
DAC輸出正弦波
列表6:代碼清單26?5DAC輸出正弦波
左右滑動查看完整內(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無
*/
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);
? }
}
通過輪循的方式將之前python生成的正弦波數(shù)據(jù)輸入到R_DAC_Write()函數(shù)里面,并且延時一段時間。而延時時間就是我們輸入到函數(shù)里面的數(shù)值,通過改變這一數(shù)值我們就可以調(diào)節(jié)正弦波的周期以及頻率。
26.5.2.6
hal_entry入口函數(shù)
列表7:代碼清單26?6hal_entry入口函數(shù)
左右滑動查看完整內(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("這是一個 DAC 輸出正弦波的實驗例程
");printf("使用示波器測量 P014 引腳(DAC 0)
");
while(1)
{
DAC_SinWave_Cycle(1);
}
#ifBSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
26.5.3
下載驗證
用USB TYPE-C線連接開發(fā)板“USB TO UART”接口跟電腦,在電腦端打開串口調(diào)試助手,把編譯好的程序下載到開發(fā)板。
使用示波器測量P014引腳輸出的正弦波形,參考波形如下圖所示。注意觀察示波器測量出波形的頻率值和電壓峰值。

點擊可查看大圖
-
電路圖
+關(guān)注
關(guān)注
10496文章
10764瀏覽量
557726 -
正弦波
+關(guān)注
關(guān)注
11文章
662瀏覽量
59348 -
dac
+關(guān)注
關(guān)注
44文章
2856瀏覽量
197661 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6433瀏覽量
121183
原文標題:實驗:使用DAC輸出正弦波信號——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(96)
文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南之DAC簡介和結(jié)構(gòu)框圖
瑞薩e2studio(1)----瑞薩芯片之搭建FSP環(huán)境
DAC輸出正弦波原理
【瑞薩RA4系列開發(fā)板體驗】7. 用DAC輸出正弦波以及余弦波
【瑞薩RA4系列開發(fā)板體驗】體驗過程
【野火啟明6M5開發(fā)板體驗】開箱+認識開發(fā)板+資料
DAC—輸出正弦波
DAC輸出正弦波的實驗程序和工程文件免費下載
利用DAC實現(xiàn)正弦波輸出
瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南之使用DAC輸出正弦波信號實驗
評論