透传方式造成的DAC毛刺现象

  最近画了块板子来产生任意波形信号,方案是STM32+DAC8822,电路图如下显示,设计成双极性输出。

  因为设计的更新频率是20KHz,所以就没有采用等长线连接DAC的并口。焊好板子下好程序后很顺利的就出来预期的波形了,但是仔细观察信号是有很多毛刺的,而且是存在于每次更新数据的时候,这毛刺还挺大,约有200mV。我想想这不太应该啊,DAC在切换不同数据时因为DAC内部的切换开关并不是精确同步确实会造成毛刺现象,这现象在中值转换时由为明显,但是我这这么大的毛刺明显超出了正常范围,查看了数据手册如下图

  DAC8822的数据手册说明在code从7FFFh到8000h时会产生约50mV的毛刺,在code从8000h到7FFFh时会产生约10mV的毛刺,所有在其他数值转换应该远小于这个值,所以并不是芯片本身问题。之后我再检查了电路图和PCB布局,似乎都没有问题,难道是玄学问题?

  经过一些徒劳的挣扎,可能突然开了窍,想起我在写程序的时候使用的是透传模式,即并口的数据一改变就立刻更新DAC,那会不会因为我画的不是等长线,或者本身stm32IO输出并不同步,所以造成DAC接收的数据并不是同步的,所以在更新正确数据前会更新一次甚至多次其他未知的错误值。DAC8822的功能控制如下图

  然后修改了时序,不用透传方式,而是在每次改变数据后再用LDAC装载,下载程序,毛刺瞬间消失,还是有一点点毛刺,但是很小,添加一些补偿电容或者滤波可以减小到可接受范围。

 

  所以如果有同学出现类似的情况,可以参考一下是不是像我一样犯下简单的错误

猜你喜欢

转载自www.cnblogs.com/xiaohuimao/p/9267792.html
今日推荐