linux shell通过i2cget命令获取I2C器件寄存器的值

OpenBMC开发笔记系列——(二)i2c常用命令 i2c 命令 阅读详情

以下内容为原创,欢迎转载,转载请说明来源:http://blog.youkuaiyun.com/masterbee/article/details/78676040

最近在写一段linux shell脚本,通过I2C控制一颗IC,获取它寄存器的值,它寄存器的值即表示想要获取的电压。

先解释一下:

sudo i2cget -y -f 0 0x2a 0x10表示用root权限通过i2cget命令获取地址为0x2a的芯片,0x10寄存器上的值。

所有shell命令如下所示:

getVH()

{
 sudo i2cget -y -f 0 0x2a 0x10
}
getVL()
{
 sudo i2cget -y -f 0 0x2a 0x11
}
VH=`getVH`
VL=`getVL`
Value=$[$VH*8+$VL]
Value=$(printf "%.3f" `echo "scale=3;$Value*0.035"|bc`)

echo "Value:$Value V"

 

echo ""
read -n1 -p "按下任意键退出……"

CH34X-MPHSI与i2c-tools实战:USB转I2C主设备调试指南 I2C总线作为一种广泛应用的同步串行通信协议,其核心原理基于主从架构和开漏输出,通过SCL时钟线和SDA数据线实现设备间的双向数据传输。在嵌入式开发和硬件调试领域,I2C协议因其引脚少、协议简单而备受青睐,但其调试过程往往需要专门的硬件工具或嵌入式代码支持。CH34X-MPHSI这类USB转I2C主设备模块的出现,结合Linux系统下强大的i2c-tools命令行工具集,为工程师提供了一种高效的解决方案。通过将USB接口虚拟为标准I2C适配器,用户可以直接在PC上使用i2cdetect、i2cget、i2c 阅读详情

相关推荐

OpenHarmony I2C实战排障:从信号异常到设备点亮全链路解析

I2C是一种广泛使用的同步串行通信协议,其可靠性高度依赖物理层电气特性、时序参数配置与驱动栈协同。在OpenHarmony等新型嵌入式操作系统中,I2C不再仅是Linux式的字符设备,而是深度集成于HDF(Hardware Driver Foundation)框架的运行时实体,涉及GPIO复用、时钟使能、pinctrl配置、DeviceManager服务注册及HDI用户态接口调用等多个耦合环节。当出现i2cdetect扫不到设备、i2cget超时(ETIMEDOUT)、SCL上升沿拖尾或ACK失败等问题时,

weixin_33901641的博客 304

I2Ctool工具 i2cset i2cget i2cdetect i2cdump

i2c总线表示要扫描的I2C总线的编号或名称,并且应对应于i2cdetect-l列出的总线之一。在总线9(i2c-9)上 立即接收I2C设备的7位地址0x50上的所有内容。在用户配置后,使用默认的读方式。立即清除 I2C 器件在总线 1 (i2c-1) 上的 7 位地址0x2d的 8 位寄存器0x11的 3 个最低有效位(无需用户确认)在总线9(i2c-9)上 接受I2C设备的7位地址0x50上的所有内容。在bus 1 (i2c-1)0x2d七位地址,写值0x42到一个8位寄存器0x11的I2C设备。

qq_42632460的博客 1万+

Android i2cdetect i2cdump i2cget i2cset调试工具使用

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

我其实什么都不会 8454

Linux I2C(五) I2C字符设备的注册和使用

I2C字符设备的注册和使用

滴水藏海 3608

【I2C】I2C-tools详解:i2cdetect 、i2cdump 、i2cget 、i2cset 、i2ctransfer

I2C-tools详解:i2cdetect 、i2cdump 、i2cget 、i2cset 、i2ctransfer

郭老二 2645

I2Cdetect,i2cdump,i2cset,i2cget 的使用方法

一、下载i2c-tools,交叉编译 1、从开源网站https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/载i2c-tools,我使用的是3.0.2的版本。 2、解压后的目录结构如下: 最有用的是tools/文件夹,接下来修改Makefile,主要是修改交叉编译器,如下图所示 然后保存退出。直接make,进行编译。编译完成后在tools/文件夹下会有如下几个可执行文件,i2cdetect, i2cdump, i2cget, i2.

技术联盟 3634

嵌入式Linux必备:i2c-tool命令行工具实战详解

在嵌入式Linux开发中,I2C总线是连接传感器、EEPROM、PMIC等器件最常用的低速通信接口。i2c-tool作为一套用户态命令行工具,提供i2cdetect、i2cget、i2cset、i2ctransfer等命令,让开发者无需编写内核驱动即可完成设备扫描、寄存器读写与总线调试。其核心原理是通过/dev/i2c-N设备节点与内核I2C子系统交互,以标准SMBus或I2C协议收发数据。掌握这些工具能显著提升驱动调试与硬件排查效率,尤其在设备地址冲突、上拉电阻异常、寄存器配置错误等场景中成为关键利器。本

weixin_34101229的博客 355

tpa6130a2音频功放驱动移植:platform_data配置与I2C调试实战

嵌入式Linux音频系统中,I2C功放芯片的驱动移植往往涉及板级参数与总线时序的双重挑战。platform_data作为一种传统的设备注册方式,在早期内核中广泛用于描述GPIO、使能极性等硬件配置,与后来的设备树(device tree)形成鲜明对比。理解其结构体、i2c_board_info与驱动probe的配合,是解决tpa6130a2等音频功放芯片无声、耳机检测极性反转、I2C传输超时等问题的关键。在非官方BSP移植或手工调试场景下,掌握寄存器读写、音量映射和ALSA控制通路验证,能大幅缩短开发周期。

weixin_34212762的博客 351

OpenBMC中添加I2C传感器从设备树到用户态完整指南

在嵌入式系统与服务器管理中,I2C总线是连接温度、电压、风扇转速等监控传感器的常见低速通信接口。工程师在开发BMC固件或外设移植时,常需打通从硬件信号到上层服务的完整链路。这依赖于Linux内核的设备树机制来声明I2C设备,并在驱动加载后通过sysfs暴露原始数据。而OpenBMC作为开源BMC固件,其用户态监控框架基于entity-manager和dbus-sensor协同工作,前者负责硬件拓扑探测,后者定期读取sysfs数据并通过D-Bus发布,最终供Redfish、IPMI或Web界面消费。本文面向O

weixin_33981932的博客 569

i2ctools工具说明

主要阐述了i2cdetect、i2cdump、i2cget等工具的使用方法介绍

第一天(点亮led灯+led灯闪烁)——Arduino uno R3 学习之旅

发光二极管(Light Emitting Diode,简称LED)是一种能够将电能转化为光能的固态的半导体器件。长脚为阳极短脚为阴极电流必须从长脚流入从短脚流出方可点亮LED##杜邦线杜邦线:是导线中的一种,杜邦线端部有两种接头形式:带针的一种称为公头,带孔的一种称为母头,如下图所示:说明:与电源相连接时,一般采用红色杜邦线,与地连接时采用黑色杜邦线。

qwsbcjendb的博客 1130

嵌入式Linux调试利器:i2c-tool常用命令与实战排错

I2C总线在嵌入式系统中无处不在,从传感器到存储芯片都依赖它传输数据。当总线上的设备读写异常时,如何快速定位故障成为工程师的必修课。在Linux环境下,i2c-tool提供了一套功能完备的诊断工具,涵盖设备扫描、寄存器读写、时序验证等核心操作。通过i2cdetect可探测总线上的设备地址,i2cdump与i2cget能深入读取芯片内部状态,而i2ctransfer更支持自定义任意读写时序,直接模拟驱动行为。无论是新板卡调试、外设移植还是硬件排错,掌握这些命令都能显著提升工作效率。本文从基础概念出发,结合EE

weixin_34187862的博客 330

AD620单电源应变片测量电路分析

笔者最近在用AD620做应变片的压力检测电路,正好AD620的datasheet中有对于应变片压力测量的应用电路,参考该电路进行设计及实验后发现该电路存在些许问题,并对其进行了优化改进。本文纯属个人理解,供大家参考,欢迎批评指正。 AD620应用电路分析及优化 应用电路分析 AD620手册中原电路如下(加了部分标注以便分析): 该电路中,前半部分比较明显,为经典的AD620放大电路结构:四个应变...

拙诚电子工作室 1万+

I2C外设调试四层法:从示波器到设备树的实战路径

I2C是一种广泛应用于嵌入式系统的双线同步串行总线,其可靠性依赖于物理层信号完整性、协议层地址识别、驱动层设备树声明与应用层状态机交互的协同验证。理解I2C时序规范(如起始条件、ACK响应、建立保持时间)是排查通信失败的基础;掌握i2c-tools工具链可快速完成设备发现与寄存器探查;而设备树作为Linux内核识别I2C外设的关键描述机制,直接影响驱动加载成败。在STM32、RK3568、ESP32等主流平台中,I2C调试常涉及电平匹配、地址冲突、休眠复位、多路复用等典型工程问题。本文聚焦I2C外设调试与设

weixin_33834137的博客 179

如何快速获取SAMM、SMIC等主流微表情数据集?完整申请指南(附避坑技巧)

本文提供了获取SAMM、SMIC等主流微表情数据集的完整申请指南,包括申请前的准备工作、分步申请流程、协议谈判技巧以及数据使用与维护策略。特别针对高分辨率动态捕捉和多模态同步数据等热词,帮助研究者高效获取高质量数据集,避免常见陷阱。

weixin_29057163的博客 420

ANSYS Maxwell:创建即用型 3D 轴向磁通电机模型

Magnet Length” 是磁体的径向长度。“Magnet Thickness” 是磁体的轴向长度。为了对 AFM 进行更详细的分析,用户需要在 ANSYS Maxwell 中运行 3D FEA 分析。对于 2D 模型,它们类似于 MotorCAD 中的模型,后者对等效的直线电机进行建模。单击“确定”后,将创建一个 3D Maxwell 模型。“长度”是转子铁的轴向长度。然后需要定义定子的“磁芯”尺寸和材料。“长度”是定子铁芯的轴向长度。“转子”# 的极数必须与“定子”中定义的磁极相同。

jkh920184196的博客 1152

OpenHarmony I2C驱动排障:从物理层契约到时序波形诊断

I2C是一种基于开漏输出和上拉电阻的同步串行总线协议,其可靠通信高度依赖物理层电气特性与精确时序控制。在OpenHarmony等现代操作系统中,I2C被HDF驱动框架抽象为标准化服务接口,但底层仍需严格遵循SCL/SDA电平翻转、地址匹配、时钟分频及引脚复用等硬件约束。技术价值在于实现跨SoC平台的驱动可移植性,同时保留对寄存器级行为的可控性;典型应用场景包括温湿度传感器、触摸控制器(如GT911)、EEPROM等外设接入。本文聚焦OpenHarmony环境下I2C通信失败的根因分析,结合设备树配置、Hos

weixin_34279184的博客 311

模型预测控制 (MPC, Model Predictive Control) 算法详解及案例分析

模型预测控制是一种基于模型的控制策略,通过在线求解一个有限时域的优化问题,预测系统的未来行为,并根据预测结果调整控制输入,以实现系统的稳定性和性能优化。

闲人编程的博客 2934

I2C外设调试四层漏斗模型:从物理连通到软件协同

I2C总线是嵌入式系统中最常用也最易出错的外设通信协议之一,其开漏结构、双向共享、时序敏感等特性决定了调试不能依赖经验试错,而需遵循‘概念→原理→技术价值→应用场景’的系统化路径。理解I2C协议本质(7位寻址、ACK/NACK机制、上拉驱动)是基础;掌握电气合规性(上升沿时间、噪声容限、电平阈值)决定通信可靠性;借助i2c-tools等工具验证协议握手有效性,可快速区分硬件与软件问题;最终通过设备树配置、驱动加载、权限管理实现全栈协同。本文聚焦Linux嵌入式平台,深度融合万用表初筛、示波器精测、i2cde

weixin_34320159的博客 307

Allegro如何使用Cross Copy命令快速复制器件的位号和丝印外形其他层

在Allegro做PCB设计的时候,如果需要复制器件的位号到其它层是无法直接实现的,如果直接拷贝器件的位号的话,效果如下。但是Allegro的Cross Copy命令是支持复制任何属性的图形到其它层的,下面以复制器件位号和丝印外框为例说明。同样如果使用Z-copy命令,也是无法Z-copy text的,Finds下方texts是灰色的。如何使用Cross Copy命令快速复制器件的位号和丝印外形其他层。另外cap处可以选择线段的端点是圆形,八角形,或者方形的铜皮。拷贝C1013,出现的是C*

weixin_54787054的博客 2671

【实际操作】DenseFusion复现过程详解-YCB-Video数据集

这一篇是在YCB-Video数据集上的训练和测试过程。本次实验建立在实现LineMod数据集训练基础之上,因为前期的环境搭建都是一样的。首先,需要下载YCB-Video数据集,可以自己找找百度网盘资源,大概有两百多G。把下载下来的数据放在/work/DenseFusion/datasets/ycb/下并命名为YCB_Video_Dataset。同样的,激活自己的环境并进入 /work/DenseFusion/下,用命令:./experiments/scripts/train_ycb.sh出现以下内容开始训练

weixin_44564705的博客 3560

GT911双I2C地址机制详解:ADDR引脚电平决定0x14或0x5D

I2C设备地址是嵌入式系统通信的基础概念,其分配原理直接影响总线稳定性与多设备共存能力。GT911作为主流电容触控IC,采用硬件引脚(ADDR)电平编码方式实现双地址切换——接地得7位地址0x14,接高得0x5D,该机制非软件可配置,而是在上电复位瞬间由硬件锁存。这种设计兼顾了产线BOM简化、I2C地址冲突规避及多屏寻址需求,具有显著的工程实用价值。在工业HMI、POS终端、车载中控等对可靠性要求严苛的场景中,ADDR引脚的电平稳定性(如受FPC接触、ESD、PCB噪声影响)直接决定触控功能是否正常。本文聚

weixin_34168880的博客 288

RT-DETR改进策略【注意力机制篇】| 2024 PPA 并行补丁感知注意模块,提高小目标关注度

本文记录的是利用改进检测精度,详细说明了优化原因,注意事项等。原论文在红外小目标检测任务中,小目标在多次下采样操作中容易丢失关键信息。通过替代编码器和解码器基本组件中的传统卷积操作,更好地保留小目标的重要信息。HCF-Net: Hierarchical Context Fusion Network for Infrared Small Object Detection采用多分支特征提取策略,通过不同分支提取不同尺度和层次的特征。利用局部、全局和串行卷积分支,对输入特征张量进行处理。通过控制 patch si

Limiiiing的博客 1646

OpenHarmony I2C实战排障:从物理层到应用层四层穿透指南

I2C是一种基于开漏输出的同步串行通信协议,其可靠性高度依赖物理层信号完整性、协议层时序严格性、驱动层寄存器适配性及系统层资源管理。在OpenHarmony嵌入式开发中,OLED白屏、传感器读数异常、舵机抖动等典型问题,往往源于上拉电阻失配、7位地址误用、ACK/NACK语义误解或设备树clock-frequency配置偏差。掌握万用表测空闲电平、示波器抓START/STOP波形、i2cdetect扫描验证、HDI框架下I2cController标准化调用等工程化手段,可系统性定位并解决I2C通信失败。本文

weixin_34319817的博客 353

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

I2C时钟延展引发的偶发通信超时:根因分析与软硬件优化

在嵌入式系统开发中,I2C总线通信偶发失败往往最难排查,时好时坏、复位后恢复的现象常让人误判为接触不良或干扰。实际上,很多这类问题都源于I2C协议中一个被忽略的机制——时钟延展(Clock Stretching)。从机在内部处理数据或写入Flash时,会主动拉低SCL时钟线以请求主控等待,这本是协议规定的正常“刹车”行为。然而,若主控I2C控制器超时配置过短,或软件模拟I2C缺乏超时保护,便会触发总线超时错误。本文从I2C通信的工程实践出发,详细梳理了从故障现象、波形验证到软硬件协同优化的完整排障路径,并给

weixin_30824479的博客 372

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

下一篇: linux kernel下动态设置一个GPIO输出电平高低
masterbee
博客等级 码龄10年 80粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

masterbee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值