问题现象:在项目中,使用STM32系列单片机内部DA时,无法输出0V。设置输出0V后,测试输出62mV。
解决方法:在编写DAC程序时,关闭单片机DA的缓冲器,即可解决该问题。
原因:引起这个问题的原因为使能了BUFFER(输出缓冲器),输出缓冲器的作用是减小输出阻抗,可用来降低输出阻抗并在不增加外部运算放大器的情况下驱动外部负载。在stm32的数据手册中可以看到有说明:使能缓冲器之后,输出电压下限为0.2V,上限为VDDA-0.2V。关闭输出缓冲器,即意味着驱动能力减弱,建议添加电压跟随器或运放电路。
关闭输出缓冲器的程序为:DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;