电子元器件论坛
直播中

李梅

8年用户 1440经验值
私信 关注

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

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

回帖(1)

klysa

2025-4-23 17:10:28

针对AD7606B数据读取不定时异常的问题,以下是可能的原因及解决方案:




1. 硬件连接与引脚兼容性



  • 问题:AD7606与AD7606B的引脚定义可能存在差异,尤其是关键控制信号引脚(如CONVST、BUSY、CS等)。

  • 解决方案

    • 核对AD7606B数据手册,确认原理图中所有引脚与AD7606B的实际功能一致。

    • 重点检查WR引脚状态:AD7606B在软件模式下需保持WR为低电平,但需确认其他引脚(如PAR/SER)是否正确配置为SPI模式。





2. 时序问题



  • 问题:CONVST信号的周期(950μs)可能未满足AD7606B的最小转换周期要求,或BUSY信号与SPI读取时序不匹配。

  • 解决方案

    • 转换时间计算

    • AD7606B无过采样时,转换时间典型值3.45μs(最大4.25μs)。

    • 确保CONVST周期(950μs)大于转换时间 + 数据读取时间。

    • 关键时序检查

    • 确保从BUSY下降沿到第一个SCLK上升沿的延迟(t6)≥35ns(参考数据手册)。

    • 使用示波器观察CONVST、BUSY、SCLK和DOUT的时序,确认SPI读取在BUSY下降沿后及时启动。





3. SPI配置与通信



  • 问题:SPI时钟频率、极性或相位配置错误,导致数据读取错误。

  • 解决方案

    • 确认SPI模式与AD7606B要求匹配(通常为CPOL=0、CPHA=0)。

    • 降低SCLK频率(例如≤20MHz),避免超过AD7606B的最大SPI速率。

    • 检查SPI数据帧格式(16位或8位),确保读取的数据长度与ADC输出一致。





4. 中断处理与软件逻辑



  • 问题:BUSY下降沿中断响应延迟或中断冲突,导致数据读取不及时。

  • 解决方案

    • 优化中断服务程序(ISR),确保快速响应BUSY下降沿。

    • 在ISR中禁用其他高优先级中断,避免处理过程被抢占。

    • 验证多通道数据读取顺序:确保连续读取两个通道数据,避免遗漏。





5. 电源与噪声干扰



  • 问题:电源噪声或地线干扰导致ADC转换异常。

  • 解决方案

    • 检查模拟电源(AVCC)和数字电源(DVCC)的稳定性,推荐使用低噪声LDO。

    • 增加去耦电容(如10μF钽电容 + 100nF陶瓷电容)靠近ADC电源引脚。

    • 确保模拟地和数字地单点连接,避免地环路干扰。





6. 脉冲信号特性



  • 问题:瞬时脉冲(10ms高电平)的边沿变化可能未被ADC完整捕获。

  • 解决方案

    • 检查输入信号的建立/保持时间是否满足ADC要求。

    • 在输入信号前端添加RC滤波(如1kΩ + 100nF),减缓边沿变化,避免高频干扰。





验证步骤



  1. 示波器调试:捕获CONVST、BUSY、SCLK和DOUT的波形,确认时序符合数据手册要求。

  2. 寄存器回读:通过SPI回读配置寄存器,确认参数(如通道数、范围)设置正确。

  3. 单通道测试:逐个通道输入脉冲信号,观察数据丢失是否与特定通道相关。

  4. 降低速率测试:将CONVST周期延长至2ms,观察是否仍存在数据丢失。




通过以上排查,可逐步定位问题根源。若仍无法解决,建议参考AD7606B数据手册的“常见问题”章节或联系ADI技术支持。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分