狗复位后AD8332初始化失效

最近使用到AD8332这个芯片,主要原因为aducm320自身的ADC为12bit,不能满足精度续期,因此采用16bit的AD8332。

在软件开发中遇到的问题:发生狗复位后项目概率运行异常。

经过定位发现:当发生狗复位后,读取到的AD异常。查看AD8332的芯片使用手册,手册中的一段关于复位的描述如下引用。

After the ADS8331/32 detects a reset condition, the minimum time before the device can be reconfigured by FS/CS going low and data clocking in on SDI is 2us.

这段话的大概意思为:当AD8332检测到复位条件后,设备重新配置FS/CS为低和配置SDI上数据时钟的最小时间为2us。

狗复位概率项目运行异常,而软复位和上电复位正常,因此怀疑CS为低电平时发生了狗复位,导致AD8332初始化配置没有成功,从而AD采用错误。使用示波器测试CS/SDI/SDO管脚,RST低电平触发示波器记录波形。在RST拉高后,正常波形有SDI/SDO拉低拉高情况,而异常波形没有,验证了问题就出现在此怀疑点。因此程序修改为:

  1. CS拉高
  2. RST拉低
  3. RST拉高
  4. 下发初始化配置

再重新测试狗复位,程序正常运行。