Post Go back to editing

AD7606B 数据读取不定时异常

使用AD7606B采集电压电流波形,采集原理:STM32定时器输出周期950us,占空比为50%的方波作为外部时钟输入给convst,通过检测BUSY下降沿SPI读取ADC数据。

AD7606B配置为软件模式,Dout线数为1,无过采样,±10V范围。

原理图(原理图存在错误,图上引脚用的7606,实际使用7606b,WR为低电平)如下:

测试中发现奇怪现象,对瞬时脉冲信号(每秒10ms高电平)的采集不定时丢失,而稳定信号未出现。

此外:

两通道同时输入10ms脉冲信号,不一定哪个通道会出现丢失;

两通道一个10ms脉冲,一个20ms脉冲输入,10ms脉冲会出现丢失;

正常脉冲波形

丢失时波形

且丢失前会有一段时间 间隔21s丢一次数据的现象(为什么会间隔21s丢数据, 是否跟950us的convst时钟有关系)

同时刻另一通道的稳定电平信号正常采集

将脉冲信号改为每秒30ms高电平信号,采集波形经过十几分钟缓慢恢复正常。将脉冲信号改为稳定高电平信号,波形立即恢复正常。

使用示波器测量convst信号(下图黄色)和busy信号(下图蓝色),发现busy不连续,但stm32可以每毫秒都能检测到busy下降沿,不确定是不是示波器问题。

将stm32定时器改为输出周期1ms的方波后,该现象暂未复现,不理解为什么这个改动会起作用。

示波器测量7606B相关电压:

Vvcc :    有效值5.16V,峰值5.28V

Vdrive:有效值3.45V,峰值3.52V

Vregcap: 有效值1.95V,峰值2.08V

排查了很久,没找到根本原因,烦请帮忙看下,谢谢!

Parents Reply
  • 另外有个问题:我现在用一条Dout线读取ADC数据先把CS拉低,然后读取5通道数据后再把CS拉高。即软件模式下使用1条Dout线,在CS保持低电平时顺序读取5通道数据。软件模式下一条Dout线读取CS信号是否可以保持低电平,还是必须以16个SCLK时钟为周期

    此外测量了BUSY信号高电平持续时间只有800ns左右

Children