当 I2C 传输发生 timeout 时,一般 kernel log 会有类似如下打印:
[48.197718][xxx]i2c i2c-1: addr:0xa,transfer timeout
1、GPIO check 以下几个部分
GPIO 电流驱动能力
GPIO 工作模式是否是 I2C 模式
GPIO 是否有内部上拉电阻
GPIO 默认电平状态
2、排查 slave 顺序
log 中第一个发生 timeout 的 slave
有 power 控制和 reset 控制的 slave
other slave
复现问题后,可以手动将相应外设去掉,确认是哪个外设将 i2c bus 拉住,再与供应商沟通,debug 一下该 IC 状态,理清拉住 i2c bus原因。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
传输
+关注
关注
0文章
144浏览量
27297 -
I2C
+关注
关注
28文章
1346浏览量
120825
发布评论请先 登录
相关推荐
求助一个I2C问题
_GetFlagStatus(I2Cx, I2C_FLAG_BUSY))(Time_Out--)?delay_ms(1):I2C_TimeOut(I2Cx);/**********st
发表于 09-05 15:22
Micropython TPYBoard I2C的用法
i2c.is_ready(addr),检测I2C设备是否响应,只对主模式有效i2c.mem_read(data, addr, memaddr, *, timeout=5000, add
发表于 05-25 12:14
浅谈I2C总线
从该总线上取下,而不会影响其他设备。一些生产商比如 Microchip 公司、Philips 公司、Intel 公司等生产的小型微处理器都内置了 I2C 接口。I2C 总线的数据传输率比 SPI 总线
发表于 11-30 11:50
6678 I2C wait following flag timeout at device xx的问题
您好,I2C 接了个TMP441温度传感器,读写时总是出现:I2C wait following flag timeout at device 0x98: Transmit-readyCurrent
发表于 01-04 11:29
到底什么是I2C
、MCU、ASIC)传输到外围设备(温度传感器、湿度传感器及其它设备)。那I2C到底是什么呢……现在,为什么要使用它?I2C可以在同一总线上轻松实现多个外设 - 例如,使用各种传感器来监视服务器的温度
发表于 07-23 04:45
如何清除可能发生的I2C错误?
。有时它会在CyHalt或I2C自动生成代码中的一个阻塞语句(即“while”循环)中结束。什么是最好的方法来清除可能发生的I2C错误,因为打开盖子随机?
发表于 10-25 10:52
i2c总线怎么传输?
你好,我有2个pic微芯片,在一张图片中我使用了3个变量:“variable1”,“variable2”和“variable3”。我想把它们通过i2c总线传输到我的另一张图片上。有谁能
发表于 03-25 09:08
HarmonyOS 驱动平台---I2C
,主从设备通过SDA(SerialData)串行数据线以及SCL(SerialClock)串行时钟线两根线相连,如图1 所示。I2C数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止
发表于 09-16 18:54
AT32 I2C程序使用讲解
-- eeprom 使用示例关于I2C传输数据的流程,官方已经封装了一个应用层,用户无需再关心数据传输流程,只需要调用相关接口初始化I2C,然后再调用相关接口
发表于 02-09 22:06
I2C总线支持几种传输模式
I2C 总线提供了一种串行通信方式,用在 MCU 与 EEPROM,LCD模块,温度传感器等等之间控制。I2C 用两条线 (数据线SDA 和时钟线 SCL) 在设备间传输数据。I2C
发表于 02-11 07:05
微控制器通过I2C总线传输的值错误怎么解决?
位置,0x00 -> 要写入该内存的数据)。 然而,在这些特定的 PCB 上,从设备的内存位置字节在 I2C 总线上传输不正确。µC“应该”传输 0x58 而不是 0x0A。 注意
发表于 12-28 10:56
LIS2DE12 I2C写入超时怎么处理?
;I2C Write Status(A): %d", i2c_write_status);i2c_write status 总是返回HAL_TIMEOUT。
发表于 01-16 08:00
评论