二线制串行EEPROM应用
- 格式:pdf
- 大小:883.74 KB
- 文档页数:4
4.2 I2C器件AT24C04的原理与应用I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I2C总线产生于上世纪80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。
I2C总线最主要的优点是其简单性和有效性。
由于接口直接在组件之上,因此I2C 总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。
总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。
I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。
一个主控能够控制信号的传输和时钟频率。
当然,在任何时间点上只能有一个主控。
4.2.21 I2C总线的构成和信号类型一、I2C总线的构成I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU 与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps,采用7位寻址,但是由于数据传输速率和应用功能的迅速增加,I2C总线也增强为快速模式(400Kbits/s)和10位寻址以满足更高速度和更大寻址空间的需求。
各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址。
在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。
CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。
这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
二、I2C总线的信号类型I2C总线在传送数据过程中共有三种类型信号,它们分别是:起始信号、终止信号和应答信号。
2011-04-2916:56:58 分类:LINUXAT24C32是2-WireSerialEEPROM,容量为32Kbits(4096*8)。
利用该芯片可以模拟I2C总线,如果采用IO口来进行模拟,可以采用二线制(SCL、SDA),也可以采用三线制(WP、SCL、SDA)。
在编写驱动程序时,要分为两个层次。
第一、针对IIC总线的驱动部分。
第二、针对AT24C32的驱动部分。
DynamicC里面的IO模拟IIC函数库采用的是二线制,针对的芯片是24C02。
如果要用,就需要进行相应的改进。
下面把使用该芯片时注意的地方总结如下:1、各个引脚的含义A0-A2:地址线,用来选择slave器件。
WP:WriteProtect写保护,高电平拒绝写入,低电平可以写入,即低电平有效。
SCL:SerialClock串行时钟,用来指示什么时候数据线上是有效数据。
SDA:SerialData串行数据,用于数据传送2、关于WP脚二线制没有WP,也就是把WP置为低电平,始终写有效。
这样的问题是,在上电或调电的时候,可能会发生异常情况,对EEPROM内数据有所改动。
所以,如果有重要的数据,还是要采用WP引脚比较安全。
对AT24C32来说,WP置高,则只有四分之一受保护,即0x0C00-0x0FFF。
也就是说保护区为1KBytes。
对于低地址的四分之三,则不保护。
所以,如果数据较多时,可以有选择地存储。
不重要的数据则放在低四分之三区域,重要的数据则放在高四分之一区域。
看ICDatasheet,一定要仔细。
初次写测试程序时,发现WP不起作用,常有效。
用万用表测试,确实是高电平。
经过仔细阅读WP引脚说明,发现只有高四分之一区域可以写保护。
改变地址后,测试成功。
整个驱动函数也就修改成功了。
WP:Thewriteprotectinput,whentiedtoGND,,allwriteoperationstotheupperquand rant(8Kbits),WPisinternallypulleddowntoGND.3、关于读写流程AT24C32的数据地址必须要先发高字节地址,再发低字节地址。
EEPROM---AT24Cxx应⽤介绍结论:1、读写AT24CXX芯⽚,根据容量有多种⽅式:⼀、容量为AT24C01~AT24C16,⾸先发送设备地址(8位地址),再发送数据地址(8位地址),再发送或者接受数据。
⼆、AT24C32/AT24C64~AT24C512,⾸先发送设备地址(8位地址),再发送⾼位数据地址,再发送地位数据地址,再发送或者接受数据。
三、容量AT24C1024的芯⽚,是把容量⼀和容量⼆的⽅法结合,设备地址中要⽤⼀位作为数据地址位,存储地址长度是17位。
2、它的设备地址根据容量不同有区别: 1)、AT24C01~AT24C16:这⼀类⼜分为两类,分别为AT24C01/AT24C02和AT24C04~AT24C16;他们的设备地址为⾼7位,低1位⽤来作为读写标⽰位,1为读,0为写。
*1*、AT24C01/AT24C02。
AT24C01/AT24C02的A0、A1、A2引脚作为7位设备地址的低三位,⾼4为固定为1010B,低三位A0、A1、A2确定了AT24CXX的设备地址,所以⼀根I2C线上最⼤可以接8个AT24CXX,地址为1010000B~1010111B。
*2*、AT24C04~AT24C16的 A0、A1、A2只使⽤⼀部分,不⽤的悬空或者接地(数据⼿册中写的是悬空不接)。
举例:AT24C04只⽤A2、A1引脚作为设备地址,另外⼀位A0不⽤悬空,发送地址中对应的这位(A0)⽤来写⼊页寻址的页⾯号,⼀根I2C线上最⼤可以接4个,地址为101000xB~101011xB 2)、AT24C32/AT24C64:和AT24C01/AT24C02⼀样,区别是,发送数据地址变成16位。
注意事项:对AT24C32来说,WP置⾼,则只有四分之⼀受保护,即0x0C00-0x0FFF。
也就是说保护区为1KBytes。
对于低地址的四分之三,则不保护。
所以,如果数据较多时,可以有选择地存储。
常⽤串⾏EEPROM的编程应⽤常⽤串⾏EEPROM的编程应⽤(⼀)作者:温正伟原载:⽆线电本⽂所提供的实例程序:cdle070002.rarEEPROM是"Electrically Erasable Programmable Read-only"(电可擦写可编程只读存储器)的缩写,EEPROM 在正常情况下和EPROM⼀样,可以在掉电的情况下保存数据,所不同的是它可以在特定引脚上施加特定电压或使⽤特定的总线擦写命令就可以在在线的情况下⽅便完成数据的擦除和写⼊,这使EEPROM被⽤于⼴阔的的消费者范围,如:汽车、电信、医疗、⼯业和个⼈计算机相关的市场,主要⽤于存储个⼈数据和配置/调整数据。
EEPROM⼜分并⾏EEPROM和串⾏EEPROM,并⾏EEPROM器件虽然有很快的读写的速度,但要使⽤很多的电路引脚。
串⾏EEPROM器件功能上和并⾏EEPROM基本相同,提供更少的引脚数、更⼩的封装、更低的电压和更低的功耗,是现在使⽤的⾮易失性存储器中灵活性最⾼的类型。
串⾏EEPROM按总线分,常⽤的有I2C,SPI,Microwire总线。
本⽂将介绍这三种总线连接单⽚机的编程⽅法。
I2C总线I2C总线(Inter Integrated Circuit内部集成电路总线)是两线式串⾏总线,仅需要时钟和数据两根线就可以进⾏数据传输,仅需要占⽤微处理器的2个IO引脚,使⽤时⼗分⽅便。
I2C总线还可以在同⼀总线上挂多个器件,每个器件可以有⾃⼰的器件地址,读写操作时需要先发送器件地址,该地址的器件得到确认后便执⾏相应的操作,⽽在同⼀总线上的其它器件不做响应,称之为器件寻址,这个原理就像我们打电话的原理相当。
I2C总线产⽣80年代,由PHLIPS公司开发,早期多⽤于⾳频和视频设备,如今I2C总线的器件和设备已多不胜数。
最常见的采⽤I2C总线的EEPROM也已被⼴泛使⽤于各种家电、⼯业及通信设备中,主要⽤于保存设备所需要的配置数据、采集数据及程序等。
1、单片机控制功能2、UART通信的字符显示3、UART通信的波特率设置常见的存储器件的介绍常见存储器件:铁电,E2PROM,FLASH。
共同特点:掉电后数据不丢失各自特点:铁电:理论上可以无限次擦写,操作简单,但是容量小。
E2PROM:理论上擦写次数在30w到100w的不等,操作简单,容量中等。
FLASH:理论上擦写次数在10w到100w不等,容量很大,但操作较复杂,若要改变一个字节就要改变整个扇区。
I2C总线简介(1)1、I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备(特别是外部存储器件)。
2、I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
3、I2C总线在传送数据过程中共有三种特殊类型信号,它们分别是:开始信号、结束信号和应答信号。
I2C总线简介(2)1、I2C总线最主要的优点是其简单性和有效性。
由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。
I2C总线的另一个优点是,它支持多主机,其中任何能够进行发送和接收的设备都可以成为主机。
一个主控能够控制信号的传输和时钟频率。
当然,在任何时间点上只能有一个主机。
2、I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
各种I2C均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址。
EEPROM的硬件连接SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。
I2C的数据传送SCL为高电平期间,数据线上的数据必须保持稳定,只有SCL信号为低电平期间,SDA状态才允许变化。
void I2CStart(void){SDA = 1;Delay(); // 延时子程序SCL = 1;Delay();SDA = 0;Delay();SCL = 0;}I2C的结束程序:void I2CStop(void){SCL = 0;Delay();SDA = 0;Delay();SCL = 1;Delay();SDA = 1;Delay();}I2C的数据读写和应答I2C与UART不同的地方首先在于先传高位,后传送低位。
串行EEPROM接口方法讲解串行EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种非易失性存储器,它可以通过串行接口与微控制器或其他设备进行通信。
串行EEPROM常用于存储配置信息、校准数据和日志记录等功能。
本文将对串行EEPROM的接口方法进行讲解。
串行EEPROM主要有两种接口方式:I2C和SPI。
I2C(Inter-Integrated Circuit)是一种串行通信协议,可以通过两根线进行通信;SPI(Serial Peripheral Interface)是一种串行通信协议,通信需要使用4根线。
下面将依次介绍两种接口的方法。
一、I2C接口方法I2C接口是一种简单、快速和可靠的通信协议,由两根线组成:SCL (串行时钟线)和SDA(串行数据线)。
I2C通信需要一个主设备(如微控制器)和一个或多个从设备(如串行EEPROM)。
1.初始化:首先,需要将SCL和SDA引脚配置为I2C模式,并设置串行EEPROM 的设备地址。
通常,每个串行EEPROM都有一个唯一的7位设备地址。
通过设置地址位上的电平(0或1),可以配置不同的从设备。
2.启动通信:为了开始I2C通信,主设备需要发出一个起始信号。
起始信号是由将SDA从高电平转换为低电平,然后将SCL从高电平转换为低电平形成的。
3.发送设备地址:主设备在发送起始信号之后,将需要访问的设备地址与通信位(读或写)发送到SDA线上。
这个8位的地址包括7位的设备地址和1位的读/写位。
4.等待应答:接下来,主设备需要等待来自串行EEPROM的应答信号。
在等待期间,主设备需要释放SDA线,并将SCL线保持在低电平。
5.发送数据:如果收到了来自串行EEPROM的应答信号,主设备可以继续通过I2C通信发送数据。
可以发送一个或多个字节的数据到串行EEPROM。
6.停止通信:当所有数据都发送完毕后,主设备发出停止信号,即将SDA线从低电平转换为高电平,然后将SCL线从低电平转换为高电平。
基于LPC2106的IIC总线E2PROM的应用作者:袁易君来源:《中小企业管理与科技·中旬版》2008年第12期摘要:本文利用Proteus软件仿真的特点,提出在此平台上仿真设计IIC总线E2PROM芯片AT24C02在Arm7内核LPC2106中的应用,用实例说明了LPC21XX系列单片机的标准IIC 接口的使用。
关键词:Proteus 软件仿真 Arm7内核0 引言Proteus软件是一款主要面向8位及32位单片机软硬件设计的仿真平台,能实时仿真多种单片机芯片,如51单片机系列、AVR单片机系列、PIC单片机系列及Arm单片机系列等,可减少学习单片机的成本,又可达到良好的学习效果。
LPC2106是一款基于Arm7内核的32位单片机,具有非常小的尺寸和极低的功耗,片内具有128KB的Flash ROM,64KB的静态RAM,芯片本身具有标准的IIC串行接口,不需要像51单片机一样进行软件模拟,同时还具有其他一些8位单片机所不具备的功能,其应用前景将会越来越广泛。
1 LPC2106 I2C接口及24C E2PROM介绍LPC2106 I2C接口可配置为主机或从机,总线时钟频率可调整,最高支持400KHz总线频率,LPC2106在使用I2C总线的时候,要将P0.2、P0.3功能设置选择为SCL、SDA,并且总线上要接两个上拉电阻,阻值大小为几K左右,同时需要设置一些相关寄存器的内容选择工作方式。
24C系列串行EEPROM具有体积小、功耗低、工作电压允许范围宽等特点外,还具有型号多、容量大、二总线协议、占用I/O口线少、容量扩展配置极其灵活方便、读写操作相对简单等特点。
本系统中使用的是24C02(2kb),采用CMOS工艺,工作电压在1.8~5.5V之间,24C系列采用最多的封装形式是8脚PDIP封装,8 脚封装中A0、A1、A2为器件地址选择位,这3个引脚配置成不同的编码值,在同一串行总线上最多可扩展8片同一容量或不同容量的24C系列串行EEPROM芯片。