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

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

3天内不再提示

STM32F0xx_ DAC输出电压配置详细过程

黄工的嵌入式技术圈 ? 来源:黄工的嵌入式技术圈 ? 2020-04-07 11:19 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

数模转换DAC的功能在现实应用中所占的分量,相对定时器TIM、串口USART等要小的多,这也是ST为什么内部集成DAC模块相对来说不是那么多的原因。但在有需要使用数模转换功能的项目中,自带的这个DAC模块基本上可以取代外挂一片DAC芯片,因为自带的这个模块功能也很强大,只需要简单的配置一下就可以输出指定的电压信号(如:PWM波形、三角波、正选波),中途无需要软件干预。当然,今天提供的软件工程只有输出电压的基本操作,没有输出特殊的波形。但是,当你了解输出电压的原理之后,以后你想输出这些特殊的波形,也就容易多了。

STM32F0系列的DAC功能大部分是单通道,相对比较简单。只有STM32F072系列芯片是两路输出通道、有DAC控制单元输出三角波形等。

今天主要是总结DAC输出电压基本操作。输出三角波、正选波相对复杂一点的功能后期整理一份,敬请等待。

下载

ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。

今天的软件工程下载地址(360云盘):

https://yunpan.cn/cSIyxQKbvcQi6访问密码 3e6b

STM32F0xx的资料可以在我360云盘下载:

https://yunpan.cn/cS2PVuHn6X2Bj访问密码 8c37

准备工作

今天总结的软件工程是基于“TIM基本延时配置详细过程”修改而来,因此需要将该软件工程下载准备好。打开软件工程,新建源程序文件(dac.c 和 dac.h),在工程中添加新建的源程序文件dac.c和使用到标准外设库stm32f0xx_dac.c。添加的源代码响应的源文件代码就OK了。

数模转换原理

从系统框图中可以看的出,这个控制单元相对比较简单,所以软件在操作的这些寄存器的时候也是相对较简单的。

文章开头说了DAC可以输出指定的电压信号(如:PWM波形、三角波、正选波),其实这些信号产生的原理很简单,就是使用定时器来触发DAC输出,信号幅度需要用特定的算法生成(更加项目需求而定)。当然,今天提供的工程是固定输出一个电压信号,只需配置输出值就行了。


配置过程详情

①RCC时钟


该函数位于bsp.c文件下面;

我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于忘记配置相应RCC时钟,让我找了很久的问题,最后才发现是RCC时钟没有配置。

注意:

外设时钟不要随便添加,比如:RCC_APB1外设不要配置在RCC_APB2时钟里面【如:RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);这样能编译过,但是错误的】

我每次都提醒RCC时钟,是因为很多人就是因为时钟而导致软件运行有问题,所以,提醒更多人要注意配置RCC.

②DAC输出引脚配置


该函数位于dac.c文件下面;

注意:

这里引脚PA4配置是针对输出通道而定,必须匹配才行(请看数据手册中的引脚说明)。F0芯片中只有STM32F072才有两个通道,也就是只有它才能配置PA5。

③DAC输出配置


该函数位于dac.c文件下面;

重点注意:

这里红色标记三项都需要注意,特别的产生波形这一个参数,只有F0芯片中只有STM32F072才能是别的值,其他芯片都是固定这个参数。同样,通道也是。

④输出电压的计算


该函数位于dac.c文件下面;

由于F0芯片的参考电压固定为VDD,不像其他型号可以使用外部参考电压,所以这里的计算方式中3.3就是参考电压的值,4096是2的12次方。不懂的请自行想一下哦。

说明

或许你硬件芯片不是提供的工程里面的芯片,但是STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片,甚至是F2、F4等芯片上(具体请看手册、或者亲自测试)。

今天的工程是基于工程“STM32F0xx_TIM基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。

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

    关注

    44

    文章

    2435

    浏览量

    194567
  • VDD
    VDD
    +关注

    关注

    1

    文章

    316

    浏览量

    35729
  • STM32F0
    +关注

    关注

    0

    文章

    61

    浏览量

    17554
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【RA-Eco-RA6M4开发板评测】ADC、DAC 电压输入输出

    【设置 DAC 模拟电压输出】 瑞萨 RA6M4 支持双通道 12 位 DAC 输出,代码里可以设置输出
    发表于 07-21 03:54

    STM32F103×8/STM32F103×B MCU手册

    本文提供了STM32F103x8和STM32F103xB中密度高性能系列微控制器的订购信息和机械器件特性。有关整个STMicroelectronics STM32F103xx系列的更多信息,请
    发表于 03-18 16:37 ?0次下载

    DAC7571输出电压不为0是什么原因?

    最近在用DAC7571 IIC总线DA转换器,写数据范围为0~4095对应0-5V,调试中发现一个问题,开机后输出电压0.008mV,这个
    发表于 02-10 08:05

    【瑞萨RA2L1入门学习】02、DAC电压输出及ADC电压采集实验

    输出电压模拟信号,该电压模拟信号常常用来驱动某些执行器件,使人类易于感知。如音频信号的采集及还原就是这样一个过程。 RA2L1开发板搭载的R7FA2L1AB2DFL芯片拥有12位的
    发表于 01-26 10:10

    STM32F405xxSTM32F407xx微控制器数据手册

    电子发烧友网站提供《STM32F405xxSTM32F407xx微控制器数据手册.pdf》资料免费下载
    发表于 01-03 14:49 ?2次下载

    DAC9881低电压输出异常的原因?

    现在使用DAC9881SBRGET再做测试, 电压条件如下 VDD:+5V IOVDD:3.3V VrefH-F与VrefH-S:4.096V VrefL-F与VrefL-S:
    发表于 12-30 07:41

    【RA-Eco-RA4E2-64PIN-V1.0开发板试用】1.DAC输出电压通过ADC采样

    ;g_dac0_ctrl); } 2.输出电压 /** @brief设置当前的电压 @param需要控制的电压 @retval
    发表于 12-16 11:37

    DAC38RF82寄存器配置输出一直是0,为什么?

    现在正在调试DAC38RF82,JESD参数如下:L=4 ,M=1,F=3, S=8 ,HD=0, K=20,双通道12bit ,采样率2400MHz,REFCLK=5MHz,相关寄存器应该怎么
    发表于 12-09 08:32

    DAC81408配置DAC寄存器内的值与各通道输出电压不相符,且偏差较大,是什么原因?如何解决?

    公式计算后,得到CODE值,配置DAC通道寄存器中去,然后去用万用表去测实际芯片输出电压,发现实际芯片输出
    发表于 11-27 06:56

    DAC7563输出电压异常的原因?

    DAC7563_WRITE(0x19,1348<<4); 测试发现下面异常问题: 1.部分板子输出参考电压异常,正常的板子参考电压
    发表于 11-20 08:39

    DAC63204如何输出任意电压

    DAC63204我采用SPI的通讯方式使STM32F407VGT6控制其生成任意电压,但是我发送完数据DAC芯片也没有任何反应,以下图片是我通过逻辑分析仪抓取到的数据,经过比对时序应
    发表于 11-15 08:31

    STM32F407输出I2S信号给TAS5719始终无声,偶尔会有干扰噪声,为什么?

    STM32F407输出I2S信号给TAS5719,始终无声,偶尔会有干扰噪声。外接其他DAC声音正常。TAS57XX GDE产生的配置文件
    发表于 10-30 06:41

    AIC31xx/DAC31xx器件和扬声器输出上的EMI滤波

    电子发烧友网站提供《AIC31xx/DAC31xx器件和扬声器输出上的EMI滤波.pdf》资料免费下载
    发表于 10-18 10:07 ?0次下载
    AIC31<b class='flag-5'>xx</b>/<b class='flag-5'>DAC31xx</b>器件和扬声器<b class='flag-5'>输出</b>上的EMI滤波

    STM32CUBEMX(7)--移植雅特力AT32F403AVGT(兼容STM32F103VGT6),DAC输出电压

    概述 本篇文章主要介绍如何使用STM32CubeMX移植到雅特力AT32F403AVGT7,并通过DAC输出电压,在芯片中有2个12位的
    发表于 09-06 16:40

    【GD32 MCU 移植教程】8、从 STM32F4xx 系列移植到 GD32F4xx

    GD32F4xx 系列 MCU 是基于 Arm? Cortex?-M4 处理器的 32 位通用微控制器,与 STM32F4xx系列 MCU 保持高度兼容。本文主要从以下三个方面进行介绍:硬件资源对比
    的头像 发表于 09-06 09:40 ?2908次阅读
    【GD32 MCU 移植教程】8、从 <b class='flag-5'>STM32F4xx</b> 系列移植到 GD32<b class='flag-5'>F4xx</b> 系