背景介绍:通常Linux提供了读写i2c的register值的工具,方便用户在串口下直接读写i2c register。本文参考:
http://blog.chinaunix.net/uid-26895763-id-3478882.html
1 Linux下的i2c工具(i2c tools)
i2cdetect-用来列举i2c bus和上面所有的设备
i2cdump-显示设备上所有register的值
i2cget-读取设备上某个register的值
i2cset-写入设备上某个register的值
以下是我在ICETEK OMAPL138上运行,得到的结果:
i2cdetect -l:查看有几组i2c bus
i2c-1
i2cdetect -y -r 1:查看第1组i2c bus上有几个设备
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- UU -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
我要查看的设备是tps65023,而tps65023在technical reference manual中i2c的起始地址是0x48。如上正好表示0x48已经挂在了此设备。
i2cdump -f -y 1 0x48:查看某设备的所有i2c register的值
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: 23 c0 c0 ff b0 00 10 06 73 00 00 00 00 ff ff ff #??.?.??s.......
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
i2cset -f -y 1 0x48 0x1 0x5a:修改某设备的某个i2c register的值
2 Linux下的i2c目录
/sys/bus/i2c/drivers:i2c设备的设备文件(Linux下每个外设都会对应一个设备文件)。
/sys/bus/i2c/devices:i2c设备的i2c地址。
阅读(2804) | 评论(0) | 转发(0) |