Rockchip ---I2C设备问题排查思路总结

一、排查思路

在对应的I2C节点下添加设备节点后,可以进入系统中使用i2cdetect命令,该命令用于检测和扫描 I2C 总线上设备

i2cdetect -y <i2c总线号>

该命令会向总线上所有的地址发送一个信号,如果该地址上有设备,就会回复一个应答信号

1. 问题一:总线没有挂载上

此时执行上述命令,就会报错
检查IIC设备的引脚是不是被占用了,如果被占用就会导致IIC总线挂载不上。

2. 问题二:IIC设备没有应答

如果显示下图,说明没有收到应答
在这里插入图片描述
正常情况下,即使此时没有设备树节点和驱动,只要该地址上有i2c设备就会在对应地址显示出地址,
若是没有显示,就要排查问题:

  1. 检查挂载的IIC总线是否有误
  2. 检查挂载的IIC总线复用功能是否正确
  3. 检查IIC总线status是否处于开启状态
  4. 检查IIC设备的power和enable引脚是否处于开启状态

排查上述问题后仍然未解决,可以使用逻辑分析仪查看IIC设备的通信是否正常,是否有输出波形

下图是识别到IIC设备的打印信息:
在这里插入图片描述

  • 注:还有一种情况可能也会出现执行上述命令时,设备没有应答;
  • 当设备的寄存器地址为16位时,使用该命令可能也会出现无应答的现象,但是使用逻辑分析仪查看IIC引脚输出是正常的。

二、i2cdetect命令

i2cdetect [-y] [-a] [-q|-r] I2CBUS [FIRST LAST]
	参数说明:
		-y:在扫描过程中,如果遇到设备不响应,不打印错误信息。
		-a:显示所有可能的 I2C 设备地址,而不仅仅是那些响应的地址。
		-q 或 -r:这两个选项都是用来减少输出的详细程度。-q 选项会生成更简洁的输出,而 -r 选项会生成原始格式的输出。
	@I2CBUS:可以是 I2C 总线的编号(整数),也可以是 I2C 总线的名称(如 /dev/i2c-1)。
	@FIRST LAST:这两个参数用来限制扫描的地址范围。FIRST 是起始地址,LAST 是结束地址。
	@address1 [address2...]:指定要扫描的 I2C 设备地址。

1. 扫描 I2C 总线 1 上的所有设备:

i2cdetect 1

2. 快速扫描 I2C 总线 1:

i2cdetect -F 1

3. 列出所有 I2C 总线:

i2cdetect -l

4. 扫描 I2C 总线 1 上的地址范围 0x00 到 0x0F:

i2cdetect 1 0x00 0x0F

5. 静默模式下扫描 I2C 总线 1:

i2cdetect -q 1

6. 原始模式下扫描 I2C 总线 1:

i2cdetect -r 1

【注:特别鸣谢我天底下最帅最厉害的老师—冬瓜~】(●ˇ∀ˇ●)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值