在数字信号系统中,大部分传感器信号会被转换成电压信号,经由ADC转换成易于计算机存储,处理的数字编码,由计算机处理之后,DAC输出电压模拟信号以驱动器件,例如音频信号的采集和还原。
Stm32的DAC外设的数字输入信号的分辨率可为8位或12位,具有两个输出通道,每个通道都可以使用DMA,DAC能出错检测和外部触发,下面我们分析他的结构框图。
- 参考电压:VSS一般接地,VDD,VREF,这样DAC的输出电压的范围为0~3.3V。当然在外部加一个电压调理电路,能让电压范围变宽。
- 数模转换及输出通道:转换器以VREF作为参考电压,以数据寄存器的数字编码作为输入,经它转换的模拟信号由DAC_OUTx输出到PA4(DAC1),PA5(DAC2),为避免干扰,此俩引脚配置为模拟输入。
- 控制单元:这个就是配置不同的模式。
- DHRx寄存器与触发源:数据必须先写入DHRx寄存器(包含DHR8Rx,DHR12Lx,根据分辨率和数据对齐方向将数据写入相应寄存器);DAC就会根据不同的触发配置进行处理;触发源分为硬件触发(内部),外部触发(定时器,中断,软件)。
- 如何输出正弦波? v=sin(t),这个t可由定时器作为触发源来提供,每隔一段相同的时间就会触发DMA搬运一个新数据到数据寄存器里,再进行转换就会输出正弦波了;每完成一个周期后,DMA重新开始循环,就可以输出连续的波形了。