Stm32F103R6之DAC

概述

数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。

Stm32F103R6之DAC

图 1DAC通道模块框图

配置DAC的一般步骤

1. 配置相应IO口。

2. 使能DAC时钟。

3. 使能DAC通道,将DAC_CR寄存器的ENx位置’1’即可打开对DAC通道x的供电。经过一段启动时间tWAKEUP,DAC通道x即被使能。

4. 使能DAC输出缓存。DAC集成了2个输出缓存,可以用来减少输出阻抗,无需外部运放即可直接驱动外部负载。每个DAC通道输出缓存可以通过设置DAC_CR寄存器的BOFFx位来使能或者关闭。

5. 配置DAC数据。

利用DAC生成噪声

可以利用线性反馈移位寄存器(Linear Feedback Shift Register LFSR)产生幅度变化的伪噪声。设置WAVE[1:0]位为’01’选择DAC噪声生成功能。

利用DAC生成三角波

可以在DC或者缓慢变化的信号上加上一个小幅度的三角波。设置WAVEx[1:0]位为’10’选择DAC的三角波生成功能。设置DAC_CR寄存器的MAMPx[3:0]位来选择三角波的幅度。内部的三角波计数器每次触发事件之后3个APB1时钟周期后累加1。计数器的值与DAC_DHRx寄存器的数值相加并丢弃溢出位后写入DAC_DORx寄存器。在传入DAC_DORx寄存器的数值小于MAMP[3:0]位定义的最大幅度时,三角波计数器逐步累加。一旦达到设置的最大幅度,则计数器开始递减,达到0后再开始累加,周而复始。

Stm32F103R6之DAC

图 2DAC三角波生成

双DAC通道转换

在需要2个DAC同时工作的情况下,为了更有效地利用总线带宽,DAC集成了3个供双DAC模式使用的寄存器:DHR8RD、DHR12RD和DHR12LD,只需要访问一个寄存器即可完成同时驱动2个DAC通道的操作。


分享到:


相關文章: