Linux学习之i-mx287学习:arm板上i2c-tools工具使用

i2c-tools是一个开源的linux下I2C设备测试工具,在Ubuntu或者ARM板环境下都能使用,下面介绍一下arm9下的I2C-tools工具的交叉编译和使用测试。

步骤一:获取i2c-tools源码:

git clone https://github.com/ev3dev/i2c-tools.git

步骤二 :交叉编译i2c-tools:

make CC=arm-linux-gcc

编译完成后会在tools路径下生成四个可执行工具程序,i2cdetect、i2cdump、i2cget、i2cset

步骤三:将可执行程序拷贝到板子上运行测试

我的是I-MAX287A的板子,运行后效果如下:

(1)查找i2c从设备的地址:

指令:

./i2cdetect -l

此指令可以列出板子上的i2c设备名称

./i2cdetect -r -y 1

此指令可以扫描i2c总线上所有从设备的地址,这里显示的0x18这个地址,其实是在MCU作为I2C从设备时初始化的0x30,可以看出i2c-tools扫描设备时地址是实际地址左移1位得到的。

(2)向I2C从设备写数据

指令:

./i2cdump -f -y 1 0x18

该指令会向I2C-1总线的0x30地址循环写256个字节的数据,如下图中左侧是MCU作为I2C从设备接收的结果。

(3)读取数据

指令:

./i2cget -f -y 1 0x18 0x00 w

为了便于查看现象,首先往设从设备的缓存区i2c写一些数据,然后通过i2c-tools的i2cget来单个字节读取

如果不知道运行指令的参数代表什么意思,可以用--help来获取每个运行程序的帮助。

猜你喜欢

转载自blog.csdn.net/qq_28643619/article/details/102232543