i2c-tools是一个专门调试i2c的工具,无需编写任何代码即可轻松调试I2C设备,可获取挂载的设备及设备地址,还可以在对应的设备指定寄存器设置值或者获取值等功能。i2c-tools有如下几个常用测试命令i2cdetect, i2cdump, i2cget, i2cset,i2ctransfer。
2.1、Jetson xavier/orin下安装
sudo apt-get install libi2c-dev i2c-tools
2.2、Zynq MPSOC下安装
使用如下命令勾选i2c-tools工具:
使用petalinux 进入文件系统
petalinux-config -c rootfs
进入Filesystem Packages
进入base
进入i2c-tools
勾选i2c-tools工具
重新编译系统
petalinux build
3、i2c-tools工具使用
3.1、i2cdetect
功能:用于检测SOC设备上的i2c总线数量和挂载在i2c总线上的器件。
命令:i2cdetect -l
命令:i2cdetect -r -y 0 //检测i2c-0的挂载情况
3.2、i2cdump
功能:dump i2c设备中所有的数据。
i2cdump -f -y 0 0x1e b
用i2cdump查看挂载在i2c 0 总线上器件地址为0x1e的所有寄存器值
3.3、i2cget
功能:获取指定i2c设备中指定地址的数据.
命令:i2cget -f -y 0 0x1b 0x02 //显示I2C 0号总线上0x1b设备0x02寄存器地址,按字节读取
3.4、i2cset
功能:设置指定i2c设备中指定地址的数据。
命令:i2cget -f -y 0 0x1b 0x20 0x01 //设置I2C 0号总线上0x1b设备0x20寄存器地址的值为0x01
3.5、i2ctransfer
I2c-tool-4.0及之后的版本添加了12ctransfer命名。
功能:由于i2cget和i2cset只能读写i2c设备的寄存器地址小于0xff–8位寄存器地址。I2ctransfer可以设置寄存器地址为16位。
命令:i2ctransfer -y -f 1 w3@0x30 0x2a 0x02 0x30
//向i2c 1号总线0x30设备的0x2a02寄存器写0x30,w3:表示寄存器0x2a02和写入值0x30的长度为3字节。