"); //-->
有时候我们查看芯片的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
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。