Linux-笔记 i2c-tools

server/2025/2/11 5:26:05/

1、i2c-tools介绍

1、在日常linux开发中,有时候需要确认i2c硬件是否正常连接,设备是否正常工作,设备的地址是多少等等,这里我们就需要使用一个用于测试I2C总线的工具——i2c-tools,i2c-tools原理是通过操作/dev 路径 i2c-n设备文件完成,因此kernel必须开启了 CONFIG_I2C_CHARDEV 配置,否者会报找不到节点。在设备上也可以通过目标板终端输入:ls /sys/bus/i2c/devices查看i2c设备节点信息。看到的i2c-0,i2c-1,指的是i2c总线节点,i2c从设备都是挂载在总线节点下的。

2、源码获取:Index of /pub/software/utils/i2c-tools/

3、包含工具

i2cdetect:用于扫描 i2c 总线上的设备,并显示地址。
    i2cset:设置i2c设备某个寄存器的值。
    i2cget:读取i2c设备某个寄存器的值。
    i2cdump:读取某个i2c设备所有寄存器的值。

二、测试方法

  1. i2cdetect

        (1)查询开发板包含的i2c总线和外设输入命令:i2cdetect -l

        2)探测开发板包含的i2c总线,探测i2c-1总线上挂载的外设,-y表示取消交互模式,1是指i2c-1,输入命令:i2cdetect -y -r 1

下图所示,从设备地址是0x51,UU表示设备地址的从设备被驱动占用,探测程序会略过该设备卸载对应的驱动后,UU就会变成数据,-- 表示该地址被检测,但是没有应答,这里就用这个设备地址进行测试。

        2. i2cset

        (1)设置i2c设备单个寄存器值,输入命令i2cset -y -f 1 0x51 0x00 0x08

                -y 取消交互模式,直接执行命令

                -f 强制访问该设备

                1 表示i2c总线编号

                0x57 表示i2c设备地址

                0x00 表示寄存器地址

                0x08 表示待写入的值

        

        3. i2cget

        (1)查看i2c设备单个寄存器的值,输入命令i2cget -y -f 1 0x51 0x00

                -y 取消交互模式,直接执行命令
               -f 强制访问该设备
               1 表示i2c总线编号
               0x51 表示i2c设备地址
               0x00 表示寄存器地址

        4. i2cdump

        (1)查看i2c设备所有寄存器的值,输入命令i2cdump -y -f 1 0x51

                -y 取消交互过程,直接执行命令
               -f 强制访问该设备
               1 表示i2c总线编号
               0x51 表示i2c设备地址

        


http://www.ppmy.cn/server/39227.html

相关文章

this application requires .NET Framework 4.5.2

安装mysql社区版的时候报这个错:this application requires .NET Framework 4.5.2 https://www.microsoft.com/en-us/download/details.aspx?id42642

rk3588局域网推流

最近无意间看见在网上有使用MediaMtx插件配合ffmpeg在Windows来进行推流,然后在使用其他软件进行拉流显示数据图像的,既然windows都可以使用 ,我想linux应该也可以,正好手上也有一块RK3588的开发板,就测试了一下&#…

NSSCTF | [SWPUCTF 2021 新生赛]jicao

打开题目&#xff0c;发现高亮显示了一个 php 脚本 这是脚本的内容 <?php highlight_file(index.php); include("flag.php"); $id$_POST[id]; $jsonjson_decode($_GET[json],true); if ($id"wllmNB"&&$json[x]"wllm") {echo $flag;…

Goland开发者软件激活使用教程

Goland开发者工具&#xff1a; Goland是由JetBrains公司推出的专门针对Go语言设计的集成开发环境&#xff08;IDE&#xff09;。这款工具具有智能的代码补全、强大的代码导航和重构功能&#xff0c;同时提供了丰富的调试工具&#xff0c;能够满足Golang开发者的各种需求。 Gol…

汽车EDI:IAC Elmdon EDI 对接指南

近期收到客户C公司的需求&#xff0c;需要与其合作伙伴IAC Elmdon建立EDI连接&#xff0c;本文将主要为大家介绍IAC Elmdon EDI 对接指南&#xff0c;了解EDI项目的对接流程。 项目需求 传输协议&#xff1a;OFTP2 IAC Elmdon 与其供应商之间使用的传输协议为OFTP2。OFTP2是…

【mysql】主从同步时出错,如何恢复同步

mysql主从同步出错&#xff0c;这个时候从服务器会停止同步服务&#xff0c;等待人工恢复&#xff0c;此时有多种方法来解决。 一、查看状态 在从服务器&#xff0c;登陆mysql&#xff0c;查询从服务器的状态&#xff1a; 从服务器mysql> show slave status\G 图1 可以看…

探索利用 LineageLogger 获取hive的字段级血缘关系

apache hive 源码中有 org.apache.hadoop.hive.ql.hooks.LineageLogger 类可以获取 insert hql 的字段之间的关系。但是又由于 org.apache.hadoop.hive.ql.optimizer.Optimizer的原因&#xff0c;使我们重写 hook 类无法实现字段级血缘。 if (hiveConf.getBoolVar(HiveConf.Con…

Python学习——环境搭建

Python 介绍 Python&#xff08;英国发音&#xff1a;/ˈpaɪθən/ 美国发音&#xff1a;/ˈpaɪθɑːn/&#xff09;是一种广泛使用的解释型、高级编程、通用型编程语言&#xff0c;由吉多范罗苏姆创造&#xff0c;第一版发布于1991年。可以视之为一种改良&#xff08;加入…