i2c-tools的移植和使用
转载地址:http://bbs.elecfans.com/jishu_516292_1_1.html1 下载i2c-tools-3.1.1.tar.bz22 解压后修改Makefile CC =arm-linux-gnueabihf-gcc LDFLAGS += -static3 make 成功后会在tools目录下生成 i2cdetect i2cdump
·
转载地址:http://bbs.elecfans.com/jishu_516292_1_1.html
1 下载i2c-tools-3.1.1.tar.bz2
2 解压后修改MakefileCC =arm-linux-gnueabihf-gcc
LDFLAGS += -sta tic
3 make
成功后会在tools目录下生成
i2cdetect i2cdump i2cget i2cset等工具
----------------------------------------
工具的具体使用方法
1 列出所有的I2C设备总线
sudo ./i2cdetect -l
输出如下:
i2c-0 i2c sunxi-i2c.0 I2C adapter
i2c-1 i2c sunxi-i2c.1 I2C adapter
i2c-2 i2c sunxi-i2c.2 I2C adapter
i2c-10 i2c sunxi-hdmi-i2c I2C adapter
2 扫描I2C总线上的所有设备2代表第二根总线
sudo ./i2cdetect -y 2
输出如下:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 -- 53 -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
在第二根总线上有3个I2C 设备地址分别为0x50 0x51 0x53
3 列出设备的所有寄存器值
sudo ./i2cdump -y 2 0x53
列出在第二根总线上地址为0x53的设备的从地址00到ff的所有寄存器值
输出如下:
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 00 00 ff 06 02 00 00 00 00 00 00 00 00 00 00 05 ...??..........?
10: 00 00 00 00 00 00 00 00 00 00 53 00 02 00 00 00 ..........S.?...
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
30: 0f 01 31 67 68 3e 38 39 0d fd b2 00 00 91 61 4e ??1gh>89???..?aN
40: 82 2f 6d 47 25 dc 01 84 ff 00 00 00 00 00 00 00 ?/mG%???........
50: 00 7c c9 e4 67 00 00 00 00 00 00 00 00 00 00 00 .|??g...........
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................rq
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
80: 00 00 ff 06 02 00 00 00 00 00 00 00 00 00 00 05 ...??..........?
90: 00 00 00 00 00 00 00 00 00 00 53 00 02 00 00 00 ..........S.?...
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
b0: 0f 01 31 c6 75 35 4a 38 07 f7 b1 00 00 93 60 4d ??1?u5J8???..?`M
c0: 82 2f 6d 47 25 dc 01 84 ff 00 00 00 00 00 00 00 ?/mG%???........
d0: 00 7d ca e6 66 00 00 00 00 00 00 00 00 00 00 00 .}??f...........
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
4 写寄存器值
sudo ./i2cset -y 2 0x53 0xb1 0xff
-y: 取消用户交互,直接执行
2: I2C设备总线
0x53:I2C设备地址
0xb0:寄存器地址
0xff:要写入的值
5 查看写入的是否正确可以用i2cget
-------------------------------
如果寄存器存放的是16bits数据,则需要指定w字宽度
./i2cdump -y 2 0x53 w
输出如下
0,8 1,9 2,a 3,b 4,c 5,d 6,e 7,f
00: 0000 0000 01ff 0006 0002 0000 0000 0000
08: 0000 0000 0000 0000 0000 0000 0000 0005
10: 0000 0000 0000 0000 0000 0000 0000 0000
18: 0000 0000 0053 0000 0002 0000 0000 0000
20: 0000 0000 0000 0000 0000 0000 0000 0000
28: 0000 0000 0000 0000 0000 0000 0000 0000
30: 010f 0101 2f24 00e2 02dd 0420 0655 0093
38: 002c ffd0 fecd 0075 fdc6 18d1 f2db f179
40: 0dd1 0828 0866 0b48 0924 8cec 0001 f6ae
48: ffff 0000 0000 0000 0000 0000 0000 0000
50: 0000 77b5 21cd e5fd f0b1 0000 0000 0000
58: 0000 0000 0000 0000 0000 0000 0000 0000
60: 0000 0000 0000 0000 0000 0000 0000 0000
68: 0000 0000 0000 0000 0000 0000 0000 0000
70: 0000 0000 0000 0000 0000 0000 0000 0000
78: 0000 0000 0000 0000 0000 0000 0000 0000
80: 0000 0000 01ff 0006 0002 0000 0000 0000
88: 0000 0000 0000 0000 0000 0000 0000 0005
90: 0000 0000 0000 0000 0000 0000 0000 0000
98: 0000 0000 0053 0000 0002 0000 0000 0000
a0: 0000 0000 0000 0000 0000 0000 0000 0000
a8: 0000 0000 0000 0000 0000 0000 0000 0000
b0: 010f 0101 2f24 0114 02bb 0406 068c 0037
b8: 000d ffd4 fecd 0075 fdc5 18d4 f2d9 f177
c0: 0dd1 0828 0866 0b48 0924 8cec 0001 f6ae
c8: ffff 0000 0000 0000 0000 0000 0000 0000
d0: 0000 77b2 21d1 e5f6 f0b0 0000 0000 0000
d8: 0000 0000 0000 0000 0000 0000 0000 0000
e0: 0000 0000 0000 0000 0000 0000 0000 0000
e8: 0000 0000 0000 0000 0000 0000 0000 0000
f0: 0000 0000 0000 0000 0000 0000 0000 0000
f8: 0000 0000 0000 0000 0000 0000 0000 0000
更多推荐
已为社区贡献21条内容
所有评论(0)