新闻  |   论坛  |   博客  |   在线研讨会
Linux驱动调试i2c设备从地址的确定
电子禅石 | 2024-12-16 17:46:50    阅读:269   发布文章

有时候我们查看芯片的datasheet可以得到一个i2c的地址,但是我们直接使用它,

配置到dts或者驱动当中使用,发现读取不到设备id或者i2c通讯异常,

此时排查硬件没问题之后,就要看看这个i2c地址是否设置对了。

比如我这里,i2c地址在datasheet写了两个,此时就不知道使用哪个了。

————————————————

在这里插入图片描述

其实,i2c地址主要由7bit的二进制数值组成,最低位是读写标志位,0表示写,1表示读,具体可看下图。

在这里插入图片描述

    所以我们在linux驱动中要取这个ic设备的从设备地址,就是0xA3或者0xA2右移一位得到,那就是0x51,dts配置如下:

   

所以我们在linux驱动中要取这个ic设备的从设备地址,就是0xA3或者0xA2右移一位得到,
那就是0x51,dts配置如下:

		rtc@51{
			compatible = "nxp,pcf8563";
			reg = <0x51>;
		};

   实际使用的是7位地址。

读写的话,linux 驱动会自动填充这个地址。

原文链接:https://blog.csdn.net/qq_30624591/article/details/112348782


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客