STM32的DAC输出经过隔直电容后,为什么直流偏置会发生变化? 📅 发布时间:2026/9/3 17:18:53 👁 浏览次数: 现象描述使用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输出正弦波时要叠加一个中位点作为直流偏置量因为正弦信号在一个周期内的变化范围是(-11)如果不叠加中位点做偏置那么计算出来的波点值可能为负值而DAC的真值输入范围是(04095)负值是无法输入到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。当然在这一过程中电荷还是在动态移动的