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

STM32G4的数模转换器(DAC)功能介绍

目录

概述

1 DAC介绍

1.1 功能

1.2 主要特征

 1.3 DAC特性总结

​2 DAC模块框架结构

3 DAC数据格式

3.1 单DAC通道

 3.2 双通道数据格式

 3.3 有符号、无符号数据

4 DAC数据转换

​5 DAC输出电压


概述

本文主要介绍STM32G4的数模转换器(DAC)功能,包括主要功能特征,DAC在MCU内部的框架结构,数据格式,转换数据波形特征,输出波形电压值计算方法等内容。

1 DAC介绍

1.1 功能

DAC模块是一个12位电压输出数模转换器。DAC可以配置为8位或12位模式,并且可以与DMA控制器一起使用。在12位模式下,数据可以左对齐或右对齐。DAC具有多达两个输出通道,每个输出通道都有自己的转换器。在双DAC通道模式中,当两个通道组合在一起进行同步更新操作时,转换可以独立完成,也可以同时完成。输入参考引脚,VREF+(与其他模拟外设共享)可用于更好的分辨率。

当DAC输出与输出垫断开连接并连接到片上外设时,DACx_OUTy引脚可以用作通用输入/输出(GPIO)。DAC输出缓冲器可以选择性地启用以获得高驱动输出电流。一个单独的校准可以应用于每个DAC输出通道。DAC输出通道支持低功耗模式,采样和保持模式。

1.2 主要特征

DAC的主要特点如下(见图-1:双通道DAC模块)
•多达四个DAC接口,最多两个输出通道
•12位模式下的左或右数据对齐
•同步更新功能
•噪声波和三角波的产生
•锯齿波产生
•双DAC通道独立或同步转换
•每个通道的DMA功能,包括DMA欠运行错误检测
•双重数据DMA功能,减少总线活动
•转换的外部触发器
•DAC输出通道缓冲/非缓冲模式
•缓冲偏移校准
•每个DAC输出可以从DACx_OUTy输出引脚断开
•DAC输出连接到片上外设
•采样和保持模式为低功耗操作在停止模式
•输入参考电压从VREF+引脚或内部VREFBUF参考

 1.3 DAC特性总结

2 DAC模块框架结构

3 DAC数据格式

3.1 单DAC通道

根据所选的配置模式,数据必须按如下方式写入指定的寄存器:

•单DAC通道
有三种可能性:
- 8位右对齐:软件必须将数据加载到DAC_DHR8Rx[7:0]位
(存储在DHRx[11:4]位)
- 12位左对齐:软件必须将数据加载到DAC_DHR12Lx[15:4]位(存储到DHRx[11:0]位)
- 12位右对齐:软件必须将数据加载到DAC_DHR12Rx[11:0]位(存储到DHRx[11:0]位)

根据所加载的DAC_DHRyyyx寄存器的不同,用户写入的数据被转移并存储到相应的DHRx(数据保存寄存器,这是内部非内存映射寄存器)中。然后DHRx寄存器通过软件触发器或外部事件触发器自动加载到DORx寄存器中。

 3.2 双通道数据格式

双DAC通道(可用时)
有三种可能性:
—8位右对齐:

DAC通道1的数据将被加载到DAC_DHR8RD [7:0]位(存储在DHR1[11:4]位中)和DAC通道2的数据被加载转换成DAC_DHR8RD[15:8]位(存储到DHR2[11:4]位)

-
- 12位左对齐:

DAC通道1的数据将加载到DAC_DHR12LD中[15:4]位(存储在dh1[11:0]位中)和DAC通道2的数据加载到DAC_DHR12LD[31:20]位(存储到DHR2[11:0]位)

-
- 12位右对齐:

DAC通道1的数据被加载到DAC_DHR12RD[11:0]位(存储在DHR1[11:0]位中)和DAC的数据channel2被加载到DAC_DHR12RD[27:16]位(存储在DHR2[11:0]位)

根据所加载的DAC_DHRyyyD寄存器的不同,用户写入的数据被转移并存储到DHR1和DHR2(数据保存寄存器,它们是内部非内存映射寄存器)中。然后,DHR1和DHR2寄存器分别通过软件触发器或外部事件触发器自动加载到DAC_DOR1和DOR2寄存器中。

 3.3 有符号、无符号数据

DAC输入数据是无符号的:0x000对应最小值,0xFFF对应12位模式的最大值。

DAC还可以处理2的补码格式的签名输入数据。这是通过在DAC_MCR寄存器中设置SINFORMATx位来实现的。

当设置SINFORMATx位时,写入DHRx寄存器的数据在复制到DAC_DORx寄存器时MSB位反转,DAC接口可以接受签名数据(Q1.15、Q1.11或Q1.7格式)。DAC_DHR12Lx寄存器可用于在数据保持寄存器中存储16位有符号数据。16位数据的12个MSB用于DAC输出数据,MSB位倒置。这四个llb被简单地忽略了。

 

4 DAC数据转换

 DAC_DORx不能直接写入,任何数据传输到DAC通道必须通过加载DAC_DHRx寄存器来执行(写入操作到DAC_DHR8Rx,DAC_DHR12Lx, DAC_DHR12Rx, DAC_DHR8RD, DAC_DHR12RD或DAC_DHR12LD)。

存储在DAC_DHRx寄存器中的数据在一个dac_hclk时钟周期后自动转移到DAC_DORx寄存器中,如果没有选择硬件触发器(TENx位)DAC_CR寄存器被重置)。但是,当选择硬件触发器时(TENx位)设置DAC_CR寄存器)并且触发发生,则在触发信号后执行三个dac_hclk时钟周期的传输。

当DAC_DORx加载DAC_DHRx内容时,根据电源电压和模拟输出负载的不同,经过一段时间的沉淀后,模拟输出电压才可用。

当dac_hclk时钟速率大于80mhz时,需要设置DAC_MCR的HFSEL位。它为从DAC_DHRx寄存器到DAC_DORx寄存器的传输增加了额外的延迟。


有关DAC_DORx更新速率取决于HFSEL位和dac_hclk时钟频率的限制,请参阅下面的表HFSEL描述。
如果在不允许的时间段内发生数据更新或软件/硬件触发事件,则外围设备的行为是不可预测的。
上述时序仅与DAC接口的限制有关。另请参考产品数据表中的tsettlement参数值。

触发器禁用时转换时序图TEN = 0

 5 DAC输出电压

数字输入通过0和VREF+之间的线性转换转换为输出电压。每个DAC通道引脚上的模拟输出电压由以下公式确定:


http://www.kler.cn/a/401928.html

相关文章:

  • apipost下载安装教程、脚本详细使用教程
  • ARM CCA机密计算安全模型之简介
  • 区块链中的wasm合约是什么?
  • 任务管理功能拆解——如何高效管理项目任务?
  • Qt桌面应用开发 第五天(常用控件)
  • ue中使用webui有效果白色拖动条 有白边
  • Linux-shell实例手册-服务操作
  • 基于YOLOv8深度学习的智慧农业猪行为检测系统研究与实现(PyQt5界面+数据集+训练代码)
  • SpringSecurity+jwt+captcha登录认证授权总结
  • ARM CCA机密计算安全模型之简介
  • 网络IPC:套接字汇总整理
  • 2411rust,编译时自动检查配置
  • 贴代码框架PasteForm特性介绍之select,selects,lselect和reload
  • Python入门(9)--类与对象基础
  • 30. 并发编程
  • Go 编译代码-分平台编译
  • Kubernetes配置管理ConfigMap、Secret
  • 51单片机基础01 单片机最小系统
  • freemarker 读取template.xml ,通过response 输出文件,解决中文乱码问题
  • 【大选】2024年美国总统选举数据分析可视化
  • HbuilderX的使用
  • 从零开始学习JVM(九)- 垃圾收集器
  • 【逐行注释】MATLAB的EKF和UKF例程与详细注释|附下载链接
  • LDR6500:C to DP与DP to C视频转接线双向方案
  • RTK技术算法概述!
  • 【Vue笔记】基于vue3 + element-plus + el-dialog封装一个自定义的dialog弹出窗口组件