i2c
“i2c”相关的资料有哪些?“i2c”相关的范文有哪些?怎么写?下面是小编为您精心整理的“i2c”相关范文大全或资料大全,欢迎大家分享。
I2C
I2C简述
I2C是飞利浦半导体公式开发的一种两线式串行总线,用于连接微控制器和外围总线,其主要特点是引脚少,总线连接简单,结构紧凑,总线上增加器件不影响系统正常工作,系统修改和可扩展性好。 I2C模块的特点: 一. I2C协议技术性能:
工作速率有100K和400K及高速模式3.4Mb/s; 支持多机通讯;
支持多主控模块,但同一时刻只允许有一个主控; 由数据线SDA和时钟SCL构成的串行总线;
每个电路和模块都有唯一的地址; 每个器件可以使用独立电源
二. I2C协议基本工作原理:
以启动信号START来掌管总线,以停止信号STOP来释放总线; 每次通讯以START开始,以STOP结束;
启动信号START后紧接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R. /W位为0表示由主控向被控器件写数据,R/W为1表示由主控向被控器件读数据;
当被控器件检测到收到的地址与自己的地址相同时,在第9个时钟期间反馈应答信号; 每个数据字节在传送时都是高位(MSB)在前;
写通讯过程:
I2C总线原理
I2C总线原理
I2C即Inter IC,由Philips公司开发,是当今电子设计中应用非常广泛的串行总线之一,主要用于电压、温度监控,EEPROM数据的读写,光模块的管理等。
I2C总线只有两根线,SCL和SDA,SCL即Serial Clock,串行参考时钟,
SDA即Serial Data,串行数据。
?I2C总线的速率能达到多少? 标准模式下:100Kbps 快速模式下:400Kbps 高速模式下:3.4Mbps I2C总线结构如下图所示:
如上图所示,I2C是OC或OD输出结构,使用时必须在芯片外部进行上拉,上拉电阻R的取值根据I2C总线上所挂器件数量及I2C总线的速率有关,一般是标准模式下R选择10kohm,快速模式下R选取1kohm,I2C总线上挂的I2C器件越多,就要求I2C的驱动能力越强,R的取值就要越小,实际设计中,一般是先选取4.7kohm上拉电阻,然后在调试的时候根据实测的I2C波形再调整R的值。
?I2C总线上最多能挂多少个I2C器件?
I2C总线上允许挂接I2C器件的数量由两个条件决定:
1).I2C从设
I2C总线接口
I2C总线接口
S3C44B0X I2C总线概述
I2C是一种双向两线制的串行数据传输标准总线。S3C44B0X RISC微处理器支持多主I2C串行接口。专用串行数据线SDA和串行时钟线SCL在总线控制器和外围设备之间传送信息,它们都连在I2C总线上。SDA和SCL线都是双向的。
在多主I2C模式下,多个S3C44B0X RISC微处理器可以从设备接收数据或传送数据到设备。启动数据传送给I2C总线的主设备也负责终止数据的传送。S3C44B0X中的I2C总线使用了标准的优先级仲裁过程。
为了控制多主I2C操作,必须为以下寄存器赋值:多主I2C控制寄存器(IICCON)、多22主IC控制/状态寄存器(IICSTAT)、多主IC Tx/Rx数据移位寄存器(IICDS)和多主I2C地址寄存器(IICADD)。
当I2C空闲时,SDA和SCL线都处于高电平。SDA由高电平到低电平的转变能够产生启动条件;当SCL在高电平保持稳定时,SDA由低电平到高电平的转变能够产生停止条件。
启动和停止条件一般由主设备产生。启动条件产生后,被放到总线上的第一个数据字节的7位地址值能够决定总线主设备所选择的从设备,第8位决定了传送的方向(读或写)。
放到SDA线上的每一
I2C读写流程
I2C读写流程
I2C数据通信是由数据线(SDA)和一根时钟线(SCL)组成 先对I2C初始化:主模式、中断向量IRQ中断、总线速率 数据读写流程:
1、 主设备发出开始信号(Start):
开始信号(Start):时钟线(SCL)为高电平期间,数据线(SDA)由高变低,即为一个开始信号。
2、主设备发出1字节的从设备地址信息,其中最低位为读写控制码(0为写,1为读),高7
位为从机器地址码。
如AT24C256地址: 1 0 1 0 0 A1 A0 R/W
时钟IC:M41T81 1 1 0 1 0 0 0 R/W 3、 从设备发出认可信号:
应答信号(Ack):即认可信号,分为两种情况:(a)、主设备在写从设备时,每正确写完1字节数据,从设备将在下一个时钟周期把数据线(SDA)拉低,即为一个应答信号。(b)、主设备在读从设备时,每正确读完1字节数据,主设备将在下一个时钟周期把数据线(SDA)拉低,即为一个应答信号。注:在读从设备时,主设备在最后一个字节数据接收完毕以后不发出应答信号,而是直接发出结束信号。
4、 主设备开始对从设备进行读写操作。如果是读操作,则每读取1字节,主设备会发送一个应答
信号(Ack)给从设备,如果是写操
I2C和SPI - 图文
SPI/I2C总线
虽然现实世界中的信号都是模拟信号,但是越来越多的模拟IC产品通过数字接口实现通讯。微处理器通过几条总线控制周边的设备,比如:模/数转换器(ADC),数/模转换器(DAC),智能电池,端口扩展,EEPROM以及温度传感器。
与数据的平行传输接口不同,串行数据通过两条、三条或者四条数据/时钟总线连续地传输比特数据。虽然并行的总线具有传输速度快的特点,但是串行总线具有使用较少的控制和数据线的优点。2线和3线的总线在大多数微处理器上应用于收发数据。
串行接口在提供串行时钟的主设备和从设备/周边设备之间的进行通讯。串行接口有三种:三线、二线和单线。本文着眼于二线和三线的串行接口。
三线的接口包括:片选线(CS或SS)、时钟线(SCLK)和数据输入/主设备输出线(DIN或MOSI)。三线接口有时也包括一条数据输出/主设备输入线(DOUT或MISO)。包含DOUT线的三线接口有时也叫做四线接口。为了叙述的简便,本文将三线接口和四线接口统称为三线接口。二线接口包括一条数据线(SDA或SMBDATA)和一条时钟线(SCL或SMBCLK)。
串行外设接口(SPI),队列串行外设接口(QSPI)和MicroWire(或MicroWire/Plu
I2C驱动培训文档
I2C驱动
一、 协议......................................................................................................................................... 2
基本概念 ................................................................................................................................... 2 主机发送数据流程 ................................................................................................................... 2 二、iomux ........................................................................................................
Linux I2C驱动源码分析
内核版本:2.6.31.6
首先在S3C2440平台的初始化函数中,主要是将开发平台的设备注册进了系统,也就是将device注册到了platform虚拟的总线上,并进行了一些初始化的工作,这里我们只关注I2C的部分。
static void __init smdk2440_machine_init(void) { }
s3c_i2c0_set_platdata()函数将S3C2440上的I2C控制器进行了一些初始化,但是并没有写入硬件寄存器,仅仅是保存在了s3c2410_platform_i2c结构体中。
void __init s3c_i2c0_set_platdata(struct s3c2410_platform_i2c *pd) {
npd = kmemdup(pd, sizeof(struct s3c2410_platform_i2c), GFP_KERNEL); if (!pd)
pd = &default_i2c_data0; struct s3c2410_platform_i2c *npd;
platform_add_devices(smdk2440_devices, ARRAY_SIZE
i2c学习仿真实例
I2C串行总线概述
1.I2C总线的接口
I2C总线是PHLIPS公司推出的一种双向串行总线,用于与主机相连接。总线的长度可高达8m,最多可支持40个器件。
I2C总线只有两根双向信号线。一根是数据/地址线SDA,另一根是时钟线SCL。所有连接到I2C总线上的设备的串行数据线都连接到总线的SDA上,而设备的串行时钟线都连接到总线的SCL上。
一个单片机外围系统可以扩展多个I2C总线器件,每个器件需要设定不同的地址。每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由总线上接收数据的器件则为接收器。
I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。
2. I2C总线器件的地址
I2C总线是由数据线SDA 和时钟线SCL构成的串行总线,可发送和接受数据。在单片机与被控器件之间、器件与器件之间均可进行双向信息传送。器件地址共7位,它与方向位构成了I2C总线器件的寻址字节SLA。 I2C总线器件的寻址字节SLA 位 D7 D6 D5 D4 D
I2C总线程序1
I2C总线协议程序
在做程序是我在网上找的是周立功的程序,感觉还不错顺便转载;在使用的过程中一定要注意时序、时间的问题。
i2c.c /* I2C.c
标准80C51单片机模拟I2C总线的主机程序 Copyright (c) 2005,广州周立功单片机发展有限公司
All rights reserved.
本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的
*/
#include \
//定义延时变量,用于宏I2C_Delay() unsigned char data I2C_Delay_t;
/*
宏定义:I2C_Delay() 功能:延时,模拟I2C总线专用
*/
#define I2C_Delay()\\
{\\
I2C_Delay_t = (I2C_DELAY_VALUE);\\
while ( --I2C_Delay_t != 0 );\\
} /*
函数:I2C_Init()
功能:I2C总线初始化,使总线处于空闲状态
说明:在main()函数的开始处,通常应当要执行一次本函数
*/ void I2C_Init()
{ I2C_SCL = 1; I2C_Delay();
I2C_SDA = 1; I2C_Delay()
I2C总线协议及工作原理
. /
I2C总线协议及工作原理
一、概述
1、I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。
SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发)
SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系。
I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平(SDL=1;SCL=1)。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。
2、主设备与从设备
系统中的所有外围器件都具有一个7位的"从器件专用地址码",其中高4位为器件类型,由生产厂家制定,低3位为器件引脚定义地址,由使用者定义。主控器件通过地址码建立多机通信的机制,因此I2C总线省去了外围器件的片选线,这样无论总线上挂接多少个器件,其系统仍然为简约的二线结构。终端挂载在总线上,有主端和从端之分,主端必须是带有CPU的逻辑模块,在同一总线上同一时刻使能有一个主端,可以有多个从端,从端的数量受地址空间和总线的最大电容400pF的限制。
主端主要用来驱动SCL line;
从设备对主设备产生响应;
二者都可以传输数据,但是从设备不能发起传输,且传输是受到主设备控