IIC
LouisGou
我很懒,什么都没有写
展开
-
I2C总线(四)I2C子系统(1)
1. I2C子系统架构1.1 I2C核心I2C总线和I2C设备驱动的中间枢纽,有两个作用:1)提供了I2C总线驱动和设备驱动的注册、注销方法等。2)使I2C设备驱动可以访问使用I2C控制器驱动提供的向I2C总线传递数据所使用的方法、函数1.2 I2C总线驱动(控制器驱动 platform bus)对I2C控制器的驱动实现,控制器可以在CPU外部,也可以集成在CPU内部(I2...原创 2018-04-07 22:09:57 · 361 阅读 · 0 评论 -
IIC 及遇到的问题
一、概念 半双工通信方式1、空闲状态2、开始信号3、停止信号4、应答信号5、数据的有效性6、数据传输二、遇到的问题1、GPIO模拟IIC速度慢,无法达到400k速度由于模拟iic的程序中调用了太多延时函数,导致程序执行的时间有点长解决方法: 修改延时时间2、发送、接收如果存在问题,一般都是时序有问题,按照手册等资料进行修改就可以解决问题...原创 2018-03-18 16:38:46 · 1304 阅读 · 0 评论 -
I2C总线(三)裸机驱动程序
S5PV210的I2C控制器有三个主要的寄存器,分别是I2CCON、I2CSTAT、I2CDS。SOC内部内置了硬件控制器来控制通讯时序,写软件时只需要向控制器中写入配置值即可,控制器会产生适当的时序在通信线上和对方通信。1. 结构框图(1)时钟部分,时钟来源是PCLK_PSYS,经过内部分频最终得到I2C控制器的CLK,通信中这个CLK会通过SCL线传给从设备。(2)I2C总线...原创 2018-01-19 22:57:52 · 1016 阅读 · 0 评论 -
I2C总线(二)EEPROM - AT24C02简介
概念:电可擦除可编程只读存储器,类似于flash的固态存储器。 1. EEPROM 可以按位擦写,flash只能大片擦除2. EEPROM 一般容量都不大,一般都在64Kbit以下3. AT24C02 存储容量2K bit,内容分为323页,每页8Byte,共256Byte,操作时有两种寻址方式:芯片寻址和片内子地址寻址。...原创 2018-01-17 22:28:08 · 2634 阅读 · 0 评论 -
I2C总线(一)硬件结构 及 IIC时序
一、电器特性概念:I2C中心是 两线式 串行总线,用于连接微控制器及其外围设备。I2C总线只有两根双向信号线:SDA:数据线 SCL:时钟线控制原理:通过控制SCL和SDA线高低电平时序,产生I2C总线协议所需的信号进行数据传输。在总线空闲状态,这两根线一般被上面所接的上拉电阻拉高,保持高电平。I2C传输速率:100kbit/s ~ 3.4Mbit/s二、总线寻...原创 2018-01-17 21:08:58 · 8766 阅读 · 0 评论 -
I2C总线(四)I2C子系统(2)
分为应用层、内核层 以及硬件层。主要分析内核空间部分,内核空间部分可以分为:IIC设备驱动、IIC核心以及IIC总线驱动1、IIC核心IIC核心提供IIC总线驱动和设备驱动的注册、注销方法,IIC通信方法(algorithm)上层的,与具体的适配器无关的代码以及探测设备、检测设备地址的上层代码等。2、IIC总线驱动IIC总线驱动是对IIC硬件体系结构中适配器端的实现,就是怎样操...原创 2018-09-26 21:37:45 · 607 阅读 · 0 评论 -
I2C总线(五)I2C子系统(3)-— EEPROM实例
这一篇主要是在友善的Smart210开发板上写一个符合linux的iic驱动模型的设备驱动程序,这样能有一个更感性的认识。开发环境介绍:主机linux版本:Ubuntu18.04开发板:三星的Louis210嵌入式linux版本:linux-3.10.46交叉编译器:arm-linux-gcc-4.3.3硬件简单介绍:从图可以看出来EEPROM是和Louis210上的第0个...原创 2018-09-28 22:34:29 · 512 阅读 · 1 评论