mtk6765上i2c-tools的使用
1 下载i2c-tools
从开源网站http://dl.lm-sensors.org/i2c-tools/releases/下载i2c-tools
几个版本都可以用,可以选择下载i2c-tools-4.3
2 到官网下载交叉编译环境 gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
http://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/
3 到i2c-tools-4.3下打开Makefile修改指定交叉编译环境路径
COMPILE_PREFIX:= /code/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
PREFIX = system
CC := $(COMPILE_PREFIX)gcc
执行makefile生成i2cdetect等执行文件
4 对于基于平台mt6765的手机安卓系统,i2c-tools-4.3下添加Android.mk文件
参考https://www.cnblogs.com/lialong1st/p/11637011.html添加
LOCAL_PATH:= $(call my-dir)
################### i2c-tools #########################
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE := i2c-tools
LOCAL_SRC_FILES := \
tools/i2cbusses.c \
tools/util.c \
lib/smbus.c
LOCAL_C_INCLUDES += \
$(LOCAL_PATH) \
$(LOCAL_PATH)/include
#LOCAL_CFLAGS := -g -Wall -Werror -Wno-unused-parameter
include $(BUILD_STATIC_LIBRARY)
################### i2cdetect #########################
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE:=i2cdetect
LOCAL_SRC_FILES:= \
tools/i2cdetect.c
LOCAL_C_INCLUDES += \
$(LOCAL_PATH) \
$(LOCAL_PATH)/include
LOCAL_SHARED_LIBRARIES:= \
libc
LOCAL_STATIC_LIBRARIES := \
i2c-tools
LOCAL_CPPFLAGS += -DANDROID
include $(BUILD_EXECUTABLE)
#################### i2cget ###########################
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE:=i2cget
LOCAL_SRC_FILES:= \
tools/i2cget.c
LOCAL_C_INCLUDES += \
$(LOCAL_PATH) \
$(LOCAL_PATH)/include
LOCAL_SHARED_LIBRARIES:= \
libc
LOCAL_STATIC_LIBRARIES := \
i2c-tools
LOCAL_CPPFLAGS += -DANDROID
include $(BUILD_EXECUTABLE)
##################### i2cset ##########################
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE:=i2cset
LOCAL_SRC_FILES:= \
tools/i2cset.c
LOCAL_C_INCLUDES += \
$(LOCAL_PATH) \
$(LOCAL_PATH)/include
LOCAL_SHARED_LIBRARIES:= \
libc
LOCAL_STATIC_LIBRARIES := \
i2c-tools
LOCAL_CPPFLAGS += -DANDROID
include $(BUILD_EXECUTABLE)
##################### i2cdump #########################
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE:=i2cdump
LOCAL_SRC_FILES:= \
tools/i2cdump.c
LOCAL_C_INCLUDES += \
$(LOCAL_PATH) \
$(LOCAL_PATH)/include
LOCAL_SHARED_LIBRARIES:= \
libc
LOCAL_STATIC_LIBRARIES := \
i2c-tools
LOCAL_CPPFLAGS += -DANDROID
include $(BUILD_EXECUTABLE)
################### i2ctransfer #######################
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE:=i2ctransfer
LOCAL_SRC_FILES:= \
tools/i2ctransfer.c
LOCAL_C_INCLUDES += \
$(LOCAL_PATH) \
$(LOCAL_PATH)/include
LOCAL_SHARED_LIBRARIES:= \
libc
LOCAL_STATIC_LIBRARIES := \
i2c-tools
LOCAL_CPPFLAGS += -DANDROID
include $(BUILD_EXECUTABLE)
将i2c-tools-4.3拷贝至工程system/core下面
执行mmm system/core/i2c-tools-4.3
就会在system/bin下生成i2cdetect,i2cget,i2cset,i2cdump,i2ctransfer等文件
此时将这些执行文件加载进系统,可能会提示错误,如执行i2cdetect -y 1
Could not open file `/dev/i2c-1' or `/dev/i2c/1'
需要在kernel-4.9/arch/arm64/configs将对应的xxx_64_bsp_defconfig将如下编译开关打开,重新编译系统
CONFIG_I2C_CHARDEV=y
5 工具使用
(1)执行i2cdetect 1,扫描/dev/i2c-1后面的设备
k62v1_64_bsp:/ # i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x08-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: 30 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- UU -- -- -- -- --
70: -- -- -- -- -- -- -- --
可以看到,i2c-1,后面挂的设备有
5B,6A
(2)用i2cdump查看器件所有寄存器的值,如:查看0x5B设备上的所有寄存器的值,i2cdump -f -y 1 0x5B
k62v1_64_bsp:/ # i2cdump -f -y 1 0x5B
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 ................
10: 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #...............
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
40: 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 ................
50: 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #...............
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
80: 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 ................
90: 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #...............
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
c0: 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 ................
d0: 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #...............
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
通过i2cset设置单个寄存器值,用i2cget读取单个寄存器值,在调试阶段不断更新效果,带确定最终效果后,通过上面指令把寄存器值都读出来,写到驱动的初始化代码中去.
简单操作下如:
k62v1_64_bsp:/ # i2cget -f -y 1 0x5b 0xd0
0x23
读出0x5B设备的0xd0寄存器值为0x23
k62v1_64_bsp:/ # i2cset -f -y 1 0x5b 0xd0 0x24
设置0x5B设备的0xd0寄存器值为0x24
在调试的过程中,还可以接示波器通过发送读写指令抓取i2c波形.
mtk6765上i2c-tools的使用相关推荐
- i2c tools ds90ub927芯片使用
i2c tools && ds90ub927芯片使用: **下载:**git clone git://git.kernel.org/pub/scm/utils/i2c-tools/i2 ...
- Hi3516A开发--i2c tools安装和使用
一.首先下载安装包: i2c-tools-3.0.1 linux上调试i2c的工具 源码 二.解压安装 1.解压tar -zxvf i2c-tools-3.0.1.tar.gz 2.修改Makefil ...
- Linux的I2C 设备驱动 -- mini2440 上i2c接口触摸屏驱动
本篇记录在友善之臂 mini2440 平台上挂载I2C接口触摸屏的驱动开发过程. 内核版本linux-2.6.32.2, 平台是ARM9 S3C2440+I2C接口的触摸屏 如上篇 Linux的I2C ...
- 【GD32片上i2c外设应用】温湿度传感器htu21d
文章目录 一.温湿度传感器htu21d介绍 1.1 参数 1.1.1 湿度参数 1.1.2 温度参数 1.2 芯片i2c协议 1.2.1 器件地址 1.2.2 读取温湿度 1.2.3 芯片复位 二.g ...
- 应用上i2c通过调用ioctl来读写设备
1. 简介 在应用上通过ioctl来读写i2c设备 2. 结构体 (1) i2c_msg结构体 /** I2C Message - used for pure i2c transaction, als ...
- stm32驱动ssd1306配置_STM32F7片上硬件I2C驱动OLED(SSD1306),寄存器配置的。
最近在学习STM32F7的片上I2C硬件,看到原子哥的OLED模块可以用I2C来驱动,于是就试了下.现在将试验结果与大家分享,目前还没有毕业经历过的项目比较少,只是为了抛砖引玉,有什么不合理的地方,请 ...
- Linux I2C工具查看配置I2C设备【转】
转自:http://blog.chinaunix.net/uid-26895763-id-3478882.html 在處理音訊相關的問題時,我通常會找個方法來讀寫codec中register的值.幸好 ...
- linux i2c调试命令,嵌入式Linux下I2C接口调试
By Toradex秦海 1).简介 I2C是嵌入式设备最为常用的接口之一,常用于如下面这些应用场景,因此本文就基于嵌入式Linux演示在User Space进行I2C设备调试. - Digital ...
- 查看树莓派I2C设备是否正常
前言 在进行II2相关程序的开发时候,很多时候我们必须要确认硬件是否连接征程,设备是否按照我们的设想正常工作,设备地址多少.因此我们需要一个I2C tools来帮助我们 linux下安装 在控制台输入 ...
- A 平台I2C 的使用
下面分享一下amlogic 平台I2C 使用的一点心得. I2C controllers 概述 I2C 是Inter-Integrated Circuit的缩写,发音为"eye-square ...
最新文章
- Spring官宣新家族成员:Spring Authorization Server!
- 网站如何做到完全不需要 jQuery ?
- 工作日志-W1444
- PostgreSQL在何处处理 sql查询之九
- 通信网络基础期末复习-第一章和第二章-概论和端到端的传输协议
- k8s的list-watch机制和 pod调度约束
- SAP Cloud for Customer里的ticket回复UI的实现
- 通过mod_limitipconn模块来限制apache的并发连接数
- 人群频率 | gnomAD数据库 (二) 后台数据的获取及质量评估
- java后台面试题整理
- RAC srvctl 命令报 libpthread.so.0 cannot open shared object file No such file or directory 解决方法...
- JConsole监控远程linux下的JVM
- [20180626]函数与标量子查询14.txt
- C#关键字=四六级核心词汇
- 【登陆设计】-【技术上】你会做WEB上的用户登录功能吗?
- 计算机win7不断重启,Win7旗舰版系统电脑反复自动重启怎么办?
- 灵遁者第一部诗歌集《触摸世界》上集40首诗歌欣赏
- PDF转CAD在线怎么转换?分享个在线转换的方法
- 微信小程序绑定手机号js代码
- Keras自定义损失函数出现:ValueError: Unknown loss function: focal_loss
热门文章
- [转贴]怎样学好法语?
- 计算机机房无尘,计算机机房建设标准
- Windows 常用软件清单
- 计算机科学导论5版答案,5计算机科学导论习题答案.doc
- 笔记·模拟电子技术基础——郑益慧老师
- 模拟电路,包括低频(模拟电子技术基础)和高频(高频电子线路)
- 数字图像处理matlab蔡利梅,数字图像处理:使用MATLAB分析与实现:using MATLAB
- Unity3d 周分享(20期 2019.6.30 )
- 把VSCode当作记事本使用
- 一年中所有节日的排列顺序_中国传统节日有哪些 按顺序排列全部