找回密码
 注册
搜索
查看: 1634|回复: 2

[讨论] i2c设备兼容问题!

[复制链接]
发表于 2012-3-22 19:27:15 | 显示全部楼层 |阅读模式
最近在做android平台下硬件i2c兼容的问题,想通过一个驱动程序去兼容不同款的同一种器件(器件的从地址不同).即想通过向其发送地址信息,根据ack信号来决定走不同的驱动代码.但比较不解的是: 当最初向这款器件发送的地址与其相匹配的话,它能够正确执行.但如果发送的不是其对应的地址导致其probe失败的话,再向其发送正确的地址信息也不能probe成功.理论上将两次通信是相互独立的,不应该有这种问题.还请高手不吝赐教!多谢!
 楼主| 发表于 2012-3-23 20:44:07 | 显示全部楼层
以下是引用qq413187589在2012-3-23 11:35:24的发言:
你两次发送是不是写在同一个probe函数里面?

第一次probe挂载失败后是不是被你goto error free 内存了?

其中两次访问之间需要加一下10ms左右延时,也尽量做一下reset的操作。使你的

IIC器件在一个初始状态,才能使你两次的iic发送状态一样!也避免挂载错误!

另外要选择两种iic器件的速率是一样的,如果速率不一样,需要先访问地低速的

,在访问高速的!


非常感谢楼上的,最开始是分开probe的,会出问题,后来合在一起还是会出问题。第一次probe失败后没有去free内存,我加过延时,但不起效果。没有去做reset操作。因为按道理说发的不是所要的地址,大可以不理会。为什么会导致后来发送对应的地址信号也不行呢?
点评回复

使用道具 举报

发表于 2012-3-23 11:35:24 | 显示全部楼层
你两次发送是不是写在同一个probe函数里面?

第一次probe挂载失败后是不是被你goto error free 内存了?

其中两次访问之间需要加一下10ms左右延时,也尽量做一下reset的操作。使你的

IIC器件在一个初始状态,才能使你两次的iic发送状态一样!也避免挂载错误!

另外要选择两种iic器件的速率是一样的,如果速率不一样,需要先访问地低速的

,在访问高速的!
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-25 01:05 , Processed in 0.048937 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表