如何做产品网站的推广,江苏广泽建设有限公司网站,域名和空间网站,网站建设费用要多少一. 前言 前面调试一个I2C设备#xff0c;用到了i2c-tools#xff0c;觉得是一个调试I2C不错的工具#xff0c;本文对i2c-tools的基本用法做一些介绍。i2c-tools是一些控制2C接口工具的集合#xff0c;其中包括i2cdetect#xff0c;i2cdump#xff0c;i2cget#xff0c;…一. 前言 前面调试一个I2C设备用到了i2c-tools觉得是一个调试I2C不错的工具本文对i2c-tools的基本用法做一些介绍。i2c-tools是一些控制2C接口工具的集合其中包括i2cdetecti2cdumpi2cgeti2cset和i2ctransfer其中i2cdetect是用来探测I2C总线上有哪些从设备的i2cdump是用来输出某个从设备的各个数据地址的内容的i2cget是用来获取某个从设备的某个数据地址的内容的i2cset则是用来设置某个从设备的某个数据地址的内容的i2ctransfer则兼具读和写的功能。本文主要介绍i2cdetecti2cgeti2cset和i2cdump的功能和使用方法。本文使用的I2C外设是AT24C02。 二. 命令的使用方法
1. i2cdetect i2cdetect的帮助信息如下
Usage: i2cdetect [-y] [-a] [-q|-r] I2CBUS [FIRST LAST]i2cdetect -F I2CBUSi2cdetect -lI2CBUS is an integer or an I2C bus nameIf provided, FIRST and LAST limit the probing range. i2cdetect是用来探测I2C总线上有哪些从设备的。探测的原理根据I2C协议当主设备发送从设备的地址由从设备的A0A1和A2决定后从设备需要回一个ACK此时主设备就知道了该地址的从设备存在所以I2C主设备依次发送从设备地址为0x03 - 0x77的地址数据
rootOpenWrt:/# i2cdetect -y 00 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
2. i2cset i2cset命令的帮助信息如下
rootOpenWrt:/# i2cset --help
Error: Unsupported option --help!
Usage: i2cset [-f] [-y] [-m MASK] [-r] [-a] I2CBUS CHIP-ADDRESS DATA-ADDRESS [VALUE] ... [MODE]I2CBUS is an integer or an I2C bus nameADDRESS is an integer (0x03 - 0x77, or 0x00 - 0x7f if -a is given)MODE is one of:c (byte, no value)b (byte data, default)w (word data)i (I2C block data)s (SMBus block data)Append p for SMBus PEC i2cset命令用于设置I2C设备的某个地址的值这里以在AT24C02的0x04地址写入0x89为例命令如下
rootOpenWrt:/# i2cset -y 0 0x50 0x04 0x89
3. i2cget i2cget命令的帮助信息如下
Usage: i2cget [-f] [-y] [-a] I2CBUS CHIP-ADDRESS [DATA-ADDRESS [MODE]]I2CBUS is an integer or an I2C bus nameADDRESS is an integer (0x03 - 0x77, or 0x00 - 0x7f if -a is given)MODE is one of:b (read byte data, default)w (read word data)c (write byte/read byte)Append p for SMBus PEC i2cget命令用于读取I2C设备的某个地址的值以读取AT24C02的0x04地址为例之前用i2cset设置了0x89。
rootOpenWrt:/# i2cget -y 0 0x50 0x04
0x89
4. i2cdump i2cdump命令的帮助信息如下
Usage: i2cdump [-f] [-y] [-r first-last] [-a] I2CBUS ADDRESS [MODE [BANK [BANKREG]]]I2CBUS is an integer or an I2C bus nameADDRESS is an integer (0x03 - 0x77, or 0x00 - 0x7f if -a is given)MODE is one of:b (byte, default)w (word)W (word on even register addresses)s (SMBus block)i (I2C block)c (consecutive byte)Append p for SMBus PEC i2cdump命令用于输出I2C设备的各个地址的值在之前我在AT24C02的0x04地址上写入了0x89值i2cdump命令输出如下
rootOpenWrt:/# i2cdump -y 0 0x50
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: ff ff ff ff 89 ff ff ff ff ff ff ff ff ff ff ff ....?...........
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ...................... 可以看到通过i2cdump0x04地址的值为0x89。 三. 总结 本文讲解了Linux下i2c-tools工具的使用方法i2cdetect用于检测I2C总线的上有哪些I2C从设备i2cset用于设置I2C总线上某个设备的地址的值i2cget用于获取I2C总线上某个设备的地址的值i2cdump用于批量输出I2C总线上某个设备的地址的值。熟悉使用这几个工具对I2C设备的调试非常有帮助。