0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子工程师 来源:互联网 作者:佚名 2017-09-20 16:14 次阅读

时钟芯片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

    文章

    5292

    浏览量

    119802
  • 时钟芯片
    +关注

    关注

    2

    文章

    242

    浏览量

    39806
  • PCF2129
    +关注

    关注

    0

    文章

    3

    浏览量

    8987

原文标题:如何解决时钟芯片PCF2129 I2C通信异常

文章出处:【微信号:Zlgmcu7890,微信公众号:周立功单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    I2C读写时序分析和实现思路

    上篇推文对I2C总线的特性进行了介绍和描述。对于开发者而言,最重要的是编码I2C读写时序驱动。本篇推文主要总结和分享I2C总线主机端通信
    发表于 10-01 16:54 1568次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>读写</b>时序分析和实现思路

    PCM1863为什么通过I2C无法读取到寄存器值?

    PCM1863为何通过I2C无法读取到寄存器值?返回值总是00 但是写成功,声音正常。 不知道有没有遇到同样的问题的朋友? 请不要怀疑I2C驱动写的是否正确。挂在同一总线上的EEPR
    发表于 10-23 07:59

    TLV320AIC3263 i2c无法进行通信,通过i2c读写函数,读写寄存器失败怎么解决?

    麻烦帮忙分析下以下问题的原因 1、i2c无法进行通信,通过i2c读写函数(系统提供),读写
    发表于 10-28 07:32

    怎么样通过I2C或SPI读写AIC3254的寄存器

    我看了AIC3254的数据手册,没有看没明白怎么样通过I2C或SPI读写AIC3254的寄存器,求大侠指点
    发表于 11-05 08:22

    STM8L15x I2C无法写入I2C寄存器

    STM8L15x I2C无法写入I2C寄存器以上来自于谷歌翻译以下为原文 STM8L15x I2C : Cannot write
    发表于 04-02 13:49

    I2c通信怎么设置寄存器地址?

    tm4c123 launchpad作为master时i2c写操作要先输出device address,再给一个RegisterAddress,然后才能写i2c读操作也要给定这两个地址才能读,可是tivaware中
    发表于 04-07 13:17

    i2c总线往摄像头寄存器中写寄存器

    1摄像头配置 用i2c总线往摄像头寄存器中写寄存器i2c总线为:一条时钟线,一条数据线,遵循i2c协议来写;摄像头的sccb接口对应
    发表于 08-06 06:51

    如何对基于RK3328的I2C读写芯片寄存器进行测试呢

    如何对基于RK3328的I2C读写芯片寄存器进行测试呢?有哪些步骤?
    发表于 03-09 06:13

    I2C总线规范与I2C器件C51读写程序

    I2C总线规范与I2C器件C51读写程序:本文简要介绍了I2C总线,并给出了I2C器件的
    发表于 08-22 17:51 93次下载

    ARM I2C 总线接口的寄存器设置

    ARM I2C 总线接口的寄存器设置 控制ARM 12C总线接口需要配置总线控制寄存器(rIICCON)、总线状态寄存器(rIICSTA
    发表于 03-14 18:00 1712次阅读

    Atmel SAMC21的I2C驱动寄存器操作和寄存器代码免费下载

    本文档的主要内容详细介绍的是Atmel SAMC21的I2C驱动寄存器操作和寄存器代码免费下载。
    发表于 06-20 08:00 19次下载

    STM32 I2C硬件的结构

    我们可以看见STM32的硬件I2C有两个和数据有关的寄存器“数据寄存器(Data register)”(DR)和“数据移位寄存器(Data shift register)”(DSR),
    的头像 发表于 04-30 15:00 7176次阅读
    STM32 <b class='flag-5'>I2C</b>硬件的结构

    判断I2C总线通信异常及及解决方法

    此问题由某客户提出,应用处理AP 与MCU 进行I2C 通信通信会经常发生异常,需要定位原因.
    发表于 05-14 10:00 40次下载

    硬件I2C与模拟I2C

    硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,因而效率要远高于软件模拟的
    发表于 12-28 19:14 81次下载
    硬件<b class='flag-5'>I2C</b>与模拟<b class='flag-5'>I2C</b>

    ONA10IV I2C 寄存器定义

    ONA10IV I2C 寄存器定义
    发表于 11-15 20:15 0次下载
    ONA10IV <b class='flag-5'>I2C</b> <b class='flag-5'>寄存器</b>定义