0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

i2c tools命令使用示例详解

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-27 16:25 次阅读

i2cset:向i2c设备某个寄存器写入值

Usage: i2cset [-f] [-y] [-m MASK] [-r] [-a] I2CBUS CHIP-ADDRESS DATA-ADDRESS [VALUE] ... [MODE]
  I2CBUS is an integer or an I2C bus name
  ADDRESS 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
    
    f:强制访问
    y:指令执行自动yes,否则会提示确认执行Continue? [Y/n] Y,不加参数y会有很多执行提示,可以帮助判断
    r:写入后立即回读寄存器的值,并将结果与写入的值进行比较
    i2cbus:总线编号
    chip-address:i2c设备地址
    data-address:i2c寄存器地址
    value 要写入的值
    mode:指定读取的大小,b字节,w字,s是SMBus块,i是i2c块

设置i2c-10x20器件的0x77寄存器值为0x3f
./i2cset -f -y 1 0x20 0x77 0x3f

i2cget:读取i2c设备某个寄存器的值

Usage: i2cget [-f] [-y] [-a] I2CBUS CHIP-ADDRESS [DATA-ADDRESS [MODE]]
  I2CBUS is an integer or an I2C bus name
  ADDRESS 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
    
    f:强制访问
    y:关闭交互模式,不会提示警告信息
    i2cbus:总线编号
    chip-address:i2c设备地址
    data-address:i2c寄存器地址
    mode:指定读取的大小,b字节,w字,s是SMBus块,i是i2c块

读取i2c-10x20器件的0x77寄存器值
./i2cget -f -y 1 0x20 0x77

i2cdump:读取某个i2c设备所有寄存器的值

Usage: i2cdump [-f] [-y] [-r first-last] [-a] I2CBUS ADDRESS [MODE [BANK [BANKREG]]]
  I2CBUS is an integer or an I2C bus name
  ADDRESS 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
    
    r:指定寄存器范围,只能扫描从 first 到 last 区域
    f:强制访问设备
    y:关闭人机交互模式
    i2cbus:总线编号
    address:指定设备地址
    mode:指定读取的大小,b字节,w字,s是SMBus块,i是i2c块

读取i2c1上0x38器件的所有寄存器
./i2cdump -f -y -a 1 0x38

一般寄存器都是8位地址的,i2cdump、i2cget、i2cset 也是设置读取8位的地址,如果一次超过8位,需要用 i2ctransfer。

i2ctransfer:一次性读写多个字节

Usage: i2ctransfer [-f] [-y] [-v] [-V] [-a] I2CBUS DESC [DATA] [DESC [DATA]]...
  I2CBUS is an integer or an I2C bus name
  DESC describes the transfer in the form: {r|w}LENGTH[@address]
    1) read/write-flag 2) LENGTH (range 0-65535) 3) I2C address (use last one if omitted)
  DATA are LENGTH bytes for a write message. They can be shortened by a suffix:
    = (keep value constant until LENGTH)
    + (increase value by 1 until LENGTH)
    - (decrease value by 1 until LENGTH)
    p (use pseudo random generator until LENGTH with value as seed)

查看系统上存在的 i2c 总线及其设备地址

ls /sys/bus/i2c/devices/

图片

可以在这里查看实际的设备,然后对比 i2c-tools 扫描出来的对不对。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4983

    文章

    18295

    浏览量

    288597
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117765
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849
收藏 人收藏

    评论

    相关推荐

    80 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 - 第2

    程序代码I2C协议
    充八万
    发布于 :2023年08月17日 10:03:33

    AD22340 I2c接口设计详解

    AD22340 I2c接口设计详解AD 22340(I2C)与BLACKFIN ADSP-533参考设计 11. 简介 31.1&
    发表于 09-04 08:35

    I2C总线协议详解

    I2C总线定义 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频
    发表于 02-01 09:56

    使用Beaglebone的I2C

    i2c-tools,非常好用,下文以i2c开头的命令都是这个工具包里的,如果你的系统里没有的话,可以搜索并下载i2c-tools工具包。BBB上有两个可用的
    发表于 10-22 13:52

    树莓派系列教程10:I2C

    本帖最后由 kaloha 于 2017-5-15 17:39 编辑 一、启动I2C执行如下命令进行树莓派配置sudo raspi-config选择Advanced Options->
    发表于 03-28 13:56

    帮助配置I2C位边界示例代码

    大家好,我最近从微芯片网上下载了一段示例代码,用来配置我的PIC32MZ0512EFE144,用于位爆炸式I2C应用程序,因为PIC的硅误差使得很难通过硬件实现I2C通信。我已经生成了时钟和数据信号
    发表于 04-20 07:56

    基于嵌入式Linux演示在User Space进行I2C设备调试

    I2C总线user space操作命令测试I2C总线C程序操作示例
    发表于 12-18 07:30

    【龙芯1c库】封装硬件I2C接口和使用示例 精选资料分享

    AM2320接在一个硬件I2C引脚上,使用本文封装好的接口与AM2320通信,读取温湿度信息。以此验证硬件I2C接口是否正常工作,其后在详细讲解是如何封装硬件I2C接口的。龙芯1c库中
    发表于 08-09 07:30

    I2C协议以及I2C读写EEPROM

    2-3 数据有效性2-4 地址及数据方向2-5 响应三、STM32 的 I2C 架构剖析3-1 通讯引脚3-2 时钟控制逻辑3-3 整体控制
    发表于 08-23 08:25

    I2C通信详解

    救!《【STM32-I2C学习总结】STM32:硬件-IIC详解 , 固件库编程 , 手把手教你实现IIC》这里是我以前写的,硬件实现I2C的一个文章,文章末尾有软件实现I2C的方法,
    发表于 02-28 11:24

    如何使用I2C设备驱动接口开发应用程序

    STM32F4 探索者开发板上验证的代码示例I2C 设备驱动框架简介在使用 MCU 进行项目开发的时候,往往需要用到 I2C 总线。一般来说,MCU 带有 I2C 控制器(硬件
    发表于 08-18 10:54

    详解RT-Thread I2C设备驱动框架及相关函数

    STM32F4 探索者开发板上验证的代码示例I2C 设备驱动框架简介在使用 MCU 进行项目开发的时候,往往需要用到 I2C 总线。一般来说,MCU 带有 I2C 控制器(硬件
    发表于 10-25 12:02

    请问ch32v307加i2c tools编译出错是哪里引起的?

    故障复现步骤:studio里创建ch32v307-r1的开发板工程(sdk版本1.0.8)打开i2c硬件设备软件包里勾选i2c-tools然后编译报错:In file included from
    发表于 01-11 14:56

    I2C_READ和I2C_WRITE命令是否有可用的示例脚本?

    我正在使用 CLEV6630B 和 NXP-NFC-Cockpit (v.7.1.0)。我有一个通过 I2C 连接到传感器的 NTAG5。现在我想用脚本读取传感器数据。I2C_READ 和 I2C_WRITE
    发表于 05-12 08:20

    I2C FreeRTOS,子命令之间的时间差距很大是怎么回事?

    给出的示例时,I2C 通信看起来很正常。正如在时钟(绿色)之间的小缝隙处可以看到的,所有子命令都粘在一起 (带有示例代码的 I2C 时序
    发表于 05-17 09:03