Part Number:DS90UB954-Q1
debug 过程
手上有两个测试板,测试流程完全一样,测试结果也完全一样。
1. 最开始按照图中所示的原理图上电测试,iic通讯失败,然后发现原理图错误,主要是VDD_SEL错误。
2. 修改vdd_sel,将其拉低,然后测试发现VDD11 都是1.7v多,而不是1.1v. 这个时候通过iic读取寄存器,仍然错误。
3. 后来将其无源晶振换成有源的24M晶振。发现并没有改变测试结果。
4. 在以前的电路上,将vdd_sel拉高,选择外部供1.1v,然后跳线实现对其vdd11供1.1v。然后测试发现没有变化,iic 通讯仍然错误。
经过示波器的测量发现,iic失败的原因就是DS90UB954没有ack,导致iic通讯中止。
5. 后来换了一个DS90UB954器件,发现IIC通讯不再报错,但是所有能读的寄存器都是0xff。这个0xff说明,iic 通讯时,DS90UB954能够返回ack信号,但是当需要DS90UB954 返回数据时,并没有返回数据。SDA的电平一直处于高电平状态。
问题:
1. 更换前的芯片坏了吗?为什么会损坏?
2. 电路设计上有什么需要特别注意到地方,会导致IIC无法通讯吗?
lucifer he:
,
lucifer he:
第一次上传的照片有点模糊,新上传了一张
,
lucifer he:
更新下,第二个问题已经解决,是IIC 软件驱动问题。但是第一个问题暂时还没有确认
,
Kailyn Chen:
您好,当nVDD_SEL为低的时候,需要注意此引脚不要再和电路上其他1.1V电压接在一起,并且至少需要4.7uF去耦电容到地,这里我看您已经加了。
另外, VDD_SEL 为低的时候,建议PDB引脚加一个RC滤波电路,目的是保证合理的上电时序。我看您电路中PDB直接接地了,建议还是参考datasheet中的上电时序,才能保证上电过程中每个电压都能达到稳定值。
,
lucifer he:
你好,感谢你的回复。
1. 关于vdd_sel,这个应该是没问题的。拉低的时候是没有外接的。但是最开始测试的时候,VDD_SEL是高电平,而且没有外接,所以后来改成了拉低。这个时候去测量的时候vdd11感觉电平很高。
2. PDB我这边是直接拉高的,对地是有个电容。 另外你提到RC滤波电路,我这边可以加上。
3. 最后一个问题,根据上面写的测试步骤,不知道能不能判断更换之前的那个芯片是否会因为上述操作步骤而可能导致损坏?
,
Kailyn Chen:
如果只是将vdd_sel拉高,但是没有外接1.1V电源,我认为是不会导致芯片损坏的。VDD11 电压偏高,如果没有外围电路连接,那么排除板子其他地方的漏电流导致。 您现在判断芯片损坏的主要原因就是VDD 11输出的1.7V而不是1.1V吗? 还是那句话,还是首先要保证合理的上电时序。
另外,两片测试板的话,可以将这片损坏的芯片吹下来焊接在另一块正常工作的板子上,看是否是板子的问题。