![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【I2C】
玛丽奥ZJY
这个作者很懒,什么都没留下…
展开
-
linux下I2C驱动架构全面分析
I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线。 因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中。 linux下的驱动思路 在linux系转载 2017-12-19 15:32:10 · 250 阅读 · 0 评论 -
查看树莓派I2C设备是否正常
版权声明:商业用途请联系博主,非商业转载请标明出处。目录(?)[+]前言在进行II2相关程序的开发时候,很多时候我们必须要确认硬件是否连接征程,设备是否按照我们的设想正常工作,设备地址多少。因此我们需要一个I2C tools来帮助我们linux下安装在控制台输入:sudo apt-get install i2c-t转载 2018-02-05 20:28:41 · 5840 阅读 · 6 评论 -
I2C器件的从设备地址设置
I2C中24C02从地址设置 今天看了一下AT24C02的程序,发现“从设备地址”有点不明白,现在以AT24C02为例子说说我的见解。 首先,先看一下AT24C02的芯片资料,我们会发现AT24C02有三个地址A0,A1,A2。同时,我们会在资料的Device Address介绍发现I2C器件一共有七位地址码,还有一位是读/写(R/W)操作位,而在AT24C02的前四位转载 2018-02-06 13:58:22 · 6812 阅读 · 0 评论 -
i2c总线协议的工作原理详解
一、概述 1、I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发) SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成\线与\关系。 I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平(SDL=1;SCL=1)。连到总线上的任一器件输出的低电平,都将使...转载 2018-04-02 13:11:15 · 6508 阅读 · 0 评论 -
I2C死锁原因及解决方法
死锁总线表现为:SCL为高,SDA一直为低 现象:单片机采用硬件i2c读取E2PROM,当单片机复位时,会有概率出现再无法与E2PROM通信,此时SCL为高,SDA一直为低原因:当单片机正在和E2PROM通信,如果主正好发生打算发第9个时钟,此时SCL为高,而从开始拉低SDA为低做准备(作为ACK信号),等待主SCL变低后,从再释放SDA为高。如果此时正好单片机复位,主SCL还没来得及变低,直接...转载 2018-06-04 09:59:31 · 1763 阅读 · 0 评论 -
Linux3.5下I2C设备驱动程序
知识背景:1. I2C协议2. 4412处理器I2C接口说明3. bus-dev-drv模型(详见文章-Linux下驱动:分层、分离机制学习笔记)4. linux内核下驱动设计基本知识一、驱动框架 以4412+linux3.5平台为例,说明Linux下I2C设备驱动程序。 如果一条I2C总线上只连接一个I2C设备,那么只需要以字符型设备驱动框架来写驱动即可(填充file_op...转载 2018-06-04 10:09:58 · 227 阅读 · 0 评论 -
Exynos4412 IIC总线驱动开发(二)—— IIC 驱动开发
前面在Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析中学习了IIC驱动的架构,下面进入我们的驱动开发过程 首先看一张代码层次图,有助于我们的理解 上面这些代码的展示是告诉我们:linux内核和芯片提供商为我们的的驱动程序提供了 i2c驱动的框架,以及框架底层与硬件相关的代码的实现。 剩下的就是针对挂载...转载 2018-05-02 22:12:35 · 237 阅读 · 0 评论 -
DS1337实时时钟接口电路
基于ARM的嵌入式系统中DS1337实时时钟接口电路及Linux驱动程序设计2008-06-12 09:06作者:张桦,傅丰林 时间:2007-04-30 来源: 摘要:介绍了基于I2C总线接口的实时时钟芯片DS1337的应用功能,给出了DS1337在基于EP9315ARM芯片的嵌入式系统中的接口转载 2017-10-21 14:57:50 · 1621 阅读 · 0 评论 -
Linux I2C工具查看配置I2C设备
1.安装 I2C驱动载入和速率修改请查看博文【树莓派学习笔记——I2C设备载入和速率设置】。2.I2C总线扫描 通过i2cdetect -l指令可以查看树莓派上的I2C总线,从返回的结果来看树莓派含有两个I2C总线,通过阅读相关的资料,树莓派1代使用I2C0,而树莓派2代使用I2C1。[plain] view plain copy转载 2017-11-28 15:11:52 · 14897 阅读 · 1 评论 -
uboot移植i2c
uboot作为kernel启动的服务程序,内部支持很多的组件。部分需求会想让uboot支持eeprom存储或者rtc的功能支持,这样就需要uboot支持i2c的驱动。下下来的uboot里面就是有i2c的驱动例子的,这里就分析一下供移植模仿。 在uboot/drivers/i2c 下面就是几个i2c驱动的例子。 这里我们选择davinci_i2c.c来分析。这个是写的比较清楚和简单的。第一步转载 2017-12-11 22:02:29 · 1543 阅读 · 0 评论 -
u-boot移植随笔(8):EEPROM移植及测试
EPROM说简单也简单,说难自己也捣鼓好几天。开发板上的EEPROM是AT24C08,大小1024个字节,使用I2C接口。——严重注意,EEPROM是指设备,而I2C是指接口,两者有着很密切的关系,但不可混淆它们,这点必须注意。u-boot已经在“封装”好了I2C和EEPROM操作函数了,而底层的24×0的I2C函数也已经实现好了。我们所要做的就是开几个宏定义就OK了。移植之前我在go转载 2017-12-11 22:03:55 · 1151 阅读 · 0 评论 -
Uboot关于i2c和EEPROM的命令
在uboot命令行下输入i2c并回车,会打印出i2c所有命令的使用方法:比如i2c dev会打印出目前挂载的i2c设备:i2c probe是对i2c设备地址的寻找:i2c md命令是从i2c设备读取数据,在这里本人用的是beaglebone black,然后就选择EEPROM这个内置的i2c设备进行读取要注转载 2017-12-18 16:08:47 · 1750 阅读 · 0 评论 -
基于S3C2440的嵌入式Linux驱动——AT24C02(EEPROM I2C接口)驱动解读
本文将介绍Linux中AT24C02驱动。AT24C02是一种EEPROM,使用I2C接口来访问。在开发板中,使用I2C控制器0和AT24C02连接,这里就不给出原理图了,如需要,可以搜索TQ2440开发板的原理图。目标平台:TQ2440 CPU:s3c2440内核版本:2.6.32本文所有的代码均位于内核源码:linux/drivers/misc/ee转载 2017-12-18 23:51:15 · 465 阅读 · 0 评论 -
Zynq平台下linux的I2C驱动(RTC+EEPROM)
现在ARM下对SoC开发板的硬件描述都是采用devicetree文件,使用linux自带的dtc程序将dts编译成dtb之后,由u-boot将dtb导入给linux内核,linux内核读取dtb,然后注册设备的resource,linux内核使用of_系列函数API读取硬件资源。具体的说明可以看下宋宝华的bloghttp://blog.csdn.net/21cnbao/articl转载 2017-12-19 00:09:21 · 1668 阅读 · 0 评论