初学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输出电压计算方法:

                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/952639.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《HTTP协议与内外网划分:网络世界的基石知识》

http协议与内外网的划分 http协议的简介 HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从服务器传输超文本(如HTML)到本地浏览器的传输协议。以下是关于HTTP协议的简介: HTTP协议的基本…

二叉树层序遍历 Leetcode102.二叉树的层序遍历

二叉树的层序遍历相当于图论的广度优先搜索,用队列来实现 (二叉树的递归遍历相当于图论的深度优先搜索) 102.二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右…

特制一个自己的UI库,只用CSS、图标、emoji图 第二版

图&#xff1a; 代码&#xff1a; index.html <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>M…

12工具篇(D3_Lombok)

目录 一、基本介绍 二、Lombok使用说明 1. 基本介绍 2. 安装插件 IDEA在线安装Lombok插件 IDEA离线安装Lombok插件 3. 引入依赖坐标 4. Lombok注解功能说明 NonNull Getter&Setter Cleanup ToString EqualsAndHashCode Constructor RequiredArgsConstructor …

STM32如何测量运行的时钟频率

前言 环境&#xff1a; 芯片&#xff1a;STM32F103C8T6 Keil&#xff1a;V5.24.2.0 一、简介STM32F103C8T6的时钟源 ①HSI 内部高速时钟,RC振荡器&#xff0c;频率为8MHz&#xff0c;精度不高。②HSE 外部高速时钟,可接石英/陶瓷谐振器&#xff0c;频率范围为4MHz~16MHz&…

【物流管理系统 - IDEAJavaSwingMySQL】基于Java实现的物流管理系统导入IDEA教程

有问题请留言或私信 步骤 下载项目源码&#xff1a;项目源码 解压项目源码到本地 打开IDEA 左上角&#xff1a;文件 → 新建 → 来自现有源代码的项目 找到解压在本地的项目源代码文件&#xff0c;点击确定&#xff0c;根据图示步骤继续导入项目 查看项目目录&#xff…

时序数据库InfluxDB—介绍与性能测试

目录 一、简述 二、主要特点 三、基本概念 1、主要概念 2、保留策略 3、连续查询 4、存储引擎—TSM Tree 5、存储目录 四、基本操作 1、Java-API操作 五、项目中的应用 六、单节点的硬件配置 七、性能测试 1、测试环境 2、测试程序 3、写入测试 4、查询测试 一…

探索数据存储的奥秘:深入理解B树与B+树

key value 类型的数据红黑树&#xff08;最优二叉树&#xff0c;内存最优&#xff09;&#xff0c;时间复杂度&#xff1a;O&#xff08;logn&#xff09;,调整方便&#xff1b;一个结点分出两个叉B树一个节点可以分出很多叉数据量相等的条件下&#xff1a;红黑树的层数很高&am…

element ui前端小数计算精度丢失的问题如何解决?

文章目录 前言一、什么是精度丢失&#xff1f;产生精度丢失的原因如何避免或减少精度丢失的影响 二、实际项目开发实例举例以项目预算模块为例如何解决精度丢失 总结 前言 在《工程投标项目管理系统》项目开发中工程项目预算、成本管理、财务管理等模块的开发中不可避免的要和…

小程序textarea组件键盘弹起会遮挡住输入框

<textarea value"{{remark}}" input"handleInputRemark" ></textarea> 如下会有遮挡&#xff1a; 一行代码搞定 cursor-spacing160 修改后代码 <textarea value"{{remark}}" input"handleInputRemark" cursor-spacin…

k8s笔记29--使用kyverno提高运维效率

k8s笔记29--使用kyverno提高运维效率 介绍原理安装应用场景自动修正测试环境pod资源强制 Pod 标签限制容器镜像来源禁止特权容器其它潜在场景 注意事项说明 介绍 Kyverno是一个云原生的策略引擎&#xff0c;它最初是为k8s构建的&#xff0c;现在也可以在k8s集群之外用作统一的…

如何理解机器学习中的线性模型 ?

在机器学习中&#xff0c;线性模型是一类重要且基础的模型&#xff0c;它假设目标变量&#xff08;输出&#xff09;是输入变量&#xff08;特征&#xff09;的线性组合。线性模型的核心思想是通过优化模型的参数&#xff0c;使模型能够捕捉输入与输出之间的线性关系。以下是线…

数据结构初阶---排序

一、排序相关概念与运用 1.排序相关概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的…

树莓派-5-GPIO的应用实验之GPIO的编码方式和SDK介绍

文章目录 1 GPIO编码方式1.1 管脚信息1.2 使用场合1.3 I2C总线1.4 SPI总线2 RPI.GPIO2.1 PWM脉冲宽度调制2.2 静态函数2.2.1 函数setmode()2.2.2 函数setup()2.2.3 函数output()2.2.4 函数input()2.2.5 捕捉引脚的电平改变2.2.5.1 函数wait_for_edge()2.2.5.2 函数event_detect…

学习RocketMQ

1.为什么要用MQ&#xff1f; 消息队列是一种“先进先出”的数据结构 其应用场景主要包含以下4个方面&#xff1a; 1.1 异步解耦​ 最常见的一个场景是用户注册后&#xff0c;需要发送注册邮件和短信通知&#xff0c;以告知用户注册成功。传统的做法有以下两种&#xff1a; …

3DGabor滤波器实现人脸特征提取

import cv2 import numpy as np# 定义 Gabor 滤波器的参数 kSize 31 # 滤波器核的大小 g_sigma 3.0 # 高斯包络的标准差 g_theta np.pi / 4 # Gabor 函数的方向 g_lambda 10.0 # 正弦波的波长 g_gamma 0.5 # 空间纵横比 g_psi np.pi / 2 # 相位偏移# 生成 Gabor 滤…

LabVIEW自动扫描与图像清晰度检测

要在LabVIEW中实现通过电机驱动相机进行XY方向扫描&#xff0c;找到物品并获取最清晰的图像&#xff0c;可以采用以下方案&#xff1a; 1. 系统概述 硬件组成&#xff1a;电机驱动的XY扫描平台、工业相机、控制器&#xff08;如NI的运动控制卡&#xff09;、计算机。 软件平台…

Vue3(一)

1.Vue3概述 Vue3的API由Vue2的选项式API改为了组合式API。但是&#xff0c;也是Vue2中的选项式API也是兼容的。 2.创建Vue3项目 create-vue 是 Vue 官方新的脚手架工具&#xff0c;底层切换到了 vite。使用create-vue创建项目的步骤如下&#xff1a; 安装 create-vue npm i…

使用wav2vec 2.0进行音位分类任务的研究总结

使用wav2vec 2.0进行音位分类任务的研究总结 原文名称&#xff1a; Using wav2vec 2.0 for phonetic classification tasks: methodological aspects 研究背景 自监督学习在语音中的应用 自监督学习在自动语音识别任务中表现出色&#xff0c;例如说话人识别和验证。变换器模型…

STM32学习(十)

I2C模块内部结构 I2C&#xff08;Inter-Integrated Circuit&#xff09;模块是一种由Philips公司开发的二线式串行总线协议&#xff0c;用于短距离通信&#xff0c;允许多个设备共享相同的总线‌。 ‌硬件连接简单‌&#xff1a;I2C通信仅需要两条总线&#xff0c;即SCL&…