I2C 接口测试
I2C 接口常用测试工具为i2c-tools,工具源码:http://sources.buildroot.net/i2c-tools/
交叉编译:make ARCH=XXXX CC=XXXX-linux-gcc -j4 EXTRA=tools BUILD_STATIC_LIB=1 BUILD_DYNAMIC_LIB=0
i2c-tools命令简介
一、设备地址是8bit
1、i2cdetect检测有几组i2c总线
i2cdetect -l
2、i2cdetect检测挂载在i2c总线上器件
i2cdetect-r -y 1(检测i2c-1上的挂载情况)
3、i2cdump查看器件所有寄存器的值
i2cdump -f -y 1 0x50 (查看i2c-1总线上0x50设备的所有寄存器值)
4、i2cset设置单个寄存器值
i2cset -f -y 1 0x50 0x01 0xaa (往i2c-1总线上0x50设备0x01寄存器写0xaa)
5、i2cget读取单个寄存器值
i2cget -f -y 1 0x50 0x01 (读取i2c-1总线上0x50设备0x01寄存器的值)
二、设备地址是16bit
- 例子:i2c总线1上挂设备,设备地址是 0x3020 ,要读取16个字节
i2ctransfer -y -f 1 w2@0x10 0x30 0x20 r16
#w是写,2是写入2个字节,@0x10是寄存器地址,030 0x20是寄存器要设置的地址的高低位,r是读取,16 是读取16个字节
- 例子:i2c总线1上挂设备,设备地址是 0x3020 ,要写16个字节数据,数据是0x55 0xaa
i2ctransfer -y -f 1 w4@0x10 0x30 0x20 0x55 0xaa
#w是写,4是写入4个字节,@0x10是寄存器地址,0x30 0x20是寄存器要设置的地址的高低位,0x55 0xaa是要写入的值