☰
STM32的DAC输出经过隔直电容后,为什么直流偏置会发生变化?
2026/10/3 2:38:56 网站建设 项目流程
  • 现象描述:使用STM32的DAC功能输出“0-3.3V”的正弦波,在经过电容隔直后输出“-1.65~1.65V”的正弦波信号。

  • 现象分析:
    • STM32 DAC产生正弦波信号原理:通过定时器产生定时触发事件,触发DMA将离散正弦波点值传输给DAC,然后DAC根据波点值转换对应的电压进行输出。由于STM32的DAC电压的输出范围一般取决VREF+引脚,且VREF+引脚要接正电压,而VREF+引脚一般是接3.3V,所以STM32的DAC输出的电压范围一般是0-3.3V。要想生成正弦波信号,必须要把一个周期的正弦波进行离散化,DAC输出的正弦波平滑度取决于离散点的多少,这些离散点也可以称为波点数。波点数越大,输出的正弦波越平滑,但是过大的波点数会导致DAC输出的正弦波的频率降低。波点数需要和定时器的定时时间做一个平衡,以此输出想要的正弦波信号。
      • 12位DAC的波点数计算时需要叠加直流偏置量,其公式为:,其中N为波点数的个数,可以取N为64或128。
      • 上式中的就是DAC输出叠加的直流偏置,对应的电压值为,也就是1.65V。
      • 为什么DAC输出正弦波时要叠加一个中位点作为直流偏置量?因为正弦信号在一个周期内的变化范围是(-1,1),如果不叠加中位点做偏置,那么计算出来的波点值可能为负值,而DAC的真值输入范围是(0,4095),负值是无法输入到DAC数据寄存器,DAC数据寄存器接收的值的类型为uint32_t(无符号整型),就算输入负值也会在数值传输时转换为正数,届时DAC的波点值与波形值不对应,输出的波形会失真。、
    • DAC产生的正弦波信号经过电容隔直后的动态过程:在清楚了DAC产生正弦信号的过程之后,下面看一下将这个DAC产生的信号经过一个电容后会发生什么。
      • 电容上电荷积累阶段:在系统刚上电时,电容两端电压为0,随着输入信号的加入,电容两端会形成电场,随后电子开始往极板2移动积累,电容两端电压开始增加,但是电子移动的这个过程不会很长。因为输入信号一直是变化着的,当输入信号的电压下降到与电容两端电压一致时,电子停止往输出侧电容极板移动。此时输入信号的电压继续下降,而电容为了维持自身电压不变,极板2的电子会向反方向移动,也就是经输出负载到GND,这一过程也不会持续太久,输出侧电容极板的电子还没有释放完,下一个周期的输入信号又过来了,此时输出侧电容极板停止电子释放,继而又开始积累电子。在最开始的电荷积累阶段,每个周期一定会有一定的电荷积累,因为输入信号是有直流偏置的。(下面的正弦信号示意图是为了说明电荷移动的,实际上电荷在移动时绝不是以四分之一周期为间隔)
      • 电容的电荷移动动态平衡阶段:上述的过程一直持续到,在一个信号周期内,电容的电荷累积量等于电荷释放量的时候,这时候电容的电荷移动达到动态平衡,此时电容两端的端电压就是输入信号的平均值(直流偏置量)。
      • 动态平衡后的阶段分析:在电容电荷移动达到动态平衡时,此时电容本身充当输入信号的偏置=1.65V,从而影响着输出信号的偏置。这一过程就是当输入信号峰峰值为3.3V时,同样的电容极板1的电压也会被抬升到3.3V,但是电容两端的电压不能突变,此时为了保持电容电压不变,电容极板2的电压会被抬升到1.65V。当输入信号峰峰值为1.65V时,电容极板1的电压会同步变为1.65V,为保持电容电压不变,此时电容极板2的电压会变为0V。当输入信号峰峰值为0V时,同样的,电容极板1的电压变为0V,为保持电容两端电压不变,电容极板2的电压会变为-1.65V。(当然在这一过程中电荷还是在动态移动的)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询