Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DAC
HMI-Board
RA6M3 HMI Board 之DAC实践
发布于 2023-06-19 22:29:52 浏览:320
订阅该版
[tocm] __开发环境:__ RT\-Thread Studio:v2\.2\.6 开发板:RA6M3 HMI Board开发板 MCU:R7FA6M3AH3CFB # 1 RA6M3 DAC简介 R7FA6M3有片上DAC外设,总共有两路DAC输出通道,每路的分辨率可配置为12位, 这两个通道之间互不影响,每个通道都可以使用ELC功能可外部触发或者进行与ADC单元1的同步转换。 ![1687183494752vhyzx5shyz](//file1.elecfans.com/web2/M00/8A/1A/wKgZomSQYIiAf93cAAGh5wh5bso4.image) # 2 RT\-Thread 的DAC简介 DAC\(Digital\-to\-Analogl Converter\) 指数模转换器。是指把二进制数字量形式的离散数字信号转换为连续变化的模拟信号的器件。在数字世界中,要处理不稳定和动态的模拟信号并不容易,基于 DAC 的特性,在各种不同的产品中都可以找到它的身影。与之相对应的 ADC\(Analog\-to\-Digital Converter\)\),它是 DAC 数模转换的逆向过程。DAC 主要应用于音频放大,视频编码,电机控制,数字电位计等。 应用程序通过 RT\-Thread 提供的 DAC 设备管理接口来访问 DAC 硬件,相关接口如下所示: | **函数** | **描述** | | ------------------------- | ---------------------------------------- | | **rt_device_find()** | 根据 DAC设备名称查找设备获取设备句柄 | | **rt_dac_enable()** | 使能 DAC设备 | | **rt_dac_read()** | 读取 DAC设备数据 | | **rt_dac_disable()** | 关闭 DAC设备 | 关于DAC的更多资料请参看RT\-Thread官方手册: https://www\.rt\-thread\.org/document/site/\#/rt\-thread\-version/rt\-thread\-standard/programming\-manual/device/dac/dac # 3 硬件连接 P014引脚可以连接到MCU内部的 DAC 外设,从而输出外部电压。 ![1687183495332kvsv9aeb47](//file1.elecfans.com/web2/M00/8A/1A/wKgZomSQYIiAAwPqAAB7Eaji9UQ6.image) # 4 RA6M3 DAC配置 接下来配置DAC,只需要简单配置就可使用。双击工程中的 RA Smart Configurator 图标,第一次打开需要配置正确的 FSP 安装路径。 ![1687183495638wqlb7rj7f7](//file1.elecfans.com/web2/M00/89/F1/wKgZomSNGz-AbXCwAAAtX-Murhs6.image) ![1687183495880w5apscks90](//file1.elecfans.com/web2/M00/89/EF/wKgaomSNGz-AUYkPAAEpXcKCI3I5.image) - __FSP配置DAC__ 1\.配置扫描通道对应的引脚 ![1687183496217psdjchm9ed](//file1.elecfans.com/web2/M00/8A/18/wKgaomSQYImAIkivAAHZDbNKNsk5.image) 2\.修改通道号为 0,与 DAC0 对应 ![16871834965781seedik4xy](//file1.elecfans.com/web2/M00/8A/18/wKgaomSQYIqASRs0AAHQU8sPgyE0.image) ![1687183497046m7m96ydnjq](//file1.elecfans.com/web2/M00/8A/1A/wKgZomSQYIqARFWiAAFBAjYm_hM4.image) - __配置DAC通道__ 然后打开对应的通道 ![16871834973566noetosqd7](//file1.elecfans.com/web2/M00/8A/18/wKgaomSQYIqAHAVLAAC7WsjeN8k9.image) # 4 DAC代码实现 笔者这里使用的DAC通道0,然后接到ADC的通道1,核心代码如下: ``` #define DEV_ADC "adc0" #define DEV_ADC_CHANNEL 1 #define DEV_DAC "dac0" #define DEV_DAC_CHANNEL 0 #define REFER_VOLTAGE 330 #define CONVERT_BITS (1 << 12) void dac_test(void) { rt_adc_device_t dev_adc = (rt_adc_device_t)rt_device_find(DEV_ADC); rt_dac_device_t dev_dac = (rt_dac_device_t)rt_device_find(DEV_DAC); rt_uint32_t vol, value = 2048; if(dev_adc == RT_NULL) { rt_kprintf("no adc device named %s\n", DEV_ADC); } rt_adc_enable(dev_adc, DEV_ADC_CHANNEL); if(dev_dac == RT_NULL) { rt_kprintf("no dac device named %s\n", DEV_DAC); } rt_dac_enable(dev_dac, DEV_DAC_CHANNEL); rt_dac_write(dev_dac, DEV_DAC_CHANNEL, value); vol = value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the dac voltage is :%d.%02d \n", vol / 100, vol % 100); rt_thread_mdelay(100); value = rt_adc_read(dev_adc, DEV_ADC_CHANNEL); vol = value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf("the adc voltage is :%d.%02d \n", vol / 100, vol % 100); rt_adc_disable(dev_adc, DEV_ADC_CHANNEL); rt_dac_disable(dev_dac, DEV_DAC_CHANNEL); } MSH_CMD_EXPORT(dac_test, dac_test); ``` # 5 测试验证 编译下载,调试信息如下: ![16871834976705dywiz0di4](//file1.elecfans.com/web2/M00/8A/1A/wKgZomSQYIqAQx0TAAA8J7gzwg42.image) 从以上打印信息可以看出,dac0和adc0已经使能,将P001和P014连接,然后使用MSH命令‘dac\_test’即可使能DAC线程。 ![1687183497916fa8xjvl54c](//file1.elecfans.com/web2/M00/8A/18/wKgaomSQYIuARXb6AAAqjI4cxts4.image) DAC输出电压和ADC通道1的值相同。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
BruceOu
这家伙很懒,什么也没写!
文章
27
回答
0
被采纳
0
关注TA
发私信
相关文章
1
dac设备可以使用dma+TIM定时器触发模式吗
2
无法找到rt_dac_device_t
3
stm32的dac配置,指南里面没有
4
在 rt-thraed env中使用HAL库报错HAL_BUSY
5
STM32F103RC dac输出使能后系统调度异常。
6
怎么把dac_vol_sample这个函数写到main里?
7
undeclared (first use in this function)
8
DAC通道1可以开启,通道2开不起来
9
DAC、ADC配置DMA后,程序运行卡死
10
在RT模式下,采用DMA模式如何设置DAC?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部