i2cdetect检测不到设备

问题描述

昨天遇到一个问题,就是使用i2cdetect检测不到外部所挂载的eeprom芯片。

root@localhost:~# i2cdetect  -r -y 3
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

检查了设备树的配置如下:

&i2c3 {
        status = "okay";
		eeprom_24c256:24c256@50 {
		compatible = "gt24c08_eeprom";	
		pagesize = <64>;
		reg = <0x50>;						
	};
};

然后又检查了引脚配置发现没有错误


将i2c总线的时钟频率进行减低,试一下。(后来发现和这个无关)

i2c3:i2c@300d0000 {
			compatible = "snps,designware-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			clock-names = "i2c-clk";
			//#clock-frequency = <100000>;
			#clock-frequency = <50000>;
			timeout = <10>; /* ms */
			status = "disabled";
		};

最后检查硬件,发现SCL和SDA接反了。
在这里插入图片描述
正常情况应该是这样的。

root@localhost:/dev# i2cdetect  -r -y 3
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 52 53 -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

解决方案:

总的来说,嵌入式软件的调试里面涉及到软硬件的联调,当找不到软件的配置原因之后,我们需要找硬件工程师定位一下硬件的问题,要细致呀!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值