Android/linux 平台下使用 i2c-tools调试IIC方法

在busybox包含i2c-tools工具,使用时只需busybox+指令只可。

  • i2cdetect
  • i2cdump
  • i2cget
  • i2cset

i2cdetect

列举 I2C bus

  1. # i2cdetect -l  
  2. i2c-0   i2c             imx-i2c                                 I2C adapter  
  3. i2c-1   i2c             imx-i2c                                 I2C adapter  
  4. i2c-2   i2c             imx-i2c                                 I2C adapter  
# i2cdetect -l
i2c-0   i2c             imx-i2c                                 I2C adapter
i2c-1   i2c             imx-i2c                                 I2C adapter
i2c-2   i2c             imx-i2c                                 I2C adapter
列举 I2C bus i2c-1 上面连接的所有设备

  1. # i2cdetect -y 1  
  2.      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f  
  3. 00:          -- -- -- -- -- UU -- -- -- -- -- -- --   
  4. 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --   
  5. 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --   
  6. 30: -- -- -- -- -- -- -- -- -- -- 3a -- -- -- -- --   
  7. 40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --   
  8. 50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --   
  9. 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --   
  10. 70: -- -- -- -- -- -- -- --  
# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- UU -- -- -- -- -- -- -- 
10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- 3a -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 
50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --
发现 I2C 设备的位置显示为 UU或者表示设备地址的数值, UU表示该设备在 driver 中被使用。

i2cdump

dump I2C 设备大批量 register 的值

  1. # i2cdump -y -f 1 0x3a  
  2. No size specified (using byte-data access)  
  3.      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef  
  4. 00: eb 00 7f 05 3d 00 00 00 08 06 00 00 00 00 00 00    ?.??=...??......  
  5. 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  6. 20: 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10    ?#Eg????????vT2?  
  7. 30: f0 e1 d2 c3 00 00 00 00 00 00 00 00 00 00 00 00    ????............  
  8. 40: 80 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00    ?.?.............  
  9. 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  10. 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  11. 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  12. 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  13. 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  14. a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  15. b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  16. c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  17. d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  18. e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................  
  19. f0: 00 00 00 00 00 00 00 00 00 00 00 30 00 00 00 00    ...........0....  
# i2cdump -y -f 1 0x3a
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: eb 00 7f 05 3d 00 00 00 08 06 00 00 00 00 00 00    ?.??=...??......
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
20: 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10    ?#Eg????????vT2?
30: f0 e1 d2 c3 00 00 00 00 00 00 00 00 00 00 00 00    ????............
40: 80 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00    ?.?.............
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
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 30 00 00 00 00    ...........0....

i2cget

读取 I2C 设备某个 register 的值

  1. # i2cget -y -f 1 0x3a 0x02  
  2. 0x7f  
# i2cget -y -f 1 0x3a 0x02
0x7f


i2cset

设置 I2C 设备某个 register 的值

  1. # i2cset -y -f 1 0x3a 0x02 0x05  
# i2cset -y -f 1 0x3a 0x02 0x05

参考

http://my.oschina.net/luoly/blog/368881

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UART、SPI、I2C(也称为IIC)、IIS(也称为I2S)是一些常见的串行通信接口标准,用于在电子设备之间传输数据。 1. UART(通用异步收发器):UART是一种常见的串行通信接口,用于通过异步方式传输数据。它通常用于连接计算机和外部设备,如调制解调器、GPS模块、传感器等。UART使用TX(发送)和RX(接收)线来进行数据传输。 2. SPI(串行外围接口):SPI是一种全双工的串行通信接口,用于在微控制器和外部设备之间传输数据。SPI使用主从模式,其中一个设备充当主设备,控制通信的时序和数据传输。它使用多个线(如SCLK、MISO、MOSI)进行通信,并支持高速数据传输。 3. I2C(双线串行接口):I2C是一种双线制的串行通信接口,用于在芯片之间进行通信。它使用两根线(SDA和SCL)进行数据和时钟传输。I2C支持多主从模式,允许多个设备在同一总线上进行通信。 4. IIS(集成电路音频总线)/I2S(Inter-IC Sound):IIS或I2S是一种用于音频数据传输的串行接口。它通常用于数字音频设备之间的连接,如音频编解码器、数字信号处理器等。I2S使用多个线(如数据线、时钟线、帧同步线)来传输音频数据。 这些接口标准在电子设备中广泛应用,每种接口都有其独特的特点和应用场景。具体使用哪种接口取决于设备之间的通信需求和硬件支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值