简单介绍I2C协议 1.协议特点引脚少,硬件实现简单,不需要USART,CAN的外部收发设备广泛用于系统内多个集成电路之间的通信2.物理层@总线总线可以挂在多个主从通讯设备它是一个支持多设备的总线,总线指的是多个设备共用的信号线。一条I2C总线支持多个主机和多个通信。两条线路:一条传输数据,一条传输时钟信号一个I2C总线只使用两条线路,一条是串行数据
转载 2024-01-10 18:32:16
366阅读
二、 使用JNI在应用程序框架层添加服务访问接口       APP应用不能直接访问HAL层,需要JNI层访问HAL模块并向上提供API接口。可以直接提供接口,但建议最好使用服务的方式提供访问。       我们先看JNI如何访问刚才的HAL模块。       进入源码根目录下的
转载 2023-09-24 10:41:01
284阅读
一种是利用系统提供的i2c-dev.c来实现一个i2c适配器的设备文件,然后通过在应用层操作I2C适配器来控制I2C设备;另一种是为I2C设备独立编写一个设备驱动,不需要i2c-dev.c文件。由于前者比较简单通用性强,我们采用前者来展开。     根据android层次划分,我们照例对开发分为如下几步:     1. 添加HAL层接口
转载 2023-11-18 14:50:54
408阅读
   Linux I2C驱动体系结构主要由3部分组成,即I2C设备驱动,I2C核心层、I2C总线驱动。设备驱动层主要是针对不同的I2C硬件设备编写的驱动程序,I2C总线驱动是对I2C硬件体系结构中适配器端的实现,适配器可以理解为软件上抽象出来的i2c接口,这个接口可以对应I2C总线控制器接口,也可以对应用用GPIO模拟的I2C控制器接口。I2C核心层是I2C总线驱动和I2C设备驱动的中
转载 2023-07-11 22:58:10
166阅读
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阅读
开发环境使用ubuntu 12.04 64bit,代码位于/home/cloverbox,本文档对全志A20 CLOVER BOX开发板适用 1.cloverbox_A20源码编译    a)安装jdk,jdk版本为1.6.0_43;    b)编译lichee源码  首先解压:tar -jxv
I2C是一种总线式结构,它只需要SCL时钟信号线SDA数据线,两根线就能将连接与总线上的设备实现数据通信,由于它的简便的构造设计,于是成为一种较为常用的通信方式。   由于I2C采用的是主从式通信方式,所以,通信的过程完全由主设备仲裁。在通信之前,必须由主设备发送一个起始信号,决定数据是否可以开始传送,并且在结束通信时,必须再由主设备发送一个结束信号,以表示通信已经结束。&n
转载 2023-07-19 14:42:03
301阅读
.Android I2C精析基于linux内核开发的arm系统,会用到很多components。要让这些components正常的工作,我们必须了解它们的接口,懂得如何去注册总线,初始化芯片,进而让芯片正常的工作。下面我会介绍在arm开发过程中使用最频繁的一些接口和总线的原理,以及如何在开发的过程中去使用它们。1 I2C总线接口I2C总线具有结构简单,使用方便的特点。下面我会
本文基于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阅读
这几天在学的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阅读
写在开始,因工作需要,对I2C的spec文档进行研读,主要工作就是将规范翻译为中文并补充自己的理解,根据每个章节内容进行划分,便于以后查阅,如有错误和疑问欢迎指正交流。目录1.规范介绍:INTRODUCTION TO THE I2C-BUS SPECIFICATION2.基本概念:THE I2C-BUS CONCEPT3.一般特征:GENERAL CHARACTERISTICS4.位传输:BIT
文章目录一、前言二、系列文章三、准备工作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开发> Android开发工具- 之-I2C TOOLS工具使用前言:在底层开发时,有时需要借助一些工具对驱动进行调试验证。这次讲解的使用的工具是I2C_TOOLS,该工具主要是用来调试验证I2C设备的。接下来看看如何使用吧。1、获取I2C工具 下载地址:I2C_TOOLS 可以根据自己的需要下载相应的版本,作者为了在android编译,编写的android.mk文件能使用,选择了
本文主要参考自《STM32库开发实战》,想进一步了解I2C内容,请参考该书。1. I2C协议简介I2C(Inter-Integrated Circuit)协议是由Philips公司开发的,由于其具备引脚少、硬件实现简单、可扩展性强、不需要如USART、CAN的外部收发设备等特点,现在被广泛的使用在系统内多个IC间的通信。1.1 物理层它只使用两条总线线路:一条双向串行数据线(SDA),一条串行时钟
SMBUS(系统管理总线)基于I2C总线,主要用于电池管理系统中。它工作在主/模式:主器件提供时钟,在其发起一次传输时提供一个起始位,在其终止一次传输时提供一个停止位;器件拥有一个唯一的7或10位器件地址。 SMBus只工作在从10kHz到最高100kHz(I2C则有100K/400K/3.45MHZ)。最低工作频率10kHz是由SMBus超时功能决定的,当SCL(主机提供)太低而超过35
转载 2019-08-29 15:31:00
1168阅读
2评论
Linux作为一个开源操作系统,广泛应用于各种设备和系统中。在Linux系统中,设备之间的通信是通过各种接口和协议进行的。其中,I2C(Inter-Integrated Circuit)是一种常见的串行通信协议,用于连接主控制器和各种外设。 在Linux系统中,通过使用相应的驱动程序和工具,可以方便地实现对I2C设备的控制和通信。其中,红帽(Red Hat)作为一家知名的Linux发行版提供商,
原创 2024-03-20 10:04:58
130阅读
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通讯总线
一、简介 两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。二、技术性能 工作速率有100Kbit/s、400Kbi
一、I2C的两条总线I2C 总线是一个半双工通信协议,I2C上有两条总线,一条为时钟线(SCL),一条为数据线(SDA),这两条线默认被拉高。原因是I2C的设计者设计的原理就让这两条线只能被拉低,而不能被拉高。二、通讯方式在 I2C 协议中有四种信号:起始信号、应答信号、非应答信号和结束信号。当 SDA 和 SCL 同时为高电平时,总线处于空闲状态。 I2C 的协议定义了通讯的起始和停止信号、数据
  • 1
  • 2
  • 3
  • 4
  • 5