coco81925 发表于 2010-3-18 16:39:19

I2C_rw测试不成功

最近想测试一下开发板自带的I2C_RW程序,内核以及文件系统都是论坛上提供的镜像文件,分别为zImage_2.6.30.4_W35_64MB_20091030与root_qtopia_2.2.0_2.6.30.4_64MB_20091030
启动开发板运行测试程序,串口打印信息如下:

Please press Enter to activate this console.
# i2c_rw
Writing 0x00-0xff into AT24C02

0000|ff fe fd fc fb fa f9 f8   f7 f6 f5 f4 f3 f2 f1 f0
0010|ef ee ed ec eb ea e9 e8   e7 e6 e5 e4 e3 e2 e1 e0
0020|df de dd dc db da d9 d8   d7 d6 d5 d4 d3 d2 d1 d0
0030|cf ce cd cc cb ca c9 c8   c7 c6 c5 c4 c3 c2 c1 c0
0040|bf be bd bc bb ba b9 s3c2440-i2c s3c2440-i2c: cannot get bus (error -110
)
s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
iic write erroriic write error !b8 s3c2440-i2c s3c2440-i2c: cannot get bus (erro
r -110)
s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
iic write erroriic write error !b7 s3c2440-i2c s3c2440-i2c: cannot get bus (er
ror -110)
s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
iic write erroriic write error !b6 s3c2440-i2c s3c2440-i2c: cannot get bus (erro
r -110)
s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
iic write erroriic write error !b5 ^C
s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)

#
#

不知道问题出在哪,望版主和论坛的上的各位朋友给看看,万分感谢!

coco81925 发表于 2010-3-18 16:42:45

测试之前已经更改了/etc/init.d/rcS文件,把insmod /lib/ov9650这句屏蔽掉了

coco81925 发表于 2010-3-18 16:51:45

/dev目录下已经有i2c-0设备文件

crw-rw----    1 root   root      89,   0 Nov7 16:53 i2c-0

coco81925 发表于 2010-3-18 17:15:10

将内核和文件系统以及i2c_rw测试程序重新编译下载后情况如下

# i2c_rw
Writing 0x00-0xff into AT24C02

0000|ff fe fd fc fb fa f9 f8   f7 f6 f5 f4 f3 f2 f1 f0
0010|ef ee ed ec eb ea e9 e8   e7 e6 e5 e4 e3 e2 e1 e0
0020|df de dd dc iic write erroriic write error !db da d9 d8   d7 d6 d5 d4 d3
d2 d1 d0
0030|cf ce cd cc cb ca c9 c8   c7 c6 c5 c4 c3 c2 c1 c0
0040|bf be bd bc bb ba b9 b8   b7 b6 b5 b4 b3 b2 b1 b0
0050|af ae ad ac ab aa a9 iic write erroriic write error !a8   a7 a6 a5 a4 a3
a2 a1 a0
0060|9f 9e 9d 9c 9b iic write erroriic write error !9a 99 98   97 96 95 94 93
92 91 90
0070|8f 8e 8d 8c 8b 8a 89 88   87 86 85 84 83 82 81 80
0080|7f 7e 7d 7c 7b 7a 79 78   77 76 75 74 73 72 71 70
0090|6f 6e 6d 6c 6b 6a 69 68   67 66 65 64 63 62 61 60
00a0|5f 5e 5d 5c 5b 5a 59 58   57 56 55 54 53 52 51 50
00b0|4f 4e 4d 4c 4b 4a 49 48   47 46 45 44 43 42 41 40
00c0|3f 3e 3d 3c 3b 3a 39 38   37 36 35 34 33 32 31 30
00d0|2f 2e 2d 2c 2b 2a iic write erroriic write error !29 28   27 26 25 24 23
22 21 iic write erroriic write error !20
00e0|1f 1e 1d 1c 1b 1a 19 18   17 16 15 14 13 12 11 10
00f0|0f 0e 0d 0c 0b 0a 09 08   07 06 05 04 03 02 01 00

Reading 256 bytes from 0x0

0000|ff 7f s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
iic read error !ffffffff s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
iic read error !ffffffff s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
^C
s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)

#
#

coco81925 发表于 2010-3-18 17:18:59

用裸跑程序可以正确的读写,可以排除硬件上的原因,真郁闷

coco81925 发表于 2010-3-22 00:17:50

问题已解决,把上拉电阻换成1K的就可以,感谢天嵌的工程师

亚瑟王 发表于 2010-3-22 11:52:28

你的底板上的R504和R503不是1K的吗?老版本的TQ2440使用的是10K太保守了,对于IIC总线的某些用途来说,驱动能力太弱了。新出品的板子使用了1.5K,还是比较保守的用法。

billy020283 发表于 2010-4-1 17:42:32

Hi Admin, may i know is I2C driver only available from 2.6.30.4 and above?
Because i cannot issue command "i2c_rw" for 2.6.30.4 and lower.
Please advise

亚瑟王 发表于 2010-4-9 10:54:10

Has contained IIC drivers in Linux kernel. Uses i2c_rw is may carry on IIC reading and writes. Different versions' kernel IIC API is not too same, needs to revise i2c_rw according to the actual situation the sound code to adapt different versions kernel.

wukui1008 发表于 2012-3-17 21:52:56

我也碰到同样的问题 比你还糟糕
vi   /etc/init.d/rcS里面是空的 什么都没有??????
天嵌提供的那个裸奔的I2c测试没问题
道理来说就算上拉是10K 裸奔都OK 那这里怎么能不OK呢
是不是内核对I2C的设置什么地方不一样。能改好吧。。。:dizzy:

Hens007 发表于 2012-9-19 18:13:12

楼主,我也出现这个问题,不知道除了换上拉电阻,还有可能是其他问题吗?

Hens007 发表于 2012-9-19 18:17:52

亚瑟王 发表于 2010-3-22 11:52 static/image/common/back.gif
你的底板上的R504和R503不是1K的吗?老版本的TQ2440使用的是10K太保守了,对于IIC总线的某些用途来说,驱动 ...

请问版主应该使用几K的比较合适,10K的保守,1.5K的也是保守,不知道如何把握?另外请问老版本的TQ2440是用10K,新的是用1K,供电电压不变,为什么用1K的更合适?

亚瑟王 发表于 2012-9-21 09:57:45

wukui1008 发表于 2012-3-17 21:52 static/image/common/back.gif
我也碰到同样的问题 比你还糟糕
vi   /etc/init.d/rcS里面是空的 什么都没有??????
天嵌提供的那 ...

rcS文件为空,检查一下你的命令是否用错了。
经过实际测试发现裸机和linux所用驱动还是有差异的(IIC的相关寄存器的设置没有发现有太大的差异,时钟方面没有注意)。不过10K的电阻的确是过大了。

亚瑟王 发表于 2012-9-21 09:58:52

Hens007 发表于 2012-9-19 18:17 static/image/common/back.gif
请问版主应该使用几K的比较合适,10K的保守,1.5K的也是保守,不知道如何把握?另外请问老版本的TQ2440是 ...

电压不变,电阻变小,电流也就变大了,驱动能力也就变强了。
页: [1]
查看完整版本: I2C_rw测试不成功