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

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

  • i2cdetect
  • i2cdump
  • i2cget
  • i2cset

i2cdetect

列举 I2C bus

[cpp] view plain copy
print ?
  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  
列举 I2C bus i2c-1 上面连接的所有设备

[cpp] view plain copy
print ?
  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: -- -- -- -- -- -- -- --  
发现 I2C 设备的位置显示为 UU或者表示设备地址的数值, UU表示该设备在 driver 中被使用。

i2cdump

dump I2C 设备大批量 register 的值

[cpp] view plain copy
print ?
  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....  

i2cget

读取 I2C 设备某个 register 的值

[cpp] view plain copy
print ?
  1. # i2cget -y -f 1 0x3a 0x02  
  2. 0x7f  


i2cset

设置 I2C 设备某个 register 的值

[cpp] view plain copy
print ?
  1. # i2cset -y -f 1 0x3a 0x02 0x05  

参考

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

你可能感兴趣的:(Android/linux 平台下使用 i2c-tools调试IIC方法)