时钟芯片PCF2129在批量生产过程中,有客户反馈PCF2129有0.2%左右芯片I2C通信异常,无法读写寄存器,芯片BAT供电比VCC低或者断开VCC和BAT供电后恢复正常。经过测试发现0x02地址寄存器值异常为0x88,改为默认值0x00,芯片恢复正常。
在很多设计中都会用到时钟芯片,PCF2129是NXP推出的内置晶振高精度时钟芯片,芯片带有补偿寄存器,精度可达3ppm。该时钟芯片具有精度高、功耗低、使用方便等特点。
在使用PCF2129,有客户反馈出现0.2%的芯片在电池上电后,I2C读写寄存器异常如图 1,通信失败,在将电池断开又接上后,芯片恢复正常工作。如果设置BAT供电电压比VCC低,芯片也能通信上,但将BAT电压调到比VCC高,通信又异常了。客户VCC使用3.3V.电池也是3.3V的。

图 1 PCF2129没有ACK应答
从客户反馈的情况分析,芯片从新上电后由于寄存器重新初始化,芯片恢复正常。在调试BAT电压比VCC电压低后,通信也能正常如图 2,可以看出,芯片异常应该是某个寄存器值偏离默认值,而且这个寄存器值和BAT的供电电压有关。在PCF2129中,只有地址0x02寄存器和BAT供电电压有关如图 3。

图 2 PCF2129 IIC通信正常

图 3 PCF2129 0x02寄存器
0x02寄存器默认情况下为0x00,在BAT不断电情况下外接电源,VCC电压调到比BAT高后,IIC通信正常,读取0x02寄存器值如图 4所示,为0x88。

图 4 0x02寄存器异常值
PCF2129断电后,或者直接将0x02寄存器值改为0x00后,PCF2129 I2C通常正常,芯片正常工作。
图 5 0x02寄存器默认值
从测试结果可以得出,PCF2129 I2C通信异常是由于0x02寄存器值异常导致的,修改为默认值后,PCF2129就能正常工作。
-
寄存器
+关注
关注
31文章
5590浏览量
129092 -
时钟芯片
+关注
关注
2文章
283浏览量
41919 -
PCF2129
+关注
关注
0文章
3浏览量
9151
原文标题:如何解决时钟芯片PCF2129 I2C通信异常
文章出处:【微信号:Zlgmcu7890,微信公众号:周立功单片机】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
I2C读写时序分析和实现思路
PCM1863为什么通过I2C无法读取到寄存器值?
TLV320AIC3263 i2c无法进行通信,通过i2c的读写函数,读写寄存器失败怎么解决?
STM8L15x I2C:无法写入I2C寄存器
I2c通信怎么设置寄存器地址?
用i2c总线往摄像头寄存器中写寄存器
ARM I2C 总线接口的寄存器设置
Atmel SAMC21的I2C驱动寄存器操作和寄存器代码免费下载
STM32 I2C硬件的结构

芯片I2C通信异常无法读写寄存器破解
评论