STM32-一文搞懂DAC

所谓DAC,就是数(Digital)模(Analog)转换,将数字信号转换为模拟信号。骚气的是STM32竟然还能输出噪声和三角波,必须得试试!

 

目录

1 STM32的DAC概述

1.1 主要特性

1.2 框图

2 功能详解

2.1 DAC数据格式

2.2 数据寄存器DHR和DOR的关系

2.3 DAC输出电压

2.4 噪声生成

2.5 三角波生成

2.6 双DAC通道

2.6.1 不使用波形发生器的独立触发

2.6.2 使用相同LFSR的独立触发

2.6.3 使用不同LFSR的独立触发

2.6.4 产生相同三角波的独立触发

2.6.5 产生不同三角波的独立触发

2.6.6 同时软件启动

2.6.7 不使用波形发生器的同时触发

2.6.8 使用相同LFSR的同时触发

2.6.9 使用不同LFSR的同时触发

2.6.10 使用相同三角波发生器的同时触发

2.6.11 使用不同三角波发生器的同时触发

3 相关寄存器

3.1 DAC控制寄存器(DAC_CR)

3.2 DAC软件触发寄存器(DAC_SWTRIGR)

3.3 各种DHR数据寄存器

3.4 两个DOR数据寄存器


1 STM32的DAC概述

STM32的DAC模块是12位数字输入,电压输出的数字/模拟转换器,2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。DAC模块在APB1时钟下!

注意:STM32的DAC模块只存在于大容量产品中(FLASH容量在256K~512K之间的)。

1.1 主要特性

  • 2个DAC转换器:每个转换器对应1个输出通道
  • 8位或者12位单调输出
  • 12位模式下数据左对齐或者右对齐
  • 同步更新功能
  • 噪声波形生成
  • 三角波形生成
  • 双DAC通道同时或者分别转换
  • 每个通道都有DMA功能
  • 外部触发转换
  • 输入参考电压VREF+

1.2 框图

单个DAC的框图如下:

主要分为以下部分:

电源和参考电压输出触发源控制寄存器(对应白色)数据寄存器DHR数模转换单元

电源引脚《STM32-一文搞懂ADC》部分已经有介绍了。

输出也没什么好说的,需要注意的是,一旦使能DACx通道,相应的GPIO引脚(PA4或者PA5)就会自动与DAC的模拟输出相连
(DAC_OUTx)。DAC1DAC2模块的输出引脚分是PA4PA5。为避免寄生的干扰和额外的功耗,使用DAC功能时,相应的引脚应当设置成模拟输入(AIN)。

触发源主要如下如果TENx位被置1,DAC转换可以由某外部事件触发(定时器计数器、外部中断线)。配置控制位TSELx[2:0]可以选择8个触发事件之一触发DAC转换。

所谓触发是指将数据寄存器DORx中的数据转换成模拟信号输出的信号。简单的来说就是刷新输出的信号,因为DOR数据寄存器中的数据更新后并不会立马进行转换,而是要等到触发信号之后才能转换

触发可以选择为:
(1)不使用触发方式,这种方式下,只在向DAC数据寄存器DHR写入数据之后,DAC转化模块自动转换一次。
(2)软件触发方式,这种方式下,向软件触发寄存器SWTRIGR中写入命令时触发转换,也就是将DOR寄存器中的数据进行转换。
(3)外部触发方式。
    (3.1)定时器触发,这是一种周期性的触发方式,也就是周期性刷新方式。那什么时候会用到这种方式呢?复杂波形!比如输出三角波。后面会说到,三角波的数据生成是由一个单独的计数器往复加减生成的,每次触发之后该计数器会加1/减1。试想,如果我们通过定时器来进行触发使其输出幅度以固定时间间隔增减,再设定了这个计数器的最大值,不就可以生成一定频率的三角波了吗?
    (3.2)外部中断EXTI线触发,主要用于外部信号控制DAC转换。

控制寄存器主要对通道x进行配置,如DMA使能、噪声/三角波生成、触发源选择、通道x触发使能等等。后文详述。

数据寄存器DHR共有9个,但本质上是用于存放输出DAC的数据的,这里的数据会在适当的时候传入ODR寄存器进而进行DA输出。

数模转换单元,将数据寄存器中的数据加载到DOR寄存器中,并进行DA转换。

DAC 输出是受 DORx 寄存器直接控制的,但是我们不能直接往 DORx寄存器写入数据,而是通过 DHRx 间接的传给 DORx 寄存器,实现对 DAC 输出的控制。

2 功能详解

2.1 DAC数据格式

具有双DAC模块的STM32产品,其DAC模块有9个数据寄存器(DHR)!其中单通道模式下DAC1好DAC2分别独立使用三个,双通道模式下也有3个寄存器。

单通道模式下的三种数据格式,包括8位右对齐、12位左对齐、12位右对齐。如下图所示

双通道模式下的三种数据格式,同样是8位右对齐、12位左对齐、13位右对齐。如下图所示

2.2 数据寄存器DHR和DOR的关系

数据寄存器DHR是面向开发的寄存器,可以直接写入数据,该数据就是输出到相应的DAC通道的数据。

数据寄存器DOR是直接控制DAC数据输出的寄存器,不能直接对该寄存器写入数据,该寄存器的数据由数据寄存器DHR传入。

如果没有使能外部触发的方式输出DAC,存入寄存器DHR的数据会在一个APB1时钟周期后自动传至DOR。

  • 20
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ​ STM32-STLink是一款常见的STM32单片机的USB调试工具,它可以方便地进行芯片的程序下载、烧录、调试和监测工作。在使用STM32-STLink进行调试工作前,需要先安装STM32-STLink驱动。 STM32-STLink驱动可以在ST官网或软件开发社区中获取。在安装驱动前需要确保电脑已经连接上STM32-STLink,并且已经准备好了相应的开发环境。建议先卸载旧版本的驱动再进行安装。 具体操作步骤如下: 1. 连接STM32-STLink到电脑,确保正常供电和通信。 2. 安装驱动,可以从ST官网或者软件开发社区中下载最新驱动程序。 3. 解压下载的驱动程序,击运行安装程序。 4. 驱动安装过程中需要注意选择与自己操作系统版本相对应的驱动程序,勾选“核心组件”和“驱动程序”选项,进行安装。 5. 安装完成后,重启电脑,确认驱动程序已经成功安装。 6. 打开开发环境,并连接STM32-STLink,进行调试工作。在调试过程中,可以通过STLink Utility等工具进行芯片的操作。 总之,STM32-STLink驱动是STM32单片机开发必备的驱动程序之一。通过安装该驱动,可以方便地进行芯片的调试工作和程序烧录操作。 ### 回答2: stm32-stlink驱动是一用于连接STM32单片机与电脑的驱动。STM32是一低功耗、高性能的32位微控制器,而stlink是一芯片级调试工具,用于将计算机与STM32单片机连接起来,进行程序的调试和下载。由于stm32-stlink驱动具备高性能、可靠性和灵活性等优势,因此在计算机与STM32单片机之间的数据传输过程中发挥了重要作用。 stm32-stlink驱动可以实现多不同的功能。例如,在调试过程中,它可以帮助开发者调试程序,并实时监测STM32单片机的运行情况。此外,该驱动还可以实现对单片机的程序下载、烧录、刷写等操作,方便开发者进行快速迭代和测试。 除了实现上述功能之外,stm32-stlink驱动还具备多其他特点。例如,该驱动可以长时间稳定运行,且不会对系统稳定性产生不利影响。此外,该驱动还具备自动适配的能力,可以适应不同版本的STM32单片机。 在使用stm32-stlink驱动之前,开发者需要根据自己的需要进行安装和配置。具体来说,需要下载适合自己系统版本的stm32-stlink驱动,并在电脑上安装。此外,在进行开发过程中,开发者还需要根据需要对该驱动进行相应的设置和调整,以保障程序的正常运行。 总的来说,stm32-stlink驱动是一实现STM32单片机与电脑之间数据传输的重要工具,具备多优势和特点。在进行相关开发工作时,合理配置和使用该驱动可以极大地提高开发效率和程序稳定性。 ### 回答3: STM32-STLINK驱动是用于连接计算机和STM32微控制器开发板之间的软件程序。STM32-STLINK驱动可用于下载代码,调试和仿真微控制器。STM32-STLINK驱动由STMicroelectronics提供,并且是免费提供的。该驱动程序可以在Windows和Linux操作系统上使用,并且支持多开发工具,例如Keil,IAR和Atollic。 在使用STM32-STLINK驱动之前,需要先将开发板与计算机连接。连接过程可以通过USB连接或JTAG/SWD接口完成。当前,STMicroelectronics生产的大多数STM32微控制器都具有内置的ST-LINK / V2-1调试器,因此无需单独购买ST-LINK外设。只需使用USB线缆将STM32板连接到计算机上,即可使用STM32-STLINK驱动。 一旦STM32开发板和计算机连接成功并且安装了STM32-STLINK驱动,就可以开始进行下载、调试和仿真微控制器的工作了。STM32-STLINK驱动提供了基本的调试工具,例如设置断点、查看变量和跟踪程序执行等功能,以帮助开发人员进行程序调试。此外,该驱动程序还支持许多高级功能,例如实时追踪、功耗分析和定时器分析等,以帮助开发人员更深入地了解和优化代码。 综上所述,STM32-STLINK驱动是连接STM32微控制器和计算机之间的关键软件程序,用于下载、调试和仿真微控制器。它具有易于使用和灵活的优点,是STM32开发的重要工具之一。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值