- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ALIENTEK 战舰STM32开发板
第二十四章 DAC 实验
上两章,我们介绍了STM32 的ADC 使用,本章我们将向大家介绍STM32 的DAC 功能。
在本章中,我们将利用按键(或USMART )控制STM32 内部DAC 模块的通道 1 来输出电压,
通过ADC1 的通道1 采集DAC 的输出电压,在LCD 模块上面显示ADC 获取到的电压值以及
DAC 的设定输出电压值等信息。本章将分为如下几个部分:
24.1 STM32 DAC 简介
24.2 硬件设计
24.3 软件设计
24.4 下载验证
324
ALIENTEK 战舰STM32开发板
24.1 STM32 DAC 简介
大容量的STM32F103 具有内部DAC ,战舰STM32 选择的是STM32F103ZET6 属于大容量
产品,所以是带有DAC 模块的。
STM32 的DAC 模块(数字/模拟转换模块)是12 位数字输入,电压输出型的DAC 。DAC 可
以配置为8 位或 12 位模式,也可以与DMA 控制器配合使用。DAC 工作在12 位模式时,数据
可以设置成左对齐或右对齐。DAC 模块有 2 个输出通道,每个通道都有单独的转换器。在双
DAC 模式下,2 个通道可以独立地进行转换,也可以同时进行转换并同步地更新2 个通道的输
出。DAC 可以通过引脚输入参考电压VREF+ 以获得更精确的转换结果。
STM32 的DAC 模块主要特点有:
① 2 个DAC 转换器:每个转换器对应1 个输出通道
② 8 位或者 12 位单调输出
③ 12 位模式下数据左对齐或者右对齐
④ 同步更新功能
⑤ 噪声波形生成
⑥ 三角波形生成
⑦ 双DAC 通道同时或者分别转换
⑧ 每个通道都有DMA 功能
单个DAC 通道的框图如图24.1.1 所示:
图24.1.1 DAC 通道模块框图
325
ALIENTEK 战舰STM32开发板
图中VDDA 和VSSA 为DAC 模块模拟部分的供电,而Vref+则是DAC 模块的参考电压。
DAC_OUTx 就是DAC 的输出通道了(对应PA4 或者PA5 引脚)。
从图24.1.1 可以看出,DAC 输出是受DORx 寄存器直接控制的,但是我们不能直接往DORx
寄存器写入数据,而是通过DHRx 间接的传给DORx 寄存器,实现对DAC 输出的控制。前面
我们提到,STM32 的DAC 支持8/12 位模式,8 位模式的时候是固定的右对齐的,而 12 位模式
又可以设置左对齐/右对齐。单DAC 通道x ,总共有3 种情况:
① 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 通道1,采用12 位右对齐格式,所以采用第③种情况。
如果没有选中硬件触发(寄存器DAC_CR1 的TENx 位置’0 ’),存入寄存器DAC_DHRx
的数据会在一个 APB1 时钟周期后自动传至寄存器 DAC_DORx 。如果选中硬件触发(寄存器
DAC_CR1 的TENx 位置’1’) ,数据传输在触发发生以后3 个APB1 时钟周期后完成。 一旦
数据从DAC_DHRx 寄存器装入DAC_DORx 寄存器,在经过时间 之后,输出即有效,
这段时间的长短依电源电压和模拟输出负载的不同会有所变化。我们可以从 STM32F103ZET6
的数据手册查到 的典型值为3us,最大是4us 。所以DAC 的转换速度最快是250K 左
右。
本章我们将不使用硬件触发(TEN=0 ),其转换的时间框图如图24.1.2 所示:
图24.1.2 TEN=0 时DAC 模块转换时间框图
当DAC 的参考电压为Vref+ 的时候,DAC 的输出电压是线性
文档评论(0)