i2c 在Linux下编程,测试i2c模块是否能正常通信

i2c 在Linux下编程,测试i2c模块是否能正常通信,第1张

如果你用的IC自己带I2C模块那肯定有一个寄存器可以给你写地址进去

然后传输中 会自动判断地址是否匹配

如果你是IO口模拟I2C传输

那就要主机先发送地址

从机用if判断 主机那边发过来的地址数据 是不是 我这边想收到的地址数据

最近我也遇到这个问题了,纠结了一天,在网友的支持下解决了,这个天嵌的版本中,i2c和他的摄像头驱动(OV9650驱动)相冲突,你在编译内核之前,将摄像头的驱动全部去掉,这样子重新编译之后,i2c就可以正常测试使用了。

最简情况下:

I2C:SDA数据线、SCL时钟线。

SPI:DI输入线、DO输出线、CS片选先、CLK时钟线。

可能不能写到一个驱动中。

但是好在一般很少用到这么简单的情况,厂家会对其扩展和改进。

比如 W25Q128FB/W25R128FV 系列闪存,支持 SPI、Dual SPI、Quad SPI 和 QPI。就拿 Quad SPI 来说,有 6 个引脚:

Quad SPI:D0-D3 输入输出线、CS片选先、CLK时钟线。

其中 输入为一位串行输入 D0,输出为四位串行输出 D0-D3。(四位仍少于一个字节,可姑且称为串行)

Winbond华邦 这么做是为了加快闪存读取速度(四位串行相比一位串行提高了四倍)。

因此关键在于 要进行怎样的 IO。至于是否将二者写到一个驱动看来并不重要。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9028795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-24
下一篇 2023-04-24

发表评论

登录后才能评论

评论列表(0条)

保存