DAC数模转换实验
1. 数模转换DAC原理
STM32 DAC局限性:
只有大容量的STM3210x才具有DAC功能,所以正点原子所有STM32开发板均具有DAC功能。
STM32的DAC模块(数字/模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道(有2个控制器),每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。
STM32的DAC模块主要特点有:
①2个DAC转换器:每个转换器对应1个输出通道
②8位或者12位单调输出
③12位模式下数据左对齐或者右对齐
④同步更新功能
⑤噪声波形生成
⑥三角波形生成
⑦双DAC通道同时或者分别转换
⑧每个通道都有DMA功能
通过控制输出我们想要的波形,可根据自己的需求生成任意的波形。
DORx:数据寄存器。
使用DAC输出到PA4、PA5,要将PA4、PA5设置成模拟输入(AIN)。
DAC转换:
不能直接对寄存器DAC_DORx写入数据,任何输出到DAC通道x的数据都必须写入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时钟周期后完成。