i2c-tool调试工具使用方法介绍

i2c-tools使用方法及调试

编译方法

  i2c-tools是一款开源工具,专门用来调试i2c设备,目前Tina系统已经集成了i2ctools源码,在menuconfig里打开配置编译即可。
  Android的话可以从开源网站http://dl.lm-sensors.org/i2c-tools/releases/下载i2c-tools,
  然后修改makefaile编译即可,会生成4个文件,
  将这四个文件i2cdetect, i2cdump, i2cget, i2cset push到安卓设备就可以调试了。

调试命令

一、i2cdetect命令

1、检测系统有几条有效的i2c 总线

 i2cdetect -l
 结果:root@TinaLinux:/# i2cdetect -l
 i2c-1   i2c             twi1                                    I2C adapter

2、检测某条i2c总线上器件挂载情况

i2cdetect-r -y 1(检测i2c-1上的挂载情况)

  root@TinaLinux:/# i2cdetect -r -y 1
      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  00:          -- -- -- -- -- -- -- -- -- -- -- -- --
  10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  30: -- -- -- -- -- UU -- -- -- -- -- UU -- -- -- --
  40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  70: -- -- -- -- -- -- -- --

如上图打印所示,表示有两个器件挂载在i2c1上,器件地址分别是0x3b和0x35.

二、i2cdump命令

1、用i2cdump查看器件所有寄存器的值,这个很有用:

输入命令:i2cdump -y -f 总线 器件地址

  root@TinaLinux:/# i2cdump -y -f 1 0[Jx3b
  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: 4a 00 00 00 00 00 01 99 00 01 00 00 00 00 00 00    J.....??.?......
 10: 48 00 03 0d 00 00 0f d0 00 00 00 00 00 00 00 00    H.??..??........
 20: 01 93 93 00 00 30 00 00 00 00 00 00 00 00 00 00    ???..0..........
 30: d0 00 00 7f 01 75 70 00 00 00 00 00 e4 e4 e4 e4    ?..??up.....????
 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
 50: 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00    .?..............
 60: 00 1f 00 e4 00 00 0f 00 ff aa 45 00 ff d5 22 00    .?.?..?..?E..?".
 70: a0 a0 a0 a0 00 00 01 02 04 08 00 00 00 00 00 00    ????..????......
 80: 11 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ??..............
 90: 32 32 32 32 00 00 00 00 00 00 00 00 00 00 00 00    2222............
 a0: 07 00 00 00 00 00 00 07 00 00 00 00 00 00 07 00    ?......?......?.
 b0: 00 00 00 00 0b 07 00 00 00 00 00 0f 00 00 00 00    ....??.....?....
 c0: 77 77 00 55 00 00 00 00 00 00 00 00 00 00 00 00    ww.U............
 d0: 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 01    .?.............?
 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 00 00 00 00 00    ................
 root@TinaLinux:/#

三、i2cset & i2cget命令

用i2cset设置单个寄存器值,用i2cget读取单个寄存器值,可以在初期调试时发挥很大作用,一旦有预期的现象出现,就可以用i2cdump读出整个寄存器的值,然后固化到代码中: i2cget -y -f i2c总线 器件地址 寄存器地址 i2cset -y -f i2c总线 器件地址 寄存器地址 要写入的值

 root@TinaLinux:/# i2cget -y -f 1 0x3b 0x61
 0x1f
 root@TinaLinux:/# i2cset -y -f 1 0x3b 0x61 0x22
 root@TinaLinux:/# i2cget -y -f 1 0x3b 0x61
 0x22
 root@TinaLinux:/#
  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
i2ctools是一个用于I2C总线通信的工具包,它提供了一组用于读取和写入I2C设备的命令行工具。其源码主要由C语言编写。 i2ctools的主要功能包括: 1. 通过i2c设备节点文件(如/dev/i2c-0)打开和关闭一个I2C设备连接。 2. 通过发送START、STOP、ACK、NACK等信号控制I2C总线。 3. 发送和接收字节数据,支持读取和写入I2C设备。 4. 支持读取和写入I2C设备寄存器的值。 5. 提供了一些用于设置I2C总线传输速度和其他参数的选项。 6. 支持通过SMbus协议进行I2C通信。 7. 支持对I2C设备进行命名,并提供了一些用于查找和识别I2C设备地址的方法i2ctools的源码包括多个文件,其中包括用于解析命令行参数、实现I2C通信协议的函数、用于读写I2C设备寄存器和处理I2C设备连接的函数等。通过阅读源码可以更深入地理解和定制化i2ctools的功能。 在源码中,首先会进行一些初始化操作,如解析命令行参数,打开I2C设备连接等。然后,根据用户的输入执行相应的操作,如读写寄存器、发送数据等。在执行这些操作的过程中,可能会使用I2C通信协议相关的函数来控制I2C总线的信号传输。 总的来说,i2ctools的源码提供了一套实用的工具和函数,使得我们可以通过命令行快速、方便地进行I2C总线通信和与I2C设备的交互。通过阅读和理解源码,可以更好地进行调试、定制和扩展i2ctools的功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux2k10

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值