258|1

34

帖子

0

TA的资源

一粒金砂(中级)

【瑞萨RA8D1开发板,基于M85内核的图形MCU测评】RT-Thread DAC设置电压值 [复制链接]

 
开发环境:
IDE:MKD 5.38a
开发板:CPKCOR-RA8D1B开发板
MCU:R7FA8D1BHEC332AS00

1 RA8D1 DAC简介

RA8D1有片上DAC外设,总共有两路DAC输出通道,每路的分辨率可配置为12位, 这两个通道之间互不影响,每个通道都可以使用ELC功能可外部触发或者进行与ADC单元1的同步转换。
222748fjkfo7xx2dkd2zdr.png

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官方手册:

3 硬件连接

P014引脚可以连接到MCU内部的 DAC 外设,从而输出外部电压。
222748atots8hnnns3hnyh.png

4 RA8D1 DAC配置

接下来配置DAC,只需要简单配置就可使用。双击工程中的 RA Smart Configurator 图标,第一次打开需要配置正确的 FSP 安装路径。
222748ti50x7ckpa70qkkk.png
222748rbk5ooqbbp9zv8aj.png
  • FSP配置DAC
    1.配置扫描通道对应的引脚
    222748iv7wee9my72jq7qm.png
    2.修改通道号为 0,与 DAC0 对应
    222748n6ltxpvkey6avbl3.png
    222748sso9d1d814dlxps4.png
  • 配置DAC通道
然后打开对应的通道
222748zqc3qufqf7rt6xjv.png

5 DAC代码实现

笔者这里使用的DAC通道0,然后接到ADC的通道2,核心代码如下:
#define DEV_ADC "adc0"
#define DEV_ADC_CHANNEL 2
#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);

6 测试验证

编译下载,调试信息如下:
222748hg5p5kgog5sicm5l.png
从以上打印信息可以看出,dac0和adc0已经使能,将P006和P014连接,然后使用MSH命令‘dac_test’即可使能DAC线程。
222748nqpqob70zbnc3hsi.png
DAC输出电压和ADC输入的值相同。

最新回复

DAC输出电压和ADC输入的值相同可以说明测试是成功的了   详情 回复 发表于 2024-7-10 07:32

回复
举报

6123

帖子

0

TA的资源

五彩晶圆(高级)

DAC输出电压和ADC输入的值相同可以说明测试是成功的了


回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
可见光的相关光学知识和术语

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 可见光的相关光学知识和术语 ¤. 光与电磁波: 光是一种电磁波,速度为: ...

Protel99SE深度汉化补丁

目前汉化最深的补丁. 解压密码www.pp51.com

可控硅专辑---原理篇、参数篇、应用篇、检测篇

可控硅专辑(原理篇) 目录 可控硅元件的工作原理及基本特性可控硅元件—可控硅元件的结构可控硅知识的问与答可控硅元件— ...

手把手教你做 BAD APPLE

http://player.youku.com/player.php/sid/XMzQ4Mzg0MzYw/v.swf 最早在论坛看到bad apple这个名词的时候还不知道是什么东西, ...

基于Z7010的EBAZ4205矿板改造

本帖最后由 chenzhufly 于 2019-6-11 00:32 编辑 主要改造了电源,增加了串口,和JTAG,方便调试,至于SD卡,暂时没有打算 ...

【SAMR21新玩法】1. 简介

大家还记得论坛以前的SAM R21活动吗?以前都是使Keil、ATMEL Studio软件,通过C/C++编程。下面介绍新的使用方法,可以通过图形化 ...

【平头哥RVB2601创意应用开发】环境监测终端05-温湿度采集和显示

本篇文章介绍使用RVB2601开发板UART1接口接收外接模块的温湿度数据,并显示到OLED上面。 1、硬件设计 本次使用的RVB2601开 ...

【板砖饮水记录仪】之“ESP32-S2-Kaluga-1”的 Ubuntu 环境搭建

本帖最后由 小默叔叔 于 2022-8-10 09:19 编辑 项目往期传送门 【板砖饮水记录仪】之2022得捷电子创新设计大赛物料开箱 ...

物联网与工业物联网:重要的10个差异

产品经理必须在设计和工程中考虑这些额外的要求。 653004 物联网 (IoT) 支持跨多个细分市场的颠覆性转型,从消费者、企业 ...

在AvaotaA1全志T527开发板上烧录AvaotaOS固件

## 烧写到 TF 卡上 ### 材料准备 首先需要准备的材料有: * **SD-Card Formatter:** * **balenaEtcher** * **Avaot ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表