i2c 概率性读失败

lcq170 2016-11-04 05:33:19
设备重启,uboot重启过程中先通过PMbus协议写了两个寄存器,然后通过PMbus协议读取slave的一个寄存器, 为了调查问题,多读了几遍。概率性会读失败,通常重启十几次能复现一次


正常情况下读出内容如下:
0x04 0x00 0x10 0x80
0x04 0x00 0x10 0x80
0x04 0x00 0x10 0x80

失败的情况下读出内容如下:
0xFF 0xFF 0xFF 0xFF ----偶尔第一次读出全FF。
0x04 0x00 0x10 0x80
0x04 0x00 0x10 0x80

linux 启动, boot后,通过app读取有类似情况。偶尔第一次读是FF,再读一次就好了。


可能是什么问题呢,怎么定位,求指教。
...全文
578 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
curious_cat 2016-11-29
  • 打赏
  • 举报
回复
硬件平台? 操作系统? 外设芯片?
of123 2016-11-10
  • 打赏
  • 举报
回复
如果你说的重启包含下电上电的话,有可能是瞬间供电失常造成的。试试加上复位控制芯片如 MAX809 延迟芯片启动。
fly 100% 2016-11-07
  • 打赏
  • 举报
回复
看样子是设备的问题i
lcq170 2016-11-07
  • 打赏
  • 举报
回复
能问下为啥波形也错就是硬件的问题吗?不可能是驱动有问题导致波形不对吗?是因为是概率性的问题吗?
fuchouzhe 2016-11-06
  • 打赏
  • 举报
回复
示波器自己抓上电波形,如果出现错误时,波形正常,就是软件自己问题了。如果波形也错,考虑外围器件电路或者是IIC时钟不正确

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧