【STM32Cube_21】使用DAC输出任意指定电压

发布者:DelightfulSmile最新更新时间:2021-07-20 来源: eefocus关键字:STM32Cube  DAC 手机看文章 扫描二维码
随时随地手机看文章

本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的DAC外设,输出任意指定电压值。


1. 准备工作

硬件准备

  • 开发板
    首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):

  • 万用表

软件准备

  • 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码;

  • 准备一个串口调试助手,这里我使用的是Serial Port Utility;

  

2.生成MDK工程

选择芯片型号

打开STM32CubeMX,打开MCU选择器:

搜索并选中芯片STM32L431RCT6:

配置时钟源

  • 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;

  • 如果使用默认内部时钟(HSI),这一步可以略过;

这里我都使用外部时钟:

配置串口

小熊派开发板板载ST-Link并且虚拟了一个串口,原理图如下:

这里我将开关拨到AT-MCU模式,使PC的串口与USART1之间连接。

接下来开始配置USART1:

配置DAC

确定DAC输出通道

查看小熊派E53接口的原理图:

配置DAC

选择DAC1,开启输出通道2,配置保持默认即可:

配置时钟树

STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz即可:

生成工程设置

代码生成设置

最后设置生成独立的初始化文件:

生成代码

点击GENERATE CODE即可生成MDK-V5工程:

3. 在MDK中编写、编译、下载用户代码

重定向printf( )函数

参考:【STM32Cube】(八)基于串口发送函数实现printf()


编写测试代码

首先设置DAC输出的数据为12位右对齐,然后指定输出的值0-4096,实际输出的电压为
value/4096x3.3V,最后使能DAC转换,代码如下:

int main(void)
{
/* USER CODE BEGIN 1 */
uint16_t i = 0;
/* USER CODE END 1 */

HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_DAC1_Init();
MX_USART1_UART_Init();

/* USER CODE BEGIN 2 */
printf("DAC Test...rn");
HAL_DAC_Start(&hdac1, DAC_CHANNEL_2);

/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
for(i = 0; i < 4096; i++)
{
HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_2, DAC_ALIGN_12B_R, i);
HAL_Delay(2);
}
printf("DAC test finish, test again!rn");

/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}

至此,我们已经学会如何使用DAC输出任意指定电压值。

关键字:STM32Cube  DAC 引用地址:【STM32Cube_21】使用DAC输出任意指定电压

上一篇:STM32CubeMX | 41 - 使用LTDC驱动TFT-LCD屏幕(RGB屏)
下一篇:【STM32Cube_23】使用USART接收GPS数据并解析(L80-R)

推荐阅读最新更新时间:2024-11-05 10:23

DAC谐波频谱成分重构其传递函数
所有DAC都会表现出一定程度的谐波失真,谐波失真是用来衡量当DAC输入端采用一个理想的均匀采样正弦波的数值序列驱动时,其输出端能在多大程度上再现这个理想的正弦波。由于DAC的瞬态和静态特性并不理想,因此输出频谱将会包含谐波成分。DAC的瞬态输出特性包括压摆率限制、非对称上升和下降时间、有限建立时间。静态特性与传递函数偏离直线的程度有关。本文将重点讨论静态特性,并阐述一种由输出频谱中观察到的谐波成分导出DAC传递函数的方法。分析中假设,传递函数而非瞬态输出特性是所观察到的谐波失真的主要来源。此假设在低频时成立。 DAC传递函数 图1显示一个理想的DAC传递函数,它是一条斜线,y=mx+b。数字输入位于x轴,模拟输出位于y轴。
[工业控制]
由<font color='red'>DAC</font>谐波频谱成分重构其传递函数
我的DAC盛宴之“欧版”PCM63P-K
按照相关说明书接线设置,总算没顺利地响了。这次的 制作 拖拉了点,不过总算是慢工出细活,自己还算满意。 起初对PCM63的应用没多大信心,因为看过一些 作品 对这个芯片的23、24脚的应用有不同的设置和要求,到目前为止我也还搞不清楚具体如何使用它们,不过看了一些成功的作品和某些厂机,都没有对这两个脚做相应处理,也就心安理得的对它们不予理会了。 电源 、IV/LPF的结构依然采用和1541的一样,这样可以方便进行对比,只是对IV数值做了些修改,保证输出频响和听感符合我的要求。 这里需要说明,如果按照PCM63手册上 推荐 的IV放大值, 电阻 是2K,0dB315kHz信号输出比一般常见的 CD机
[模拟电子]
CN0007 利用 ADI AD5380 DAC 实现40 通道可编程电压以及出色的温度漂移性能
此设计使用两个独立的 5.0 V电源,一个电源为基准电压源和AD5380的模拟部分(AVDD)供电,另一个电源为AD5380的数字部分(DVDD)供电。为获得最佳性能,务必使用线性稳压器驱动电路的模拟部分。如果用开关稳压器驱动数字部分,应注意将DVDD电源引脚上的开关噪声降至最低。可能还需要利用串联的铁氧体磁珠进行额外去耦。AD5380数字(DVDD)电源可以采用 3 V或 5 V电源,与数字元件接口时,这种电源可以带来极大的灵活性。两个电源引脚可以连在一起,并连至从线性稳压器获得的共同 5 V电源。
[模拟电子]
125MSPS高性能通信DAC芯片AD9752
    摘要: AD9752是高性能、低功耗、CMOS数字/模拟转换器,被优化设计用于通信系统中的发送信号通道。它所具有的低功耗特性,非常适合便携式和小功耗应用。该芯片可广泛应用于宽带通信发信机信道数字无线链路,直接数字合成等。本文介绍了AD9752的工作原理、特别、性能参数和典型应用。     关键词: DAC CDMA 宽带通信 QAM AD9752 1 概述 AD9752是高性能、低功耗、CMOS数字/模拟转器TxDAC系列产品中的一种宽带产品。TxDAC系列产品由可与管脚兼容的8位、10位、12位、14位DAC组成,并被优化设计用于通信系统中的发送信号通道。该系列器件均具有统一的接口选择、小外形封装和
[应用]
基于FPGA的高性能DAC芯片测试与研究
D/A 转换器 作为连接数字系统与模拟系统的桥梁,不仅要求快速、灵敏,而且线性误差、信噪比和增益误差等也要满足系统的要求 。因此,研究DAC 芯片的测试方法,对高速、高分辨率DAC 芯片的研发具有十分重要的意义。   目前,波形测量和分析协会已提出了DAC 测试的技术标准IEEE Std.1057,里面的术语和测试方法为DAC 测试提供了更多的参考。传统的标准测试只适于 信号发生器 、 示波器 等 测试仪器 ,但是测试精度不高;大规模芯片测试时则使用自动测试设备(ATE),但是成本很高;最近提出的DAC 的测试方法,比如结合V777 数字 测试系统 可以进行DAC 测试,应用模拟 滤波器 进行音频DAC 测试,利用数模混合信号测
[嵌入式]
基于FPGA的高性能<font color='red'>DAC</font>芯片测试与研究
DAC设计数字可编程电流源
    用DAC7644(Burr-Brown公司16位四电压输出D/A变换器)设计的4~20mA数字控制的电流源电路示于图1。DAC7644提供一差分基准输入以及围绕输出放大器的一开环配置。围绕输出放大器的开环配置允许把晶体管放置在环路中实现一数字可编程的单向电电流源。差分基准也可利用于满标和零标电流的编程。 表1 DAC7644逻辑真值表 A1 A0 R/W CS RST RSTSEL LOADDACS INPUT REGISTER MODE DAC DAC L L H H L
[应用]
ST与微软强强联手,利用STM32Cube推进智能物联网设备开发
半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)与微软签署促进智能家电控制器和物联网设备 (IoT)开发的合作协议。 使用STM32微控制器(MCU)的开发人员现在可以利用Microsoft Azure RTOS(实时操作系统)提供的即用型服务来管理应用程序。STM32Cube 开发生态系统整合开发工具和软件,全程支持客户项目开发,完全支持Microsoft Azure RTOS,实现无缝连接。在包括产品原型和量产商品在内的STM32微控制器上,合法部署的Microsoft Azure RTOS映像免许可使用费。
[物联网]
ST与微软强强联手,利用<font color='red'>STM32Cube</font>推进智能物联网设备开发
MAX5813-MAX5815电压输出数模转换器(DAC)
MAX5813/MAX5814/MAX5815 4通道、低功耗、8/10/12位、电压输出数/模转换器(DAC)包括输出缓冲器和一个内部基准(可选择为2.048V、2.500V或4.096V)。MAX5813/MAX5814/MAX5815可接受2.7V至5.5V宽电源电压范围,具有超低功耗(3mW),适合绝大多数低压应用。准确的外部基准输入允许器件满摆幅工作,对外部基准表现为100kΩ (典型值)等效负载。 MAX5813/MAX5814/MAX5815带有I²C兼容2线接口,工作时钟频率可达400kHz。DAC输出带缓冲器,具有每通道小于250µA的低电源电流以及±0.5mV (典型值)的低失调误差。上电时,MAX5813/
[模拟电子]
MAX5813-MAX5815<font color='red'>电压</font><font color='red'>输出</font>数模转换器(<font color='red'>DAC</font>)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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