STM32 DAC工作原理

DAC工作原理

DAC介绍

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

DAC主要特征

●  2个DAC转换器:每个转换器对应1个输出通道

●  8位或者12位单调输出

●  12位模式下数据左对齐或者右对齐

●  双DAC通道同时或者分别转换

●  每个通道都有DMA功能

●  外部触发转换

●  输入参考电压VREF+

DAC管脚

STM32 DAC工作原理_第1张图片

注意:  一旦使能DACx通道,相应的GPIO引脚(PA4或者PA5)就会自动与DAC的模拟输出相连(DAC_OUTx)。为了避免寄生的干扰和额外的功耗,引脚PA4或者PA5在之前应当设置成模拟输入(AIN)

使能DAC通道

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

注意: ENx位只会使能DAC通道x的模拟部分,即便该位被置’0’,DAC通道x的数字部分仍然工作。

使能DAC输出缓存

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

 DAC输出电压

    数字输入经过DAC被线性地转换为模拟电压输出,

    其范围为0到VREF+ 。

    任一DAC通道引脚上的输出电压满足下面的关系:

    DAC输出 = VREF x (DOR / 4095) 。

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是内部的数据保存寄存器x) 。随后,DHRx寄存器的内容或被自动地传送到DORx寄存器,或通过软件触发或外部事件触发被传送到DORx寄存器。

STM32 DAC工作原理_第2张图片

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 之后,输出即有效,这段时间的长短依电源电压和模拟输出负载的不同会有所变化。

STM32 DAC工作原理_第3张图片

选择DAC触发

   如果TENx位被置1,DAC转换可以由某外部事件触发(定时器计数器、外部中断线)。配置控制位TSELx[2:0] 可以选择8个触发事件之一触发DAC转换。

STM32 DAC工作原理_第4张图片

每次DAC接口侦测到来自选中的定时器TRGO输出,或者外部中断线9的上升沿,最近存放在寄存器DAC_DHRx中的数据会被传送到寄存器DAC_DORx中。在3个APB1 时钟周期后,寄存器 DAC_DORx更新为新值。

 

    如果选择软件触发,一旦SWTRIG位置’1’ ,转换即开始。在数据从DAC_DHRx寄存器传送到DAC_DORx寄存器后,SWTRIG位由硬件自动清’0’。

你可能感兴趣的:(嵌入式开发)