一种是利用系统提供的i2c-dev.c来实现一个i2c适配器的设备文件,然后通过在应用层操作I2C适配器来控制I2C设备;另一种是为I2C从设备独立编写一个设备驱动,不需要i2c-dev.c文件。由于前者比较简单通用性强,我们采用前者来展开。     根据android层次划分,我们照例对开发分为如下几步:     1. 添加HAL层接口
转载 2023-11-18 14:50:54
408阅读
随着智能设备的普及,Android开发者在进行I2C设备的通信时,一直以来都希望能够有通用的代码解决方案。在此博文中,我将详细记录如何解决“Android Studio I2C通用代码”问题,包括版本对比、迁移指南、兼容性处理、实战案例、排错指南和性能优化等方面的内容,帮助开发者们顺利进行项目开发。 ### 版本对比 在这部分,我将根据Android平台的演变历史,通过时间轴分析不同版本之间对
原创 6月前
19阅读
开发环境使用ubuntu 12.04 64bit,代码位于/home/cloverbox,本文档对全志A20 CLOVER BOX开发板适用 1.cloverbox_A20源码编译    a)安装jdk,jdk版本为1.6.0_43;    b)编译lichee源码  首先解压:tar -jxv
写在开始,因工作需要,对I2C的spec文档进行研读,主要工作就是将规范翻译为中文并补充自己的理解,根据每个章节内容进行划分,便于以后查阅,如有错误和疑问欢迎指正交流。目录1.规范介绍:INTRODUCTION TO THE I2C-BUS SPECIFICATION2.基本概念:THE I2C-BUS CONCEPT3.一般特征:GENERAL CHARACTERISTICS4.位传输:BIT
这几天在学的i2c总线,总结的一些。第一次写博客,如果有错,欢迎指出一、I2C系统总体架构   1、I2C系统架构由三个部分组成I2C核心(i2c-core):I2C总线驱动(adapter)和设备驱动的注册、注销方法,i2c_client和i2c_adapter的匹配I2C总线驱动(i2c_adapter,i2c_algorithm):i2c核心对硬件的交流。操作从
转载 2023-08-31 11:33:39
269阅读
Android开发>–内核驱动开发-- I2C设备驱动前言:本次驱动开发是基于高通平台开发的,目的是基于I2C总线,去读取器件的相关信息,然后设置设备的属性值,以备后续的开发使用。开发步骤如下:1、添加设备树节点 1)打开dts文件"LINUX/android/kernel/msm-4.4/arch/arm64/boot/dts/qcom/xxx.dts"具体文件名以实际使用为准。作者这里用到的
转载 2023-08-17 11:49:10
231阅读
二、 使用JNI在应用程序框架层添加服务访问接口       APP应用不能直接访问HAL层,需要JNI层访问HAL模块并向上提供API接口。可以直接提供接口,但建议最好使用服务的方式提供访问。       我们先看JNI如何访问刚才的HAL模块。       进入源码根目录下的
转载 2023-09-24 10:41:01
284阅读
本文基于i2c总线,简述了设备树的使用方式 @目录博客说明开发环境1. 如何使用设备树1.1 u-boot支持设备树1.2 Linux内核支持设备树1.3 如何在开发板中使用设备树2. 设备树介绍2.1 设备树中的设备驱动节点2.2 设备树匹配流程2.2.1 以i2c匹配为例2.2.2 设备树匹配下的程序模板2.3 设备树中的设备节点转换附录参考资料博客
转载 2023-07-16 22:05:28
430阅读
.Android I2C精析基于linux内核开发的arm系统,会用到很多components。要让这些components正常的工作,我们必须了解它们的接口,懂得如何去注册总线,初始化芯片,进而让芯片正常的工作。下面我会介绍在arm开发过程中使用最频繁的一些接口和总线的原理,以及如何在开发的过程中去使用它们。1 I2C总线与接口I2C总线具有结构简单,使用方便的特点。下面我会
I2C是一种总线式结构,它只需要SCL时钟信号线与SDA数据线,两根线就能将连接与总线上的设备实现数据通信,由于它的简便的构造设计,于是成为一种较为常用的通信方式。   由于I2C采用的是主从式通信方式,所以,通信的过程完全由主设备仲裁。在通信之前,必须由主设备发送一个起始信号,决定数据是否可以开始传送,并且在结束通信时,必须再由主设备发送一个结束信号,以表示通信已经结束。&n
转载 2023-07-19 14:42:03
301阅读
Android开发> Android开发工具- 之-I2C TOOLS工具使用前言:在底层开发时,有时需要借助一些工具对驱动进行调试验证。这次讲解的使用的工具是I2C_TOOLS,该工具主要是用来调试验证I2C设备的。接下来看看如何使用吧。1、获取I2C工具 下载地址:I2C_TOOLS 可以根据自己的需要下载相应的版本,作者为了在android编译,编写的android.mk文件能使用,选择了
文章目录一、前言二、系列文章三、准备工作3.1 挑选I2C引脚3.2 测试设备:QMI8658C四、编写设备树节点4.1 查找MUX4.2 修改i2c1引脚配置4.2.1 修改前4.2.2 修改后五、编译、烧录dt.img5.1 烧录后效果六、编写test程序6.1 创建文件6.2 源码:Android.mk6.3 源码:i2c-slaver.c6.4 编译test程序七、测试7.1 部署 i2
# Android 新增 I2C 设备驱动的实现 在Android操作系统中,I2C (Inter-Integrated Circuit) 是一种广泛使用的串行总线协议,用于连接多个低速设备。在嵌入式系统和移动设备中,I2C常用于传感器、显示器等外部设备的通信。如果你希望在Android平台上实现一个I2C设备的驱动程序,以下将为你提供一个完整的步骤,包括示例代码,流程图和甘特图。 ## 1.
原创 8月前
74阅读
遇到i2c通信失败的情况,可从下面几个方面入手。1.电源,复位脚状态确认,注意芯片规格书需要配置的特殊信号脚。 2.留意同一路i2c的其他设备,如有存在设备没上电,或者复位脚状态异常,都可能拉低i2c引脚,导致i2c死锁。 3.正确配置i2c,量i2c波形,一般i2c都预留测试点,遇到没有测试点的情况,只能通过飞线来测量信号了。怀疑该路i2c的问题,将芯片接到另一组i2c去尝试(或者换其他芯片看是
I2C协议已经用了很多了,但是呢,在硬件设计方面,基本也是只会抄抄电路,并没有理解其中的原理和细节。这一章我们具体要说说需要怎么设计I2C电路。1. 什么是I2CI2C Bus(Inter-Integrated Circuit Bus) 最早是由Philips半导体(现被NXP收购)开发的两线时串行总线,常用于微控制器与外设之间的连接。这里要注意IIC是为了与低速设备通信而发明的,所以IIC的传
一、I2C总线原理        I2C是一种常用的串行总线,由串行数据线SDA 和串行时钟线SCL组成。I2C是一种多主机控制总线,它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以,而 I2C 是基于multi master机制,一条总线上可允许多个maste
一、I2C的两条总线I2C 总线是一个半双工通信协议,I2C上有两条总线,一条为时钟线(SCL),一条为数据线(SDA),这两条线默认被拉高。原因是I2C的设计者设计的原理就让这两条线只能被拉低,而不能被拉高。二、通讯方式在 I2C 协议中有四种信号:起始信号、应答信号、非应答信号和结束信号。当 SDA 和 SCL 同时为高电平时,总线处于空闲状态。 I2C 的协议定义了通讯的起始和停止信号、数据
一、简介 两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。二、技术性能 工作速率有100Kbit/s、400Kbi
I2C总线属于半双工,有一条SDA线和SCL线,前者数据线,后者时钟线,内部使用开漏驱动,只能拉低不能拉高,但可以给SDA和SCL加上拉电阻将其拉高,两者初始电平都是高电平具体流程如图1.起始位:当SCL高电平时,将SDA拉低,表示准备开始接受信号2.地址位:主机发送从机的地址进行匹配,每个从机的地址唯一,只有匹配才会开启传输3.读写位:从机的七位地址发送完后跟一个读写位,0为写(主到从),1为读
1、I2C总线简介  I2C总线是一种由PHILIPS公司开发的两线串行通讯总线,用于连接为控制器及其外围设备。  I2C串行通讯总线由两条线组成:  时钟线SCL。  数据线SDA。  时钟线SCL用来同步数据的传输,数据线SDA用来传输或读取数据。  I2C总线通信设备之间常用连接方式如下:  总线一般是指多个设备共用的信号线,比如上图中的SCL总线和SDA总线,这两个总线组成了I2C通讯总线
  • 1
  • 2
  • 3
  • 4
  • 5