关于Linux下i2c-tool工具(i2cdetect/i2cget/i2cset/i2ctransfer)及memtool32工具直接操作寄存器的使用

这篇具有很好参考价值的文章主要介绍了关于Linux下i2c-tool工具(i2cdetect/i2cget/i2cset/i2ctransfer)及memtool32工具直接操作寄存器的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 首先本人是直接下载的i2c-tool和memtool32工具到开发板内直接使用:

i2cdetect,linux,arm开发,postman

2. i2cdetect命令:该命令是用于扫描板卡内i2c总线上的设备

输入./i2cdetect,会出现i2cdetect指令的语法操作说明

i2cdetect,linux,arm开发,postman

参数说明:

        参数y:关闭交互模式,使用该参数时,不会提示警告信息。

        参数a:扫描总线上的所有设备。(本人一般使用-y而不是使用-a去扫描设备)

        参数q:使用SMBus的“quick write”命令进行检测,不建议使用该参数。

        参数r:使用SMBus的“receive byte”命令进行检测,不建议使用该参数。

        参数i2cbus:指定i2c总线的编号

        参数first、last:扫描的地址范围

输入./i2cdetect -l,会扫描出板卡上挂载多少个i2c设备,如下说明存在3个i2c设备

i2cdetect,linux,arm开发,postman

输入./i2cdetect -y 0,说明/dev/i2c-0下面挂载着两个设备,地址分别为0x49和0x51

i2cdetect,linux,arm开发,postman

3. i2cget命令:读某个寄存器的值,寄存器地址只能是8-bit。

输入命令./i2cget,会出现i2cget指令的语法操作说明

i2cdetect,linux,arm开发,postman

参数说明:

        参数f:强制访问设备。

        参数y:关闭交互模式,使用该参数时,不会提示警告信息。

        参数i2cbus:指定i2c总线的编号

        参数chip-address:i2c设备地址

        参数data-address:设备的寄存器的地址

        参数mode:指定读取的大小, 可以是b, w, s或i,分别对应了字节,字,SMBus块, I2C块。

输入./i2cget -f -y 0 0x49 0x00,表示读取/dev/i2c-0总线上0x49设备地址下的0x00寄存器的值

i2cdetect,linux,arm开发,postman

4. i2cset命令:写某个寄存器的值,寄存器地址只能是8-bit

输入./i2cset -f -y 0 0x49 0x00,表示写入/dev/i2c-0总线上0x49设备地址下的0x00寄存器的值为0x00

i2cdetect,linux,arm开发,postman

5. i2ctransfer命令:可以读写多字节寄存器地址。i2ctransfer可以替代i2cset和i2cget

输入命令./i2ctransfer,会出现i2ctransfer指令的语法操作说明

i2cdetect,linux,arm开发,postman

参数说明:

        参数f:强制访问设备。
        参数y:关闭人机交互模式;
        参数v:
        参数a:允许用0x00-0x07和0x78-0x7f地址
        参数i2cbus:指定i2c总线的编号
        ......

(本人用这个指令比较少,后续用到会补充说明)

6.关于使用memtool工具直接通过及地址来操控寄存器的值:

输入./memtool32,会出现memtool32指令的语法操作说明

i2cdetect,linux,arm开发,postman

输入./memtool32 -32 0x43c00020 1,表示读取设备基地址0x43c00000下的0x20寄存器地址的值。

(此时读取的值是从后往前,比如读取出来的值为03020100,那么0x20的值为0x00,0x21的值为0x01,以此类推......)

i2cdetect,linux,arm开发,postman

输入./memtool32 -32 0x43c00020=0x00,表示写入设备基地址0x43c00000下的0x20寄存器地址为0x00,写入的值是一个32bit的数据,如果要写入其他数据位的值,就在前面对应修改即可。

i2cdetect,linux,arm开发,postman文章来源地址https://www.toymoban.com/news/detail-860234.html

到了这里,关于关于Linux下i2c-tool工具(i2cdetect/i2cget/i2cset/i2ctransfer)及memtool32工具直接操作寄存器的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android i2cdetect i2cdump i2cget i2cset调试工具使用

    本文介绍Android/Linux (反正是ARM) 的I2C调试工具用法 , 包括i2cdetect、i2cdump、i2cget和i2cset,可实现I2C设备的识别、监控和配置。i2cdetect用于扫描所有设备地址,i2cdump读取寄存器的值,而i2cget和i2cset分别实现读取和写入寄存器的功能。这些工具提供了便捷的方式与I2C设备进行交互,

    2024年02月08日
    浏览(28)
  • <Linux开发> linux开发工具-之-I2C TOOLS工具使用

    <Linux开发> linux开发工具-之-I2C TOOLS工具使用 <Android开发> Android开发工具- 之-I2C TOOLS工具使用 <Linux开发>驱动开发 -之- Linux I2C 驱动 在笔者的另一篇文章 <Android开发> Android开发工具- 之-I2C TOOLS工具使用讲解过,如何在android上使用I2C TOOLS工具。本文主要是分析如何在

    2024年02月16日
    浏览(43)
  • I2C协议关于ack和nack的思考

    clock时钟是由master端产生的,而不管master还是slave都可以发送ack/ack。ack/nack由receiver产生。 当master是发送器,slave是接收器时,ack/nack由slave接收器产生。如,在地址传输周期内,和master进行写操作的周期内,ack/nack是由slave接收器产生。 当master是接收器,slave是发送器时,ack/

    2024年02月09日
    浏览(38)
  • 关于STM32硬件I2C HAL_I2C_Mem_Read,在I2C_WaitOnTXISFlagUntilTimeout返回HAL_ERROR

    在使用NUCLEO-L452RE开发版的IIC总线作为主机和其他设备从机通信时主机IIC在以下代码处返回HAL_ERROR. /* Wait until TXIS flag is set */   if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)   {     return HAL_ERROR;   } 在调试中发现如果使用模拟IIC,可以与从机正常通信,但是使用硬件

    2024年04月28日
    浏览(36)
  • I2C知识大全系列四 —— I2C驱动之Linux下的I2C

    Linux 系统定义了 I2C 驱动体系结构。在 Linux 系统中, I2C 驱动由三部分组成,即 I2C 核心 、 I2C 总线驱动 和 I2C 设备驱动 。这三部分相互协作,形成了非常通用、可适应性很强的 I2C 框架。 I2C核心 I2C 核心提供了 I2C 总线驱动 和 设备驱动 的 注册 、 注销方法 , I2C 通信方法

    2024年02月07日
    浏览(43)
  • HNU-电子测试平台与工具2-I2C

    FPGA I2C接口实现 计科210X wolf 202108010XXX 报告内容将包括:     (1)如何描述组合电路、时序电路、状态机?如何编写TestBench?     (2)ModelSim工具的使用;     (3)EEPROM读写代码分析; (4)实验总结; 注意:其中(1)将在自定FSM中以实例的方式呈现,(2)将在(

    2024年04月09日
    浏览(43)
  • 关于485、CAN、单总线、SPI、I2C的特点、区别、协议、使用方法、通信方式。

    485(一般称作 RS485/EIA-485)。 是隶属于 OSI 模型物理层电气特性规定为 2 线半双工多点通信标准。 它的电气特性和 RS-232 大不一样,用缆线两端的电压差值来表示传递信号。 特性 1.    接口电平低,不易损坏芯片 RS485 的电气特性:逻辑“1”以两线间的电压差为+(2~ 6)V表示;

    2024年02月07日
    浏览(47)
  • Linux I2C 驱动实验

    目录 一、Linux I2C 驱动简介 1、I2C 总线驱动 2、I2C 设备驱动 1、 i2c_client 结构体 2、 i2c_driver 结构体 二、硬件分析 三、设备树编写 1、pinctrl_i2c1 2、在 i2c1 节点追加 ap3216c 子节点 3、验证 四、 代码编写 1、makefile 2、ap3216c.h  3、ap3216c.c ①、头文件 ②、驱动出入口  ③、 i2c驱动

    2024年02月08日
    浏览(47)
  • Linux在应用层上使用I2C

    通常情况下i2c读写一般是在kernel中使用,但是在应用层上一样可以使用。在应用上可以通过读写/dev/i2c-x这个节点从而控制i2c接口进行读写数据。 通常一个SOC有多个I2C控制器,假设有这个SOC有3个控制器,我们会在/dev目录下看到i2c-0、i2c-1、i2c-2,计数从0开始。 1.首先使用的时

    2024年02月02日
    浏览(37)
  • Linux驱动开发(I2C系统的重要结构体)

    本篇文章来讲解I2C系统的重要结构体,了解这些结构体对于编写I2C驱动来说是至关重要的,所以要想编写好一个I2C驱动程序那么就必须先了解这些结构体。 这里使用百问网的一张图片来讲解: 一个芯片中可以有多个I2C控制器,并且一个I2C控制器可以控制多个设备。那么在对

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包