admin 管理员组

文章数量: 887021

i2c

一 i2c-tools工具集介绍

i2c-tools是一个专门调试i2c设备的开源工具集,在嵌入式开发中经常使用,该工具集包含以下命令:
i2cdetect、i2cdump、i2cget、i2cset。
i2c-tools的重要意义就是开发人员既不需要编写复杂的Linux驱动、也不需要编写应用程序,只需要输入几个简单的命令就可以调试i2c设备,比如:
设置i2c设备寄存器
获得i2c设备寄存器的值

二 i2c-tools工具集详细操作

i2cdetect:查询开发板包含的i2c总线和外设,看以下命令:
i2cdetect -l
探测开发板包含的i2c总线
从命令执行结果可知,开发板包含2个i2c总线控制器

i2cdetect -y -r 0
探测i2c-0总线上挂载的外设,参数-y表示取消交互模式,直接执行命令
从命令执行结果可知i2c-0总线上挂载了2个i2c设备,地址分别为0x56、0x57。
其中0x57为EEPROM芯片

i2cdetect -y -r 1
探测i2c-1总线上挂载的外设
从命令执行结果可知i2c-1总线上挂载了1个i2c设备,地址为0x68。
UU表示该设备已经被Linux内核驱动占用,探测程序会略过该设备

i2cset:设置i2c设备单个寄存器的值,看几个命令:
i2cset -y -f 0 0x57 0x00 0x10
i2cset -y -f 0 0x57 0x01 0x11
i2cset -y -f 0 0x57 0x02 0x12
i2cset -y -f 0 0x57 0x03 0x13
下面以i2cset -y -f 0 0x57 0x00 0x10为例进行分析
参数 意义
-y 取消交互模式,直接执行命令
-f 强制访问该设备
0 表示i2c总线编号
0x57 表示i2c设备地址
0x00 表示寄存器地址
0x10 表示待写入的值
i2cget:查看i2c设备单个寄存器的值,看几个命令:

下面以i2cget -y -f 0 0x57 0x00为例进行分析
参数 意义
-y 取消交互模式,直接执行命令
-f 强制访问该设备
0 表示i2c总线编号
0x57 表示i2c设备地址
0x00 表示寄存器地址

i2cdump:查看i2c设备所有寄存器的值,看以下命令:
i2cdump -y -f 0 0x57
参数 意义
-y 取消交互过程,直接执行命令
-f 强制访问该设备
0 表示i2c总线编号
0x57 表示i2c设备地址
从命令执行结果可知i2cdump命令获得的寄存器值和i2cget命令相同。

注意:
i2c设备某些寄存器其设置的值和读出的值不同,请不要见怪,比如复位寄存器,其设置的值并不等于读出的值。

本文标签: i2c