RK3568驱动指南|第十五篇 I2C-第180章 I2C Tools工具讲解

news2025/1/15 17:50:44

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。


【公众号】迅为电子

【粉丝群】258811263(加群获取驱动文档+例程)

【视频观看】嵌入式学习之Linux驱动(第十五篇 I2C_全新升级)_基于RK3568

【购买链接】迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板


第180章 I2C Tools工具讲解

I2C Tools是一套用于访问和调试I2C设备的命令行工具集合。可以帮助开发人员和系统管理员轻松地与I2C设备进行交互,在本章中将分别对I2C Tools工具的下载和安装以及I2C Tools工具的使用进行讲解。

180.1 I2C Tools工具的下载和安装

注:如果使用的是迅为提供的镜像默认已经安装了I2C Tools工具,可以跳过本小节。

I2C Tools工具官网地址如下所示:

I2C Tools - Linux i2c Wiki

在官网中提供了两种源码下载方法,为了方便起见迅为已经将下载好的源码压缩包放在了“iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动例程\110_I2CTools”如下图所示:

然后将该源码包拷贝到虚拟机ubuntu上并解压,解压完成如下图所示: 

然后进入i2c-tools-4.3目录使用以下命令进行编译安装(这里的编译器路径要以实际情况为准)

make CC=/home/topeet/Linux/linux_sdk/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \

AR=/home/topeet/Linux/linux_sdk/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar \

USE_STATIC_LIB=1

编译完成会在tools目录下生成对应的可执行文件,具体如下图所示: 

只需要将上述可执行文件拷贝到开发板上就可以使用了。

如果使用的是buildroot系统,只需要在make menuconfig 图形界面中勾选I2C Tools工具重新编译即可,默认已经勾选了,如下图所示:

而如果使用的是ubuntu或者Debian系统只需要使用命令“sudo apt install i2c-tools”进行安装即可。

至此,关于每个系统的I2C Tools工具的安装就讲解完成了,在下个小节中将会对每个I2C Tools工具的使用进行讲解。

180.2 I2C Tools工具的使用

180.2.1 i2cdetect

i2cdetect 可以用来检测和探测 I2C 总线上连接的设备。具体用法如下:

(1) i2cdetect -V: 输出版本信息

(2)i2cdetect -l: 列出所有的I2C总线

(3)i2cdetect -F 查询总线上设备支持的功能集,例如 i2cdetect -F 1 将列出总线 1 上设备支持的功能。 (4)i2cdetect -a 扫描总线上0x00到0xFF范围内的所有I2C设备地址。例如: i2cdetect -a -y 1将扫描I2C1总线上全部的I2C设备地址,如下图所示:

这里的0x38就是FT5X06触摸芯片的I2C设备地址。

180.2.2 i2cdump

i2cdump可以读取设备上所有寄存器的值,具体用法如下:

(1) i2cdump -V查看版本号:

(2)读取设备寄存器:使用 i2cdump -f -a 1 0x38 命令可以读取I2C设备地址为0x38的所有寄存器值(从0x00到0xFF)。-f 选项用于强制使用设备地址,而 -a 选项则是用于读取整个地址范围。

(3)指定寄存器范围读取,使用 i2cdump -f -r 0x80-0xff 1 0x38 命令可以只读取I2C设备地址为0x38的0x80到0xff范围内的寄存器值。-r 选项用于指定要读取的寄存器地址范围。

180.2.3 i2cset

i2cset 命令用于向I2C设备的特定寄存器写入数据。它的用法如下:

i2cset -f -r 1 0x38 0x80 0x11

这条命令的意思是:

(1)强制使用I2C总线1上的设备地址0x38

(2)向该设备的寄存器地址0x80写入值 0x11

写入完成后,该命令会返回一个确认信息,表示写入是否成功。如果写入失败,则会返回一个错误信息。如下图所示:

180.2.4 i2cget

i2cget 命令用于从 I2C 设备的指定寄存器中读取数据它的用法如下:

i2cget -f 1 0x38 0x80

这条命令的意思是:

(1)强制使用 I2C 总线 1 上的设备地址 0x38

(2)从该设备的寄存器地址 0x80 读取数据

该命令会返回寄存器 0x80 的值。读取成功后,会显示类似 0x11 的十六进制值。如果读取失败,则会返回一个错误信息。

180.2.5 i2ctransfer

i2ctransfer是一个更加强大和灵活的 I2C 操作工具,与之前介绍的 i2cset 和 i2cget 命令相比,它可以在单个命令中完成读写操作。具体用法如下所示:

写操作

i2ctransfer 1 w2@0x38 0x80 0x22

(1)1 表示操作的 I2C 总线编号为 1

(2)w2 表示写入 2 个字节的数据

(3)@0x38 表示设备地址为 0x38

(4)0x80 表示要写入的寄存器地址为 0x80

(5)0x22 表示要写入寄存器的值为 0x22

读操作

i2ctransfer 1 w1@0x38 0x80 r1

(1)1 表示操作的 I2C 总线编号为 1

(2)w1 表示写入 1 个字节的数据

(3)@0x38 表示设备地址为 0x38

(4)0x80 表示要写入的寄存器地址为 0x80

(5)r1 表示读取 1 个字节的数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1886032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

13 Redis-- 数据一致性模型、MySQL 和 Redis 的数据一致性

数据一致性模型 根据一致性的强弱分类,可以将一致性模型按以下顺序排列: 强一致性 > 最终一致性 > 弱一致性 数据一致性模型一般用于分布式系统中,目的是定义多个节点间的同步规范。 在这里,我们将其引入数据库和缓存组…

生命在于学习——Python人工智能原理(3.1.2)

一、概率基本知识 1.3 常见概型 1.3.1 古典概型 定义1 古典概型 若随机事件E满足如下两个条件: (1)样本空间S中只有有限个样本点。 (2)样本空间S中每个样本点发生都是等可能的。 这样的随机试验称为古典概型。 P(A)…

深入剖析高并发服务架构设计的探索与性能分析(1)

深入剖析多线程、协程与事件驱动IO模型的探索与性能分析 Web并发应用场景网站(Website)并发处理场景特点复杂业务逻辑功能点与页面处理高效应对IO并发需求缓存优化处理控制 大浏览量系统的静态改造静态系统通常有如下几方面的特征几种静态化方案的设计及…

人工智能 (AI) 基本概念 入门篇【C#】版

1. 什么是人工智能? 人工智能(Artificial Intelligence, AI)是指计算机系统能够执行通常需要人类智能的任务,如视觉识别、语音识别、决策和语言翻译等。AI的核心是通过算法和数据进行学习和推理,以实现智能行为。 2.…

前端修改audio背景色

1.查看浏览器设置Show user agent shadow DOM是否打开 2.打开可以查看audio Dom /** 去掉默认的背景颜色 */ audio::-webkit-media-controls-enclosure{background-color:unset; } 3.效果图

寻找最适合你的交易风格

与Eagle Trader一起,您将拥有一位坚不可摧的合作伙伴,为您的交易之路增添坚实信心,并重塑交易体验的每一个细节。我们量身定制的交易环境,更能让您精准捕捉并驾驭符合您独特交易风格的卓越条件,让交易之旅更加自由畅快…

软考高级-系统分析师知识点100条速记!

宝子们!上半年软考已经结束一段时间了,准备备考下半年软考高级-系统分析师的小伙伴可以开始准备了,毕竟高级科目的难度可是不低的,相信参加过上半年系分的小伙伴深有体会。 这里给大家整理了100条系分知识点,涵盖全书9…

Mybatis1(JDBC编程和ORM模型 MyBatis简介 实现增删改查 MyBatis生命周期)

目录 一、JDBC编程和ORM模型 1. JDBC回顾 2. JDBC的弊端 3. ORM模型 Mybatis和hibernate 区别: 4. mybatis 解决了jdbc 的问题 二、MyBatis简介 1. MyBatis快速开始 1.1 导入jar包 1.2 引入 mybatis-config.xml 配置文件 1.3 引入 Mapper 映射文件 1.3 测试 …

Charles抓包工具踩坑记录

请添加图片描述 Charles抓包工具 证书问题 输入网址:chls.pro/ssl 第一个下载证书网址,会出现一直加载不出来,无法下载证书的情况 解决:选择下面save Charles Root。。。 2 证书在mac中禁止修改问题 解决也很简单,按照…

计算机视觉概述

The main role of computer vision is to get information through input images. 1、Overview 计算机视觉中关于图像识别有四大类任务: (1)分类-Classification:解决“是什么?”的问题,即给定一张图片或…

【Linux详解】进程地址空间

目录 研究背景 验证地址空间 实验一:父子进程变量地址一致性 实验二:变量值修改后父子进程的差异 分析与结论 实验三:进程地址空间验证 理解进程地址空间 区域与页表 写时拷贝机制 进程地址空间的意义 文章手稿: xmind…

企业需要部署OV证书吗?

一、什么是OV证书? OV证书,即组织验证型SSL/TLS证书。它是网络安全领域中使用的一种证书,在为网站或应用提供中等级别的安全性和可信度。相比于基本的域名验证(DV)证书,OV证书经历了更为严格和全面的验证过…

基于微信小程序的优鲜易购平台设计与实现

系统摘要 随着网络科技的迅速发展以及社会大众消费习惯的转变,微信小程序逐渐以其便捷性和易用性引起了人们的广泛关注。本文意在研发设计并实现一种基于微信小程序开发的优鲜商品易购系统,即一个专注于生鲜产品网上选购服务的买菜网站,利用SpringBoot和Vue.js的技术栈…

SQL语言基础特点、数据库系统

一、SQL的概述 (1) SQL全称: Structured Query Language,是结构化查询语言,用于访问和处理数据库的标准的计算机语言。 (2)SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公…

控制台厂商配额查询

概述 厂商推送限制 每个厂商通道都有对应的厂商配额和 QPS 限制,当请求超过限制且已配置厂商回执时,MobPush会采取以下措施: 当开发者推送请求超过厂商配额时,MobPush将通过自有通道进行消息下发。当开发者推送请求超过厂商 QPS…

TB67S539FTG:先进的2相双极步进电机驱动器

东芝的TB67S539FTG是一款高性能PWM斩波型2相双极步进电机驱动器,旨在满足现代工程应用的严格需求。本文将深入介绍其主要特性、技术规格和功能优势,为潜在客户提供全面的见解,说明为什么TB67S539FTG在市场上独树一帜。 主要特性 先进电流检测…

消息中间件ApacheKafka在windows简单安装

一.背景 之前公司需要API网关管理软件ApacheShenYu,我相信把调用的记录都存到一个数据库。他支持日志推送到kafka,所以,我准备尝试一下通过kafka接收调用的日志信息。第一步,当然是安装kafka了。 二.ApacheKafka的下载 打开下载…

【51单片机入门】速通定时器

文章目录 前言定时器是什么初始化定时器初始化的大概步骤TMOD寄存器C/T寄存器 触发定时器中断是什么中断函数定时器点亮led 总结 前言 在嵌入式系统的开发中,定时器是一个非常重要的组成部分。它们可以用于产生精确的时间延迟,或者在特定的时间间隔内触…

构建RAG+nebula graph(知识图谱KG)

目标:通过利用 LlamaIndex 和 NebulaGraph 为费城费城人队(Philadelphia Phillies)构建一个RAG流程,深入探讨知识图谱。 NebulaGraph 是市场上最好的知识图谱数据库之一。它是开源的、分布式的,并且能够处理具有亿万边…

【postgresql】 数据类型

数字类型 名字存储尺寸描述范围smallint2字节小范围整数-32768 ~32767integer4字节整数的典型选择-2147483648 ~ 2147483647bigint8字节大范围整数-9223372036854775808 ~ 9223372036854775807decimal可变用户指定精度,精确最高小数点前131072位,以及小…