电路设计论坛
直播中

汪潇潇

8年用户 920经验值
私信 关注
[问答]

DA芯片电源和MCU电源是两个不同电源,MCU断电重启后DA无输出,为什么?

我司使用AD5724AREZ产品做一款模拟量输出的模块,AD5724AREZ的电源是IO电源单独供的隔离电,MCU是另一个电源,如果两个电源同时断开重启AD5724AREZ的所有通道就正常输出,如果单独断开MCU端的电源后就没有输出了,AD5724AREZ的通信是使用数字隔离器进行隔离,目前硬件设计上没有控制隔离电源的输出,所以请教下可以从软件上解决这个问题吗?造成这个问题的原因是什么?非常感谢。

回帖(1)

1653339509.516700

2025-4-23 17:10:02

针对您描述的AD5724AREZ在MCU单独断电后无输出的问题,以下是可能的原因分析和软件解决方案:




问题根源分析




  1. DA芯片状态丢失  



    • AD5724AREZ的寄存器配置在MCU断电后可能未保持(如未启用非易失性存储功能),导致MCU重启后未重新初始化DA芯片,输出被关闭。

    • 关键点:需通过软件在MCU启动时强制重新初始化DA寄存器(如输出范围、通道使能等)。




  2. 数字隔离器状态异常  



    • MCU断电时,隔离器MCU侧引脚可能悬空(如SPI的CS、SCLK),导致DA芯片误触发复位或进入异常状态。

    • 关键点:检查隔离器两侧电源是否独立,确保MCU重启时SPI信号线处于确定状态(如上拉/下拉电阻)。




  3. 电源时序问题  



    • DA芯片电源(VDD)早于MCU电源稳定,导致DA芯片在MCU初始化前进入默认状态(如输出禁用)。

    • 关键点:软件需在MCU启动后立即初始化DA芯片,避免时序冲突。




  4. 硬件复位信号缺失  



    • DA芯片的硬件复位引脚(如RESET)未受控,MCU断电时无法强制复位DA芯片。

    • 关键点:若硬件无复位电路,需通过软件发送复位命令(如写复位寄存器)。






软件解决方案




  1. 强制初始化流程  



    • 在MCU启动时,无论DA芯片当前状态如何,重新配置所有寄存器(包括输出范围、通道使能、复位操作等)。


    • 示例代码逻辑:


      void DA_Init(void) {
      // 1. 复位DA芯片(通过软件复位命令)
      SPI_Write(AD5724_CMD_RESET, 0x0001);
      Delay_ms(10); // 等待复位完成

      // 2. 重新配置所有通道
      for (int ch = 0; ch < 4; ch++) {
           SPI_Write(AD5724_CMD_RANGE_SEL, ch, OUTPUT_RANGE_10V);
           SPI_Write(AD5724_CMD_POWER_CTRL, ch, POWER_UP);
      }

      // 3. 更新输出(触发LDAC引脚或发送LDAC命令)
      SPI_Write(AD5724_CMD_LDAC, 0x0F); // 更新所有通道
      }





  2. 通信接口状态检查  



    • 在初始化前,配置MCU的SPI引脚为默认状态(如CS拉高、SCLK拉低),避免悬空干扰DA芯片。

    • 检查隔离器供电是否正常(如DA侧隔离电源是否在MCU断电时保持稳定)。




  3. 看门狗与状态监控  



    • 添加看门狗定时器,检测DA芯片通信是否超时,并在异常时重新初始化。

    • 定期读取DA芯片的状态寄存器(如STATUS),确认是否发生故障。




  4. 电源事件响应  



    • 若MCU支持电源监测(如低电压检测),可在电源恢复时触发DA芯片的重新初始化。






硬件补充建议


若软件无法彻底解决问题,可考虑以下硬件改进:



  1. 添加复位电路  

    • 使用电源监控芯片(如MAX809)监控MCU电源,在MCU断电时触发DA芯片的硬件复位引脚。


  2. 隔离器电源优化  

    • 确保数字隔离器的DA侧电源在MCU断电时稳定,避免通信电平异常。


  3. SPI信号上拉/下拉  

    • 在SPI信号线(如CS、SCLK)添加上拉电阻,防止MCU断电时信号悬空。





验证步骤



  1. 示波器抓取SPI波形  

    • 确认MCU重启后是否成功发送初始化命令(如寄存器配置、LDAC触发)。


  2. 测量DA芯片电源  

    • 检查MCU断电时,DA芯片的VDD是否保持稳定,避免因电源跌落导致复位。


  3. 读取寄存器状态  

    • 通过SPI读取DA芯片的配置寄存器,确认初始化是否生效。



通过以上软件优化和硬件检查,应能解决MCU单独断电后DA无输出的问题。

举报

更多回帖

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