0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RA6M3 HMI Board 之DAC设置电压值

嵌入式大杂烩 来源:嵌入式大杂烩 作者:嵌入式大杂烩 2023-06-20 09:02 次阅读

开发环境:

RT-Thread Studio:v2.2.6

开发板:RA6M3 HMI Board开发板

MCU:R7FA6M3AH3CFB

1 RA6M3 DAC简介

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

1687183494752vhyzx5shyz

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

4 RA6M3 DAC配置

接下来配置DAC,只需要简单配置就可使用。双击工程中的 RA Smart Configurator 图标,第一次打开需要配置正确的 FSP 安装路径。

1687183495638wqlb7rj7f7

1687183495880w5apscks90

  • FSP配置DAC

1.配置扫描通道对应的引脚

1687183496217psdjchm9ed

2.修改通道号为 0,与 DAC0 对应

16871834965781seedik4xy

1687183497046m7m96ydnjq

  • 配置DAC通道

然后打开对应的通道

16871834973566noetosqd7

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

从以上打印信息可以看出,dac0和adc0已经使能,将P001和P014连接,然后使用MSH命令‘dac_test’即可使能DAC线程。

1687183497916fa8xjvl54c

DAC输出电压和ADC通道1的值相同。
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16977

    浏览量

    350208
  • dac
    dac
    +关注

    关注

    43

    文章

    2268

    浏览量

    190818
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97157
  • RT-Thread
    +关注

    关注

    31

    文章

    1271

    浏览量

    39902
  • RA6M3
    +关注

    关注

    0

    文章

    52

    浏览量

    100
收藏 人收藏

    评论

    相关推荐

    如何利用rt-thread和HMI Board RA6M3开发一套物联网工控机?

    近年来,随着新一轮的科技发展以及工业产业升级,工业经济慢慢的由数字化向网络化和智能化发展。基于这一理念,本人利用rt-thread和HMI Board RA6M3开发了一套物联网工控机。
    的头像 发表于 09-15 15:27 1427次阅读
    如何利用rt-thread和<b class='flag-5'>HMI</b> <b class='flag-5'>Board</b> <b class='flag-5'>RA6M3</b>开发一套物联网工控机?

    RA6M3 HMI Board评测挑战】-瑞萨RA6M3上的CAN实践

    RA6M3 HMI Board 评测大挑战】-瑞萨RA6M3上的CAN实践
    的头像 发表于 10-17 14:55 1857次阅读
    【<b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b>评测挑战】-瑞萨<b class='flag-5'>RA6M3</b>上的CAN实践

    RA6M3数据手册(英)

    RA6M3数据手册(英)
    发表于 11-07 19:49 0次下载
    <b class='flag-5'>RA6M3</b>数据手册(英)

    RA6M3硬件用户手册(英)

    RA6M3硬件用户手册(英)
    发表于 11-07 19:49 0次下载
    <b class='flag-5'>RA6M3</b>硬件用户手册(英)

    RA6M3数据手册(中英)

    RA6M3数据手册(中英)
    发表于 11-07 19:49 0次下载
    <b class='flag-5'>RA6M3</b>数据手册(中英)

    RA6M3硬件用户手册(中英)

    RA6M3硬件用户手册(中英)
    发表于 11-07 19:49 2次下载
    <b class='flag-5'>RA6M3</b>硬件用户手册(中英)

    RA6M3 组数据表

    RA6M3 组数据表
    发表于 05-12 19:25 0次下载
    <b class='flag-5'>RA6M3</b> 组数据表

    RA6M3 HMI Board SDHI实践

    进行说明,然后使用RT-Studio新建工程进行开发,通过RASC对RA6M3的底层硬件配置,然后使用SDHI接口实现SD的识别,搭配文件系统对SD卡进行读写操作,同时记录开发遇到的问题。 1.2
    的头像 发表于 06-19 18:15 993次阅读
    <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b> <b class='flag-5'>之</b>SDHI实践

    RA6M3 HMI Board RTC实践

    开发环境: RT-Thread Studio:v2.2.6 开发板:RA6M3 HMI Board开发板 MCU:R7FA6M3AH3CFB 1 R
    的头像 发表于 06-21 21:31 2886次阅读
    <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b> <b class='flag-5'>之</b>RTC实践

    RA6M3 组用户手册:硬件

    RA6M3 组用户手册:硬件
    发表于 06-29 19:17 0次下载
    <b class='flag-5'>RA6M3</b> 组用户手册:硬件

    RA6M3 组数据表

    RA6M3 组数据表
    发表于 06-29 19:17 0次下载
    <b class='flag-5'>RA6M3</b> 组数据表

    【线下培训】上海临港: RT-Thread × 瑞萨 工业监视器 RA6M3 HMI Board解决方案

    RT-Thread 与瑞萨将于10月14日在上海临港举行一场线下培训。 本次培训将为开发者们带来期待已久的热门技术主题, RT-Thread × 瑞萨 工业监视器 RA6M3 HMI Board
    的头像 发表于 09-07 17:40 755次阅读
    【线下培训】上海临港: RT-Thread × 瑞萨 工业监视器 <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b>解决方案

    瑞萨RA6M3 HMI-Board Video Demo 上手指南

    高性能芯片 RA6M3 及 RT-Thread 和 LVGL 软件生态,HMI Board 不仅硬件性能强劲,同时软件生态丰富,助力开发者快速开发出 GUI 智能硬件产品。 本示例开源链接: https
    的头像 发表于 09-15 18:25 1636次阅读
    瑞萨<b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI-Board</b> Video Demo 上手指南

    瑞萨 RA6M3 开发实践指南-UART实践

    RT-Thread即将发布一系列RA6M3外设驱动的实践指南,我们将使用瑞萨RA6M3 HMI-Board 开发板,带领大家上手RT-Thread设备驱动。  【硬件介绍】 1.  开发板描述
    的头像 发表于 09-23 12:15 1283次阅读

    RA6M3 RT-Thread* LVGL HMI Board开发实践指南-GPIO实践

    RT-Thread即将发布一系列RA6M3外设驱动的实践指南,我们将使用瑞萨RA6M3 HMI-Board 开发板,带领大家上手RT-Thread设备驱动, 本篇文章将介绍GPIO外设。GPIO
    的头像 发表于 11-30 19:05 1161次阅读
    <b class='flag-5'>RA6M3</b> RT-Thread* LVGL <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b>开发实践指南-GPIO实践