起初怀疑是酒精清洗芯片后残留水分的原因,在吹干后居然还获得了较好的效果,因此首先认定为水分的原因;但再次用纯酒精清洗后,仍然有同样的电流不准确的现象,最大有0.3mA的误差,经过长达3个小时的烘干后,问题仍然存在!
后来有怀疑是TVS管或者是ESD保护的影响,导致快速上电时电流输出不稳定的问题,但卸掉它们后问题却仍然存在,因此进一步排除这两者的影响。
此前一直怀疑是硬件的问题,可能是器件的质量问题,可能是虚焊等等问题,但可惜问题一直未能解决。
后来把焦点又转移到代码编写的问题之上:
SPI原来的传输速率在1.3M左右,而手册上ADUM1200磁耦隔离芯片的最大允许速率为1M,后来又改为330K左右,但是问题依然存在。
后来怀疑上电后AD5422初始化过早,起初大概是20ms后初始化AD芯片,但修改为1秒多以后,问题依然存在。
最后确定是AD5422开始工作前未进行复位,加上对AD5422的复位后,再进行寄存器设置,就一切工作正常了,此后无论怎样快速上电,都不会有电流的不稳定误差了!原来硬件在工作前都要进行相应的复位,而该AD5422芯片没有硬件复位引脚,所以必须第一步就进行软件上的复位。加上复位后所有问题都解决了!
起初怀疑是酒精清洗芯片后残留水分的原因,在吹干后居然还获得了较好的效果,因此首先认定为水分的原因;但再次用纯酒精清洗后,仍然有同样的电流不准确的现象,最大有0.3mA的误差,经过长达3个小时的烘干后,问题仍然存在!
后来有怀疑是TVS管或者是ESD保护的影响,导致快速上电时电流输出不稳定的问题,但卸掉它们后问题却仍然存在,因此进一步排除这两者的影响。
此前一直怀疑是硬件的问题,可能是器件的质量问题,可能是虚焊等等问题,但可惜问题一直未能解决。
后来把焦点又转移到代码编写的问题之上:
SPI原来的传输速率在1.3M左右,而手册上ADUM1200磁耦隔离芯片的最大允许速率为1M,后来又改为330K左右,但是问题依然存在。
后来怀疑上电后AD5422初始化过早,起初大概是20ms后初始化AD芯片,但修改为1秒多以后,问题依然存在。
最后确定是AD5422开始工作前未进行复位,加上对AD5422的复位后,再进行寄存器设置,就一切工作正常了,此后无论怎样快速上电,都不会有电流的不稳定误差了!原来硬件在工作前都要进行相应的复位,而该AD5422芯片没有硬件复位引脚,所以必须第一步就进行软件上的复位。加上复位后所有问题都解决了!
举报