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.hqwc.cn/news/670515.html

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

相关文章

Sy9-dhcp/dns服务配置

前言、 课程需要(进入服务器综合配置使用阶段了),这里还是沿用桌面版的ubuntu来配置dhcp和dns,这里updated了新的版本。2024.5 server端环境: Win11VMS:192.168.105.1192.168.105.128 (ubuntu…

搜索算法系列之四(斐波那契)

以下算法被验证过,如有什么问题或有补充的欢迎留言。 前言 斐波那契数列,又称黄金分割数列,是由意大利数学家(Leonardo Fibonacci)在1202年提出的。这个数列的递推关系是F(0)1,F(1)1,F(n)F(n-…

Vscode 总是发现不到包package

Vscode 右下角,选择3.8.6就不再报错,其他最新版本的3.11.7就不行。

嵌入式学习67-C++(多线程,自定义信号合槽,串口通信)

知识零碎: QmessageBox 报错提示框 GPS传感器获取到的 经纬度信息并不是真实的物理坐标,还需要转换 signals: …

NEO 学习之session7

文章目录 选项 A:它涉及学习标记数据。 选项 B:它需要预定义的输出标签进行训练。 选项 C:它涉及在未标记的数据中寻找模式和关系。 选项 D:它专注于根据输入-输出对进行预测。 答案:选项 C 描述了无监督学习的本质&am…

杭电acm1013 Digital Roots 数字根 Java解法 高精度

Problem - 1013 (hdu.edu.cn) 高精度算术模拟 开long没过想到开bI 开bl一次过 import java.math.BigInteger; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);BigInteger i;while (!(i sc.nextB…

部署Gerapy

1.Gerapy 是什么? Gerapy 是一款基于 Python 3 的分布式爬虫管理框架,它旨在简化和优化分布式爬虫的部署、管理和监控过程。 2.作用与功能? 2.1分布式管理: Gerapy 允许用户在多台机器上部署和管理Scrapy爬虫,实现爬虫…

Nftables漏洞原理分析(CVE-2022-32250)

前言 在nftales中存在着集合(sets),用于存储唯一值的集合。sets 提供了高效地检查一个元素是否存在于集合中的机制,它可以用于各种网络过滤和转发规则。 而CVE-2022-32250漏洞则是由于nftables在处理set时存在uaf的漏洞。 环境搭建 ubuntu20 QEMU-4…

MySQL数据库—DQL查询语句(一篇教会你快速找到想要的数据)

目录 ▐ 特定列查询 ▐ 逻辑处理 ▐ 字符函数操作 ▐ 分组函数统计 ▐ 数学函数 ▐ 日期函数 ▐ 条件查询 ▐ 排序 ▐ 数量限制 ▐ 合并 ▐ 分组查询 ▐ 前言: • DQL全称 Data Query Language 数据查询语言 • 可以从一个表中查询数据,也…

连锁收银系统批量调整商品价格教程

1、进入系统后台,系统后台登录网址: 2、点击商品>商品调价 3、将按模板整理好的商品价格数据导入即可。 Tips:每次导入的商品数量不要超过6000 条。

PHP基于B/S版 医院不良事件管理系统源码vscode+laravel8医院如何加强不良事件上报系统的管理 AEMS系统源码

PHP基于B/S版 医院不良事件管理系统源码vscodelaravel8医院如何加强不良事件上报系统的管理 AEMS系统源码 医院安全(不良)事件管理AEMS系统AEMS采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,实现以事件为主要…

ShardingSphere 5.x 系列【30】影子库

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址:https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 影子库与全链路压测2. 核心概念3. 使用限制4. 执行原理4.1 DML 语句4.2 D…