Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1711874
  • 博文数量: 143
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1462
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-23 11:14
文章分类

全部博文(143)

文章存档

2022年(3)

2021年(13)

2020年(21)

2019年(8)

2018年(28)

2017年(7)

2016年(63)

我的朋友

分类: 嵌入式

2016-08-31 12:21:51

背景介绍:通常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地址。

阅读(2737) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~