使用NUCLEO-F413ZH开发板学习DAC功能时,我的DAC输出通道与ADC通道直接使用杜邦线连接,结果发现有数据不准现象。 具体为当串口控制DAC两个通道(12b)输出0时,发现结果不是0,而是0x41、0x42这样的值;当控制输出为0x50时,输出0x57、0x52;当控制输出0x250时,输出0x257、0x252;如下图所示: 查询F413参考手册,DAC其中有一个功能叫做输出缓冲器,可以提高DAC的驱动能力,本人在程序中便是打开了该功能。 是不是该缓冲器造成了误差呢?所以在程序中直接禁止该功能。结果DAC输出与ADC检测值相等了,所以确定这就是问题所在。 在开发板上直接使用4.7kΩ直插电阻,将DAC输出口接地,发现被控制通道当控制输出为0时,其值变成了0x3E,说明加负载可以改变缓冲器的输出结果。 所以提醒大家在使用F413的DAC的缓冲器功能时,必须要考虑好DAC负载的实际情况,并多加验证,才能够获得理想结果;要不然还是乖乖使用运放提高输出驱动能力。
|