145|0

40

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

Follow me 第二季第3期 :DAC配置生成波形及性能测试 [复制链接]

  本帖最后由 zsy-s 于 2024-12-8 13:59 编辑

备忘:Follow me第二季第3期!与得捷一起解锁开发板超能力!

什么是 dac

dac全称叫做数模转换器,它由英语Digital to Analog converter简化而成。与其相对的还有反过来的ADC,即将模拟信号转换成数字信号。

性能指标:

            分辨率是模拟输出电压可被分离的等级数,n位DA分辨率一般为1/2^n。位数越高,分辨率越高。

            转换速度用来描述数字量变化引起模拟量变换的转换时间,具有的指标:建立时间和转换速率。

 A/D转换一般步骤:取样、保持、量化、编码

硬件      

ra5m6芯片提供了两个12位分辨率的dac控制器。

配置

查看pinlist可以看出,只有两个引脚接到了dac控制器上,如下图

 
dac属性配置

增加一个gpt定时器,用来产生中断,输出一个模拟信号,最终生成波形信号

配置如下
 

 

代码

开启定时器中断

    R_GPT_Open(&g_timer0_ctrl, &g_timer0_cfg);
    R_GPT_Start(&g_timer0_ctrl);

定时器的中断

void gpt_test_isr(timer_callback_args_t *p_args)
{
    (void)p_args;
    APP_PRINT("\r\n ** Agpt_test_isr ** \r\n");
}
启动dac 转换
    R_DAC_Start (&g_dac_ctrl);

根据电压值计算转换值,实现输出相应的电压,此函数在定时器里调用,实现定时的调节输出电压。

static void DAC_SetVoltage(float voltage)
{

   uint16_t dac_data;
   dac_data = (uint16_t)(4096*((voltage)/33));
   APP_PRINT("DAC_SetVoltage  dac_data[%d]\r\n",dac_data);
   R_DAC_Write(&g_dac_ctrl, dac_data);

}

 

效果

 

IMG_1493

 

点赞 关注
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 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
快速回复 返回顶部 返回列表