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

本文介绍了如何利用busybox及其包含的i2c-tools工具来管理和操作I2C总线上的设备。通过i2cdetect、i2cdump、i2cget和i2cset命令,可以检测I2C总线、批量获取设备寄存器数据、读取和写入特定寄存器。示例代码展示了如何列出I2C总线、检测I2C设备位置、读取和写入设备寄存器。
部署运行你感兴趣的模型镜像

在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

您可能感兴趣的与本文相关的镜像

GPT-SoVITS

GPT-SoVITS

AI应用

GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值