当前位置: 首页 > news >正文

初学stm32 --- DAC模数转换器工作原理

目录

什么是DAC?

DAC的特性参数

STM32各系列DAC的主要特性

DAC框图简介(F1/F4/F7)

参考电压/模拟部分电压

触发源

关闭触发时(TEN=0)的转换时序图

DMA请求

DAC输出电压


什么是DAC

        DAC,全称:Digital-to-Analog Converter,指数字/模拟转换器

        ADC和DAC是模拟电路与数字电路之间的桥梁

DAC的特性参数

分辨率:

        表示模拟电压的最小增量,常用二进制位数表示,比如:812位等

建立时间:

        表示将一个数字量转换为稳定模拟信号所需的时间

精度:

        转换器实际特性曲线与理想特性曲线之间的最大偏差

        误差源:比例系统误差、失调误差、非线性误差

注释:假设理想特性曲线位y = kx ,实际特性曲线是y = ax+b。这里的比例系数误差就是k不等于a,失调误差是b不等于0;而非线性误差,就是特性曲线不是线性的

        原因:元件参数误差、基准电压不稳定、运算放大器零漂等

STM32各系列DAC的主要特性

F1的DAC模块只有DAC1,没有DAC2,每个DAC有两个通道,对应的GPIO引脚为PA4和PA5。

DAC框图简介(F1/F4/F7

参考电压/模拟部分电压                       ②DA转换器

输出通道DAC_OUTx                           ④数据输出寄存器DOR

数据保持寄存器DHRx                          ⑥控制逻辑(噪声波/三角波)

DAC控制寄存器                                  ⑧触发源

注释:不能直接向DORx寄存器写入数据,也不能直接向DHRx寄存器写入数据,实际操作是向DHRyyy写入数据,然后系统会自动将写入DHRyyy的数据写入到DHRx中,然后通过DAC控制寄存器,最后在DORx寄存器中写入DHRyyy的数据。(这里的yyy是选择8位12位的分辨率,以及左对齐还是右对齐,以及是严格单通道,以及是否使用双通道)

        注意:一旦使能DACx通道,相应的GPIO引脚(PA4或者PA5)就会自动与DAC的模拟输出相连(DAC_OUTx)。为了避免寄生的干扰和额外的功耗,引脚PA4或者PA5在之前应当设置成模拟输入(AIN)。

参考电压/模拟部分电压

DAC供电电源:VSSA VDDA2.4VVDDA3.6V

DAC输出电压范围:VREFVOUTVREF+(即0VVOUT3.3V

DAC数据格式

DAC数据格式:支持8/12位模式

 单ADC通道转换                                                 双DAC通道转换:

  

触发源

三种触发转换的方式:自动触发、软件触发、外部事件触发

TENx位置0

 DHRx数据加载到DORx后,模拟输出电压将经过时间VSETTLING后可用(VSETTING=3us)

关闭触发时(TEN=0)的转换时序图

DMA请求

 这里的DMA请求只能由外部事件触发时才能使用。

软件触发和自动触发都不能使用DMA。

DAC输出电压

12位模式下,DAC输出电压计算方法:

                

8位模式下,DAC输出电压计算方法:

                


http://www.mrgr.cn/news/83343.html

相关文章:

  • 迭代器 - 迭代器的概念及使用方法
  • 30天开发操作系统 第 12 天 -- 定时器 v1.0
  • 51单片机——串口通信(重点)
  • (五)ROS通信编程——参数服务器
  • C语言凯撒密码程序分享
  • 阿里云ethereum
  • 2025年第三届“华数杯”国际大学生数学建模竞赛A题完整论文讲解
  • 嵌入式C语言:二维数组
  • LeetCode 热题 100 | 哈希
  • C#从“Hello World!“开始
  • JDK21虚拟线程死锁问题
  • 【Delphi 开箱即用 6】应用程序在任务栏中更换ico图标
  • ORB-SALM3配置流程及问题记录
  • kubeneters-循序渐进Cilium网络(二)
  • 二、智能体强化学习——深度强化学习核心算法
  • Spring bean的生命周期和扩展
  • 鸿蒙面试 2025-01-10
  • C#Halcon二维码识别
  • 第十四章 SQL性能分析
  • 【Python】Python之Selenium基础教程+实战demo:提升你的测试+测试数据构造的效率!
  • PySpark广播表连接解决数据倾斜的完整案例
  • 高等数学学习笔记 ☞ 洛必达法则与泰勒公式
  • 【Rust自学】11.5. 在测试中使用Result<T, E>
  • Formality:默认配置文件
  • 【python翻译软件V1.0】
  • 【数据链电台】洛克希德·马丁(Lockheed Martin)