打印

关于S3C2440的I2C驱动问题

[复制链接]
5002|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
867405479|  楼主 | 2013-4-22 13:04 | 只看该作者
用示波器看了下,发现在调用write时SCL是有波形的,我的应用程序里是先write后read,但是write里i2c_transfer返回值为-6

reouqudong.zip

2.1 KB

设备驱动程序

使用特权

评论回复
板凳
jlass| | 2013-4-22 15:35 | 只看该作者
-6这个数值总有点意义吧

使用特权

评论回复
地板
867405479|  楼主 | 2013-4-22 21:04 | 只看该作者
这个值是我在程序中,打印出来的,在网上查了下i2c_transfer,如果返回的是负值,说明通信失败,但是我就是不知道失败在哪里,如果失败,那为什么SCL会发出波形呢?

使用特权

评论回复
5
867405479|  楼主 | 2013-4-22 21:17 | 只看该作者
我跟踪程序到i2c-core.c,的i2c_transfer程序里发现ret = adap->algo->master_xfer(adap, msgs, num);调用到这里,ret这个值是-6,然后执行if时执行break跳出来了,

1.png (19.49 KB )

1.png

使用特权

评论回复
6
867405479|  楼主 | 2013-4-22 21:23 | 只看该作者
还有,我用的这个I2C芯片的地址是0x90,但是好像i2c-core.c这一文件里这个地址最大只能是0x77,,所以我吧他改成0xf7,这样加载模块时,就不会出现地址无效的提示了,这个应该和我目前的错误没关系吧

使用特权

评论回复
7
jlass| | 2013-4-23 10:14 | 只看该作者
从你的回帖来看,你的水平应该不错,自己加打印慢慢调试一下,估计就能搞定了

使用特权

评论回复
8
867405479|  楼主 | 2013-4-23 11:43 | 只看该作者
搞了好久总算调出来了,谢谢各位大侠的指点,我的经验就是像上面这位大侠说的,跟踪程序,打印出调试信息,我用的开发板是MINI2440,里面的很多程序,包括I2C-CORE.C,I2C-S3C2410.C这些程序,有些是为板上的AT2408写的,因此可能对于其他I2C芯片,要做一下改动,我就改了很多地方,只要有耐心,有技巧,慢慢调总会调出来的

使用特权

评论回复
9
xrj979033442| | 2013-5-6 16:16 | 只看该作者
楼主  我留下qq号,遇到同样的问题求详解979033442 忘早日回复

使用特权

评论回复
10
liu_gong| | 2014-12-12 23:10 | 只看该作者
我也遇到这个问题了。返回值是-5,你是怎么解决的?

使用特权

评论回复
11
xishanggongzi| | 2015-1-15 00:47 | 只看该作者
liu_gong 发表于 2014-12-12 23:10
我也遇到这个问题了。返回值是-5,你是怎么解决的?

返回值-5啊,跟你一样的,你怎么解决的?

使用特权

评论回复
12
sunnyjulie| | 2015-3-17 16:09 | 只看该作者
LM3S6911-IQC50-A2, S3C2440A40-YQ80, 大量全新原装现货,有用到的私我!广兴隆电子,只做原装,假一罚十!QQ:1546625035, 电话:0755-83265881

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

52

帖子

0

粉丝