stm32f103zet6_DAC_1_介绍

STM32微控制器系列的DAC(数字到模拟转换器)功能是其片上外设之一,用于将数字信号转换为模拟信号。DAC在许多应用中都非常有用,例如音频输出、模拟信号生成、闭环控制系统中作为模拟输出等。

STM32微控制器的DAC功能特点包括:

  1. 12位或16位分辨率:不同型号的STM32微控制器可能提供12位或16位的DAC分辨率。
  2. 多通道输出:STM32通常具有至少两个DAC通道,可以独立或同时使用。
  3. 多种触发源:DAC输出可以由多种内部或外部事件触发,例如软件触发、定时器触发等。
  4. 噪声生成:一些STM32微控制器支持噪声生成功能,可以用于测试或特定应用。
  5. 三角波生成:同样,某些STM32型号支持直接生成三角波。
  6. 双DAC模式:可以将两个DAC通道配置为同时更新,以减少在两个通道之间转换时的毛刺。
  7. 输出缓冲器:DAC输出可以配置为有缓冲或无缓冲,以适应不同的负载条件。
    1. 驱动能力

      • 启用输出缓冲器:输出缓冲器可以提供更高的电流来驱动外部负载,这对于驱动较大的电容负载或电阻负载非常有用。
      • 禁用输出缓冲器:输出缓冲器禁用时,DAC的驱动能力会降低,适用于驱动较小的负载或不需要高驱动能力的应用。
    2. 输出阻抗

      • 启用输出缓冲器:缓冲器可以降低DAC的输出阻抗,这对于保持输出电压的稳定性非常重要,尤其是在负载变化时。
      • 禁用输出缓冲器:禁用输出缓冲器会使DAC的输出阻抗变高,可能导致输出电压在负载变化时更加不稳定。
    3. 电压毛刺

      • 启用输出缓冲器:输出缓冲器可以帮助减少由于电容负载或快速负载变化引起的电压毛刺。
      • 禁用输出缓冲器:禁用输出缓冲器可能会导致在负载变化时出现更多的电压毛刺。
    4. 功耗

      • 启用输出缓冲器:输出缓冲器工作时需要消耗额外的电流,从而增加整体的功耗。
      • 禁用输出缓冲器:禁用输出缓冲器可以减少功耗,这对于低功耗应用是有益的。
    5. 偏移和噪声

      • 启用输出缓冲器:输出缓冲器可能会引入额外的偏移和噪声,这可能会影响模拟信号的质量。
      • 禁用输出缓冲器:禁用输出缓冲器可以减少由于缓冲器引入的偏移和噪声,适用于对信号质量要求较高的应用。

为了使用STM32的DAC功能,通常需要进行以下步骤:

  1. 配置相关引脚:将相关的模拟输出引脚配置为模拟输出模式。
  2. 初始化DAC:通过软件配置DAC的工作模式,例如分辨率、触发模式等。
  3. 启动DAC:使能DAC,并开始转换过程。
  4. 数据写入:通过相应的寄存器将数字值写入DAC,DAC会将这些值转换为模拟信号输出。

DAC通道模块框图

DAC转换

不能直接对寄存器DAC_DORx写入数据,任何输出到DAC通道x的数据都必须写入DAC_DHRx 寄存器(数据实际写入DAC_DHR8Rx、DAC_DHR12Lx、DAC_DHR12Rx、DAC_DHR8RD、 DAC_DHR12LD、或者DAC_DHR12RD寄存器)。 如果没有选中硬件触发(寄存器DAC_CR1的TENx位置’0’),存入寄存器DAC_DHRx的数据会在 一个APB1时钟周期后自动传至寄存器DAC_DORx。如果选中硬件触发(寄存器DAC_CR1的 TENx位置’1’),数据传输在触发发生以后3个APB1时钟周期后完成。 一旦数据从DAC_DHRx寄存器装入DAC_DORx寄存器,在经过时间tSETTLING之后,输出即有 效,这段时间的长短依电源电压和模拟输出负载的不同会有所变化

 

选择DAC触发

注意: 1. 不能在ENx为’1’时改变TSELx[2:0]位。 2. 如果选择软件触发,数据从寄存器DAC_DHRx传送到寄存器DAC_DORx只需要一个APB1时 钟周期。 

数据格式

 DAC输出电压

数字输入经过DAC被线性地转换为模拟电压输出,其范围为0到VREF+。 任一DAC通道引脚上的输出电压满足下面的关系: DAC输出 = VREF x (DOR / 4095)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

概率论 科普

符号优先级 概率公式中一共有三种符号:分号 ; 、逗号 , 、竖线 | 。 ; 分号代表前后是两类东西,以概率P(x;θ)为例,分号前面是x样本,分号后边是模型参数。分号前的 表示的是这个式子用来预测分布的随机变量x,分号后的…

(论文阅读-优化器)Orca: A Modular Query Optimizer Architecture for Big Data

目录 摘要 一、简介 二、背景知识 2.1 大规模并行处理 2.2 SQL on Hadoop 三、Orca架构 四、查询优化 4.1 优化工作流 4.2 并行查询优化 五、Metadata Exchange 六、可行性 6.1 Minimal Repros 6.2 优化器准确性测试 七、实验 八、相关工作 8.1 查询优化基础 8…

自动驾驶融合定位:IMU内参模型及标定

自动驾驶融合定位:IMU内参模型及标定 一、 概述 标定的本质是参数辨识。首先明确哪些参数可辨识,其次弄清怎样辨识。 参数包括陀螺仪和加速度计各自的零偏、标度因数、安装误差。 辨识就比较丰富了,如果让各位先不局限于标定任务&#xf…

CasaOS玩客云安装memos开源云笔记并实现随时随地远程记笔记

文章目录 前言1. 使用Docker部署memos2. 注册账号与简单操作演示3. 安装cpolar内网穿透4. 创建公网地址5. 创建固定公网地址 前言 本文主要介绍如何在CasaOS玩客云,使用Docker本地部署21.6K stars的热门开源云笔记服务memos,并结合cpolar内网穿透工具打…

libevent的使用

文章目录 libevent封装的框架思想常用函数分析使用fifo的读写未决和非未决bufferevent特性bufferevent函数客户端和服务器连接和监听libevent实现socket通信 libevent封装的框架思想 libevent框架:1. 创建 event_base (乐高底座)2. 创建 事件evnet 3. 将事件 添加…

MATLAB 变换

MATLAB 变换(Transforms) MATLAB提供了用于处理诸如Laplace和Fourier变换之类的变换的命令。转换在科学和工程中用作简化分析和从另一个角度查看数据的工具。 例如,傅立叶变换允许我们将表示为时间函数的信号转换为频率函数。拉普拉斯变换使…

软件测试面试问题汇总

一般软件测试的面试分为三轮:笔试,HR面试,技术面试。 前两轮,根据不同企业,或有或无,但最后一个技术面试是企业了解你“行不行”的关键环节,每个企业都会有的。 在平时的学习、工作中一定要善于…

使用tkinter开发的一款可扫描并删除本地文件敏感词的Windows软件

大致功能:可指定扫描Windows上的某个目录的所有文件,单个文件扫描,目前适配支持的文件后缀有:"pdf"、"txt、"doc"、"docx",软件是开源的,大家可以在此基础上扩展更多类…

servlet-request(请求)-请求转发

request请求 request 请求index.jsplogin.jspsuccess.jspLoginServletSuccessServlet响应写入用户名和密码测试请求转发success.jsp页面测试请求转发SuccessServlet 页面测试重定向SuccessServlet 页面测试 request 请求 作用:获取浏览器发送过来的数据 组成部分&a…

【数据结构初阶】希尔排序

鼠鼠最近学习了希尔排序,做个笔记! 希尔排序也是插入排序的一种捏!本篇博客也是用排升序来举例捏! 希尔排序是基于直接插入排序的,是由大佬D.L.Shell提出的。 目录 1.希尔排序 1.1.预排序 1.2.直接插入排序 2.希…

自动化运维工具---Ansible

一 Puppet Puppet是历史悠久的运维工具之一。它是一种基础架构即代码(laC)工具,使用户可以定义其基础 架构所需的状态,并使系统自动化以实现相同状态。 Puppet可监视用户的所有系统,并防止任何偏离已定义状态的情况。从简单的工作流程自动…

代码本地化

目的 代码本地化(Localization)是指将软件应用程序中的文本、图形、声音和其他内容翻译成特定语言的过程,同时确保这些内容在目标文化中适当地呈现。本地化不仅仅是对文本进行翻译,还包括对日期、时间、数字、货币、排序顺序、文本…

04-19 周四 GitHub CI 方案设计

04-19 周四 GitHub CI 方案设计 时间版本修改人描述2024年4月19日14:44:23V0.1宋全恒新建文档2024年4月19日17:22:57V1.0宋全恒完成部署拓扑结构的绘制和文档撰写 简介 需求 由于团队最近把代码托管在GitHub上,为解决推理、应用的自动化CI的需要,调研了…

最近惊爆谷歌裁员

Python团队还没解散完,谷歌又对Flutter、Dart动手了。 什么原因呢,猜测啊。 谷歌裁员Python的具体原因可能是因为公司在进行技术栈的调整和优化。Python作为一种脚本语言,在某些情况下可能无法提供足够的性能或者扩展性,尤其是在…

分析:Palo Alto在从SASE向SASO演进中定位不佳

摘要 我们通过上一篇文章(Fortinet的愿景——超越SASE)中应用于Fortinet的相同框架来回顾Palo Alto Network在网络和网络安全方面的前景。 SASE涉及数据传输的第一英里。不过,随着SASE的发展,投资者还需要考虑中间和最后一英里。…

【JavaScript】数据类型转换

JavaScript 中的数据类型转换主要包括两种:隐式类型转换(Implicit Type Conversion)和显式类型转换(Explicit Type Conversion)。 1. 隐式类型转换(自动转换): js 是动态语言&…

Docker搭建LNMP+Wordpress的实验

目录 一、项目的介绍 1、项目需求 2、服务器环境 3、任务需求 二、Linux系统基础镜像 三、部署Nginx 1、建立工作目录 2、编写Dockerfile 3、准备nginx.conf配置文件 4、设置自定义网段和创建镜像和容器 5、启动镜像容器 6、验证nginx 三、Mysql 1、建立工作目录…

Kalign 3:大型数据集的多序列比对

之前一直用的是muscle,看到一个文章使用了Kalign,尝试一下吧 安装 wget -c https://github.com/TimoLassmann/kalign/archive/refs/tags/v3.4.0.tar.gz tar -zxvf v3.4.0.tar.gz cd kalign-3.4.0 mkdir build cd build cmake .. make make test su…

【数据结构与算法】之五道链表进阶面试题详解!

目录 1、链表的回文结构 2、相交链表 3、随机链表的复制 4、环形链表 5、环形链表(||) 6、完结散花 个人主页:秋风起,再归来~ 数据结构与算法 个人格言:悟已往之不谏,知…

【搜索技能】外链

文章目录 前言一、外链是什么?二、如何进行外链调查?总结 前言 今儿因为在搜索一个很感兴趣的软件,但是软件信息所在的网址非常有限。因此产生了一个念头:我能不能找到所有的包含了或者是引用了这个网站的网站呢? 调查之下&…