




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据存储ATCxx及其应用数据存储ATCxx及其应用I2C(I2C、IIC)总线概述I2C(Inter-IntegratedCircuit)总线是Philips公司最先推出的一种双向数据传输总线,仅使用两根连线便可以实现全双工同步数据传输。在I2C总线中,一条为串行数据线(SDA),另一条为串行时钟线(SCL)。I2C总线占用引脚少,接口协议简单。目前多数公司均推出了I2C总线接口的各种器件,如存储器、A/D、D/A、键盘、LCD等,大大方便了用户的选择。I2C(I2C、IIC)总线概述I2C(Inter-II2C(I2C、IIC)总线概述I2C总线采用两线制,由数据线SDA和时钟线SCL构成。I2C总线对数据通信进行了严格的定义。典型的I2C总线系统结构如下图所示。I2C总线上可以挂接多个器件,其中每个器件必须都支持I2C总线通信协议。I2C(I2C、IIC)总线概述I2C总线采用两线制,I2C(I2C、IIC)总线概述其中,I2C总线的SCL和SDA端口(开漏极,线与)在使用时必须连接上拉电阻。I2C总线的传输速率可以支持100khz和400khz两种,对于100khz的速率一般采用10k欧姆的上拉电阻,对于400khz的速率一般采用2k欧姆的上拉电阻。I2C(I2C、IIC)总线概述其中,I2C总线的SCI2C(I2C、IIC)总线特点I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线(I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能)。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。
I2C(I2C、IIC)总线特点I2C总线最主要的优点I2C(I2C、IIC)总线协议I2C总线协议定义如下:
1只有在总线空闲时才允许启动数据传送;(时钟线与数据线都为高电平时为空闲信号)
2在数据传送过程中,当时钟线为高电平时数据线必须保持稳定状态,不允许有跳变;时钟线为高电平时数据线的任何电平变化将被看作总线的起始或停止信号。起始信号。时钟线保持高电平期间,数据线电平从高到低的跳变作为I2C总线的起始信号。停止信号时钟线保持高电平期间,数据线电平从低到高的跳变作为I2C总线的停止信号I2C(I2C、IIC)总线协议I2C总线协议定义如I2C总线的信号类型I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。I2C总线的信号类型I2C总线在传送数据过程中共有三种类型信I2C总线的信号类型开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。I2C总线的信号类型开始信号:SCL为高电平时,SDA由高电I2C总线的信号类型位的传输
SDA线上的数据必须在时钟的高电平周期保持稳定,数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变。I2C总线的信号类型位的传输
SDA线上的数据必须在时钟I2C总线接口EEPROM存储器目前,市场上I2C总线接口器件有多种,利于A/D转换器、D/A转换器、时钟芯片和存储器等。这里以典型的I2C总线接口的存储器为例进行介绍。I2C总线接口EEPROM存储器是一种采用I2C总线接口的串行总线存储器,这类存储器具有体积小、引脚少、功耗低、工作电压范围宽等特点。目前,Atmel、Microchip、National等公司均提供各种型号的I2C总线接口的串行EEPROM(电可擦出可编程只读存储器,即ElectricallyErasableProgrammableRead-OnlyMemory)存储器。在单片机系统中使用较多的EEPROM存储器是24系列串行EEPROM。它具有型号多、容量大、支持I2C总线协议、占用单片机I/O端口少、芯片扩展方便、读写简单等优点。I2C总线接口EEPROM存储器目前,市场上I2C总线接口器AT24CXX这里以Atmel公司的产品为例进行介绍,At24Cxx系列是Atmel公司典型的I2C串行总线的EEPROM,工作于从器件模式。AT24Cxx:01~1024容量=xxX1Kbit型号系列列表AT24C01:1K(128X8) AT24C02:2K(256X8)AT24C04:4K(512X8) AT24C08:8K(1KX8)AT24C16:16K(2KX8) AT24C512:512K(64KX8)AT24C1024:1M(128KX8)例如AT24C08存储容量为8k位(1024个字节*8位容量计算方法AT24CXX这里以Atmel公司的产品为例进行介绍,At2AT24CXXI2C总线接口的EEPROM存储器工作电压可选择低电压或标准电压(1.8v、2.7v、5v)100khz(1.8v)或400khz(2.7v、5v)8字节页写操作(1k、2k),16字节页写操作(4k、8k、16k)内部数据写周期(最大5ms)重复擦写100万次以上内容数据可以掉电保存100年AT24CXXI2C总线接口的EEPROM存储器AT24CXX引脚定义如下:Vcc、GND为芯片的供电引脚A0、A1、A2为芯片的引脚地址和页面选择输入SCL为I2C总线接口的串行时钟线SDA为I2C总线接口的串行数据线(高位在前,低位在后;上升沿数据写入,下降沿数据读出)WP为写保护引脚,当WP接高电平时,只能对该器件进行读操作,不能写操作,用于硬件数据的保护;当WP接低电平时,可以对该器件进行读写操作。AT24CXX引脚定义如下:AT24Cxx重要参数AT24Cxx重要参数AT24CXX芯片地址具有I2C接口的EEPROM存储器的前面4为全部都是1010页面地址Px:不用连接芯片地址Ax:需要连接为高电平或低电平R/W:1——读操作;0——写操作每片芯片16/32页,每页8字节,地址需要7/8位,总线最大可挂8片每片芯片32页,每页16字节,地址需要9位,总线最大可挂4片每片芯片64页,每页16字节,地址需要10位,总线最大可挂2片每片芯片128页,每页16字节,地址需要11位,总线最大可挂1片AT24CXX芯片地址具有I2C接口的EEPROM存储器的前AT24Cxx单元地址AT24C01:00H-7FH128x8bitAT24C02:00H-FFH256x8bitAT24C04:000H-1FFH512x8bitAT24C08:000H-3FFH1024x8bitAT24C16:000H-7FFH2048x8bitAT24C32:000H-FFFH4096x8bitAT24C64:0000H-1FFFH8192x8bitAT24C128:0000H-3FFFH16384x8bitAT24C256:0000H-7FFFH32768x8bitAT24C512:0000H-FFFFH65536x8bitAT24Cxx单元地址AT24C01:00H-7FH12AT24CXX电气特性AT24CXX电气特性AT24CXX电气特性AT24CXX电气特性100KHz参数分析f=100KHz=0.1MHzt=1/0.1us=5us(一个高电平持续的时间+一个低电平持续的时间)scl的高低电平持续时间各为3usscl为高电平时,sda数据线电平不能变化(否则就是开始信号或停止信号);scl为低电平时,sda数据线电平才能变化(即此时给sda赋需要发送的值)。100KHz参数分析f=100KHz=0.1MHz400KHz参数分析f=400KHz=0.4MHzt=1/0.4us=2.5us(一个高电平持续的时间+一个低电平持续的时间)scl的高低电平持续时间各为2usscl为高电平时,sda数据线电平不能变化(否则就是开始信号或停止信号);scl为低电平时,sda数据线电平才能变化(即此时给sda赋需要发送的值)。400KHz参数分析f=400KHz=0.4MHz写操作写操作:字节写操作页写操作在写操作完成后,需要一定的延时来完成内部写周期,也可以进行忙检测;否则操作就会失败。写操作写操作:字节写操作在字节写模式下:主器件发送起始命令和从器件地址信息(R/W位置零)给从器件,在从器件产生应答信号后;主器件发送从器件存储单元的字节地址,主器件在收到从器件的另一个应答信号后;再发送数据到被寻址的存储单元。从器件再次应答并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中,从器件不再应答主器件的任何请求。即stop信号结束后,AT24CXX需要一定的时间完成内部数据写入。字节写操作在字节写模式下:主器件发送起始命令和从器件地址信息页写操作页写时AT24C01/02:8字节;AT24C04/08/16:16字节地址指针会自动加1(在同一页面,超出字节会自动覆盖)字节多于8个或16个时,会自动覆盖前面所写入的单元。接收到8或16字节数据和主器件发送的停止信号后,从器件启动内部写周期将数据写到数据区。所有接收的数据在一个写周期内写入从器件。即stop信号结束后,从器件需要一定的时间完成内部数据写入。同一页最后一个字节同一页第一个字节页写操作页写时AT24C01/02:8字节;AT24C04/读操作读操作立即/当前地址读操作选择/随机地址读操作顺序/连续地址读操作 立即/当前地址读多字节操作 选择/随机地址读多字节操作读操作读操作立即/当前地址读操作从器件地址计数器内容为最后操作字节的地址加1,也就是说如果上次读/写的操作地址为N,则立即读的地址从地址N+1开始。接收到从器件地址信号后(R/W位置1),它首先发送一个应答信号,然后发送一个8位字节数据;主器件不需发送一个应答信号但要产生一个停止信号。本次读取数据的地址是在上次读取数据的地址加1(可以不在同一页面内,最后一页最后一个字节第一页第一个字节)立即/当前地址读操作从器件地址计数器内容为最后操作字节的地址选择/随机地址读操作选择性读操作允许主器件对寄存器的任意字节进行读操作。主器件首先通过发送起始信号、从器件地址(此时R/W位置1)和它想读取的字节数据的地址,执行一个伪写操作;在从器件应答之后,主器件重新发送起始信号和从器件地址(此时R/W位置1),从器件响应并发送应答信号,然后输出所要求的一个8位字节数据,主器件不发送应答信号但产生一个停止信号。开始必须有“伪字节写入”操作,然后再重新启动star信号。选择/随机地址读操作选择性读操作允许主器件对寄存器的任意字节顺序/连续地址读操作连续读操作可通过立即读或选择性读操作启动。在从器件发送完一个8位字节数据后,主器件产生一个应答信号来响应告知从器件,主器件要求更多的数据。对应每个主机产生的应答信号,从器件将发送一个8位数据字节,当主器件不发送应答信号而发送停止位时结束此操作。(字节个数自己设定,可以不在同一页面内,最后一页最后一个字节第一页第一个字节)前面的操作以当前地址读取或随机地址读取的前面操作相同。(红线框标记)顺序/连续地址读操作连续读操作可通过立即读或选择性读操作启动各功能函数起始信号函数停止信号函数从机应答信号函数主机应答信号函数忙信号检测函数字节写入函数(一字节8位,上升沿写入)字节读取函数(一字节8位,下降沿读出)主机控制总线,从总线上给从机发送数据主机释放总线,从总线上采集从机发送的数据各功能函数起始信号函数各功能函数字节写操作页写操作当前地址读操作随机地址读操作当前地址连续读操作随机地址连续读操作各功能函数字节写操作开始信号/******启动总线*****/
/*SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。*/voidi2cstart(void){
scl=0;// _nop_();//delay05us(); sda=1;// _nop_();//delay05us(); scl=1; //_nop_();//delay05us(); sda=0;// _nop_();//delay05us(); scl=0;// _nop_();//delay05us();}开始信号/******启动总线****停止信号/******停止总线*****/
/*SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。*/voidi2cstop(void){ scl=0;// _nop_();//delay05us(); sda=0;// _nop_();//delay05us(); scl=1;// _nop_();//delay05us(); sda=1;// _nop_();//delay05us();}停止信号/******停止总线****上升沿写入数据voidwrite(unsignedcharx)//上升沿写入数据{ unsignedchary,i; y=x; CY=0; for(i=0;i<8;i++) { y=y<<1; sda=CY;//准备数据 scl=1;//上升沿 // _nop_();//delay05us(); scl=0; // _nop_();//delay05us(); }}//scl低电平时,准备好要写入的位数据;scl上升为高电平时,写入一位上升沿写入数据voidwrite(unsignedcha下降沿读取数据unsignedcharread(void)//下降沿读取数据{ unsignedcharx,i; bitf; x=0; for(i=0;i<8;i++) { sda=1;//主机释放总线,准备接收从机发送的位数据 x=x<<1; scl=1; // _nop_();//delay05us(); f=sda;//读取数据 scl=0;//下降沿 // _nop_();//delay05us(); x=x+(unsignedchar)f; } return(x);}下降沿读取数据unsignedcharread(void从机应答(0/1)/*从机应答——主机发送一个数据后,从机在主机发送第9个时钟时应答:收到,应答0;没收到,应答1*/bitack(void){ bitf; sda=1;//主机释放总线,准备接收从机的应答// _nop_();//delay05us(); scl=1;// _nop_();//delay05us(); f=sda;//读取数据
scl=0;//下降沿// _nop_();//delay05us(); return(f);}从机应答(0/1)/*从机应答——主机发送一个数据后,从机在主机应答(0/1)/*主机应答——从机发送一个数据后,主机在主机发送第9个时钟时应答:收到并且需要另外的数据,应答0;收到并且不需要另外的数据,应答1*/voidnoack(bitf){ sda=f;//准备数据
scl=1;//上升沿// _nop_();//delay05us(); scl=0;// _nop_();//delay05us();}主机应答(0/1)/*主机应答——从机发送一个数据后,主机在忙检测/*****忙检测*****//*写操作需要一定的时间,或采用忙检测:0——完成写;1——正在进行写*/voidi2cbusy(void){ bitf; i2cstart(); write(0xa0); f=ack(); while(f) { i2cstart(); write(0xa0); f=ack(); }}忙检测/*****忙检测*****/字节写操作/*字节写:x--器件地址;y--单元地址;z--数据*/voidwritebyte(unsignedcharx,unsignedchary,unsignedcharz){ wp=0;//可读写操作
i2cstart(); write(x&0xfe);//最低位必须为0 ack();//从机应答
write(y); ack(); write(z); ack();//从机应答
i2cstop(); wp=1;//关闭可写操作,只能读操作}字节写操作/*字节写:x--器件地址;y--单元地址;z--随机读操作/*随机读操作:x--器件地址;y--单元地址;返回读取的数据*/unsignedcharrandomread(unsignedcharx,unsignedchary){ unsignedcharz; wp=0; i2cstart(); write(x&0xfe);//最低位必须为0 ack();//从机应答
write(y); ack();//从机应答
//伪写操作
wp=1; i2cstart(); write(x|0x01);//最低位必须为1 ack();//从机应答
z=read(); noack(1);//主机应答
i2cstop(); return(z);}随机读操作/*随机读操作:x--器件地址;y--单元地址;返总结在I2C总线的应用中应注意的事项总结为以下几点:
1)严格按照时序图的要求进行操作
2)若与口线上带内部上拉电阻的单片机接口连接,可以不外加上拉电阻。
3)程序中为配合相应的传输速率,在对口线操作的指令后可用NOP(_nop_())指令加一定的延时。AT24Cxx系列的模型在MemoryIcs里的24Cxx(注意要有仿真模型,时钟频率,写时间周期的参数)总结在I2C总线的应用中应注意的事项总结为以下几点:
1)人不仅要做好事,更要以准确的方式做好事。有人将你从高处推下的时候恰恰是你展翅高飞的最佳时机。上天不会亏待努力的人,也不会同情假勤奋的人,你有多努力时光它知道。萤火虫的光点虽然微弱,但亮着便是向黑暗挑战。这个世间只有圆滑,没有圆满的。你不能左右天气,但你能转变你的心情。君子看人背后,小人背后看人。远离那些背后说别人坏话的人,请记住,他(她)能说别人坏话,就能在暗地说你坏话!这就是俗话说的,不怕真小人,就怕伪君子!因果不曾亏欠过我们什么,所以请不要抱怨。人若软弱就是自己最大的敌人。不能强迫别人来爱自己,只能努力让自己成为值得爱的人。友情在我过去的生活里就象一盏明灯,照彻了我的灵魂,使我的生存有了一点点光彩。感情久了,就不是爱了而是依赖;失去那阵,那不是痛而是不舍。身体健康,学习进步!人不仅要做好事,更要以准确的方式做好事。身体健康,学习进步!数据存储ATCxx及其应用数据存储ATCxx及其应用I2C(I2C、IIC)总线概述I2C(Inter-IntegratedCircuit)总线是Philips公司最先推出的一种双向数据传输总线,仅使用两根连线便可以实现全双工同步数据传输。在I2C总线中,一条为串行数据线(SDA),另一条为串行时钟线(SCL)。I2C总线占用引脚少,接口协议简单。目前多数公司均推出了I2C总线接口的各种器件,如存储器、A/D、D/A、键盘、LCD等,大大方便了用户的选择。I2C(I2C、IIC)总线概述I2C(Inter-II2C(I2C、IIC)总线概述I2C总线采用两线制,由数据线SDA和时钟线SCL构成。I2C总线对数据通信进行了严格的定义。典型的I2C总线系统结构如下图所示。I2C总线上可以挂接多个器件,其中每个器件必须都支持I2C总线通信协议。I2C(I2C、IIC)总线概述I2C总线采用两线制,I2C(I2C、IIC)总线概述其中,I2C总线的SCL和SDA端口(开漏极,线与)在使用时必须连接上拉电阻。I2C总线的传输速率可以支持100khz和400khz两种,对于100khz的速率一般采用10k欧姆的上拉电阻,对于400khz的速率一般采用2k欧姆的上拉电阻。I2C(I2C、IIC)总线概述其中,I2C总线的SCI2C(I2C、IIC)总线特点I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线(I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能)。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。
I2C(I2C、IIC)总线特点I2C总线最主要的优点I2C(I2C、IIC)总线协议I2C总线协议定义如下:
1只有在总线空闲时才允许启动数据传送;(时钟线与数据线都为高电平时为空闲信号)
2在数据传送过程中,当时钟线为高电平时数据线必须保持稳定状态,不允许有跳变;时钟线为高电平时数据线的任何电平变化将被看作总线的起始或停止信号。起始信号。时钟线保持高电平期间,数据线电平从高到低的跳变作为I2C总线的起始信号。停止信号时钟线保持高电平期间,数据线电平从低到高的跳变作为I2C总线的停止信号I2C(I2C、IIC)总线协议I2C总线协议定义如I2C总线的信号类型I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。I2C总线的信号类型I2C总线在传送数据过程中共有三种类型信I2C总线的信号类型开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。I2C总线的信号类型开始信号:SCL为高电平时,SDA由高电I2C总线的信号类型位的传输
SDA线上的数据必须在时钟的高电平周期保持稳定,数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变。I2C总线的信号类型位的传输
SDA线上的数据必须在时钟I2C总线接口EEPROM存储器目前,市场上I2C总线接口器件有多种,利于A/D转换器、D/A转换器、时钟芯片和存储器等。这里以典型的I2C总线接口的存储器为例进行介绍。I2C总线接口EEPROM存储器是一种采用I2C总线接口的串行总线存储器,这类存储器具有体积小、引脚少、功耗低、工作电压范围宽等特点。目前,Atmel、Microchip、National等公司均提供各种型号的I2C总线接口的串行EEPROM(电可擦出可编程只读存储器,即ElectricallyErasableProgrammableRead-OnlyMemory)存储器。在单片机系统中使用较多的EEPROM存储器是24系列串行EEPROM。它具有型号多、容量大、支持I2C总线协议、占用单片机I/O端口少、芯片扩展方便、读写简单等优点。I2C总线接口EEPROM存储器目前,市场上I2C总线接口器AT24CXX这里以Atmel公司的产品为例进行介绍,At24Cxx系列是Atmel公司典型的I2C串行总线的EEPROM,工作于从器件模式。AT24Cxx:01~1024容量=xxX1Kbit型号系列列表AT24C01:1K(128X8) AT24C02:2K(256X8)AT24C04:4K(512X8) AT24C08:8K(1KX8)AT24C16:16K(2KX8) AT24C512:512K(64KX8)AT24C1024:1M(128KX8)例如AT24C08存储容量为8k位(1024个字节*8位容量计算方法AT24CXX这里以Atmel公司的产品为例进行介绍,At2AT24CXXI2C总线接口的EEPROM存储器工作电压可选择低电压或标准电压(1.8v、2.7v、5v)100khz(1.8v)或400khz(2.7v、5v)8字节页写操作(1k、2k),16字节页写操作(4k、8k、16k)内部数据写周期(最大5ms)重复擦写100万次以上内容数据可以掉电保存100年AT24CXXI2C总线接口的EEPROM存储器AT24CXX引脚定义如下:Vcc、GND为芯片的供电引脚A0、A1、A2为芯片的引脚地址和页面选择输入SCL为I2C总线接口的串行时钟线SDA为I2C总线接口的串行数据线(高位在前,低位在后;上升沿数据写入,下降沿数据读出)WP为写保护引脚,当WP接高电平时,只能对该器件进行读操作,不能写操作,用于硬件数据的保护;当WP接低电平时,可以对该器件进行读写操作。AT24CXX引脚定义如下:AT24Cxx重要参数AT24Cxx重要参数AT24CXX芯片地址具有I2C接口的EEPROM存储器的前面4为全部都是1010页面地址Px:不用连接芯片地址Ax:需要连接为高电平或低电平R/W:1——读操作;0——写操作每片芯片16/32页,每页8字节,地址需要7/8位,总线最大可挂8片每片芯片32页,每页16字节,地址需要9位,总线最大可挂4片每片芯片64页,每页16字节,地址需要10位,总线最大可挂2片每片芯片128页,每页16字节,地址需要11位,总线最大可挂1片AT24CXX芯片地址具有I2C接口的EEPROM存储器的前AT24Cxx单元地址AT24C01:00H-7FH128x8bitAT24C02:00H-FFH256x8bitAT24C04:000H-1FFH512x8bitAT24C08:000H-3FFH1024x8bitAT24C16:000H-7FFH2048x8bitAT24C32:000H-FFFH4096x8bitAT24C64:0000H-1FFFH8192x8bitAT24C128:0000H-3FFFH16384x8bitAT24C256:0000H-7FFFH32768x8bitAT24C512:0000H-FFFFH65536x8bitAT24Cxx单元地址AT24C01:00H-7FH12AT24CXX电气特性AT24CXX电气特性AT24CXX电气特性AT24CXX电气特性100KHz参数分析f=100KHz=0.1MHzt=1/0.1us=5us(一个高电平持续的时间+一个低电平持续的时间)scl的高低电平持续时间各为3usscl为高电平时,sda数据线电平不能变化(否则就是开始信号或停止信号);scl为低电平时,sda数据线电平才能变化(即此时给sda赋需要发送的值)。100KHz参数分析f=100KHz=0.1MHz400KHz参数分析f=400KHz=0.4MHzt=1/0.4us=2.5us(一个高电平持续的时间+一个低电平持续的时间)scl的高低电平持续时间各为2usscl为高电平时,sda数据线电平不能变化(否则就是开始信号或停止信号);scl为低电平时,sda数据线电平才能变化(即此时给sda赋需要发送的值)。400KHz参数分析f=400KHz=0.4MHz写操作写操作:字节写操作页写操作在写操作完成后,需要一定的延时来完成内部写周期,也可以进行忙检测;否则操作就会失败。写操作写操作:字节写操作在字节写模式下:主器件发送起始命令和从器件地址信息(R/W位置零)给从器件,在从器件产生应答信号后;主器件发送从器件存储单元的字节地址,主器件在收到从器件的另一个应答信号后;再发送数据到被寻址的存储单元。从器件再次应答并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中,从器件不再应答主器件的任何请求。即stop信号结束后,AT24CXX需要一定的时间完成内部数据写入。字节写操作在字节写模式下:主器件发送起始命令和从器件地址信息页写操作页写时AT24C01/02:8字节;AT24C04/08/16:16字节地址指针会自动加1(在同一页面,超出字节会自动覆盖)字节多于8个或16个时,会自动覆盖前面所写入的单元。接收到8或16字节数据和主器件发送的停止信号后,从器件启动内部写周期将数据写到数据区。所有接收的数据在一个写周期内写入从器件。即stop信号结束后,从器件需要一定的时间完成内部数据写入。同一页最后一个字节同一页第一个字节页写操作页写时AT24C01/02:8字节;AT24C04/读操作读操作立即/当前地址读操作选择/随机地址读操作顺序/连续地址读操作 立即/当前地址读多字节操作 选择/随机地址读多字节操作读操作读操作立即/当前地址读操作从器件地址计数器内容为最后操作字节的地址加1,也就是说如果上次读/写的操作地址为N,则立即读的地址从地址N+1开始。接收到从器件地址信号后(R/W位置1),它首先发送一个应答信号,然后发送一个8位字节数据;主器件不需发送一个应答信号但要产生一个停止信号。本次读取数据的地址是在上次读取数据的地址加1(可以不在同一页面内,最后一页最后一个字节第一页第一个字节)立即/当前地址读操作从器件地址计数器内容为最后操作字节的地址选择/随机地址读操作选择性读操作允许主器件对寄存器的任意字节进行读操作。主器件首先通过发送起始信号、从器件地址(此时R/W位置1)和它想读取的字节数据的地址,执行一个伪写操作;在从器件应答之后,主器件重新发送起始信号和从器件地址(此时R/W位置1),从器件响应并发送应答信号,然后输出所要求的一个8位字节数据,主器件不发送应答信号但产生一个停止信号。开始必须有“伪字节写入”操作,然后再重新启动star信号。选择/随机地址读操作选择性读操作允许主器件对寄存器的任意字节顺序/连续地址读操作连续读操作可通过立即读或选择性读操作启动。在从器件发送完一个8位字节数据后,主器件产生一个应答信号来响应告知从器件,主器件要求更多的数据。对应每个主机产生的应答信号,从器件将发送一个8位数据字节,当主器件不发送应答信号而发送停止位时结束此操作。(字节个数自己设定,可以不在同一页面内,最后一页最后一个字节第一页第一个字节)前面的操作以当前地址读取或随机地址读取的前面操作相同。(红线框标记)顺序/连续地址读操作连续读操作可通过立即读或选择性读操作启动各功能函数起始信号函数停止信号函数从机应答信号函数主机应答信号函数忙信号检测函数字节写入函数(一字节8位,上升沿写入)字节读取函数(一字节8位,下降沿读出)主机控制总线,从总线上给从机发送数据主机释放总线,从总线上采集从机发送的数据各功能函数起始信号函数各功能函数字节写操作页写操作当前地址读操作随机地址读操作当前地址连续读操作随机地址连续读操作各功能函数字节写操作开始信号/******启动总线*****/
/*SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。*/voidi2cstart(void){
scl=0;// _nop_();//delay05us(); sda=1;// _nop_();//delay05us(); scl=1; //_nop_();//delay05us(); sda=0;// _nop_();//delay05us(); scl=0;// _nop_();//delay05us();}开始信号/******启动总线****停止信号/******停止总线*****/
/*SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。*/voidi2cstop(void){ scl=0;// _nop_();//delay05us(); sda=0;// _nop_();//delay05us(); scl=1;// _nop_();//delay05us(); sda=1;// _nop_();//delay05us();}停止信号/******停止总线****上升沿写入数据voidwrite(unsignedcharx)//上升沿写入数据{ unsignedchary,i; y=x; CY=0; for(i=0;i<8;i++) { y=y<<1; sda=CY;//准备数据 scl=1;//上升沿 // _nop_();//delay05us(); scl=0; // _nop_();//delay05us(); }}//scl低电平时,准备好要写入的位数据;scl上升为高电平时,写入一位上升沿写入数据voidwrite(unsignedcha下降沿读取数据unsignedcharread(void)//下降沿读取数据{ unsignedcharx,i; bitf; x=0; for(i=0;i<8;i++) { sda=1;//主机释放总线,准备接收从机发送的位数据 x=x<<1; scl=1; // _nop_();//delay05us(); f=sda;//读取数据 scl=0;//下降沿 // _nop_();//delay05us(); x=x+(unsignedchar)f; } return(x);}下降沿读取数据unsignedcharread(void从机应答(0/1)/*从机应答——主机发送一个数据后,从机在主机发送第9个时钟时应答:收到,应答0;没收到,应答1*/bitack(void){ bitf; sda=1;//主机释放总线,准备接收从机的应答// _nop_();//delay05us(); scl=1;// _nop_();//delay05us(); f=sda;//读取数据
scl=0;//下降沿// _n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年常州信息职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年03月上半年浙江舟山市普陀区部分事业单位公开招聘工作人员20人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年山西林业职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年山东文化产业职业学院高职单招(数学)历年真题考点含答案解析
- 2025年宿迁职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年宝鸡职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- IP基础知识课件下载
- 下肢静脉血栓用药护理
- 2025年天津滨海汽车工程职业学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年天津工程职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2024-2030年中国分布式光伏电站行业发展规模及项目投资可行性分析报告
- 2024年高考真题-地理(河北卷) 含答案
- 2024年湖北省高考数学第二次联考试卷附答案解析
- 4.1.2-指数函数的性质与图象教学设计
- 医院质量管理及评估制度
- 平房区全面推进信访工作法治化测试练习试卷附答案
- 大英赛练习题
- 2024年湖南省中考数学试题卷(含答案解析)
- 九年级语文下册 第二单元 8 蒲柳人家(节选)教案 新人教版
- 经营分析培训课件(课件)
- 2024CSCO肿瘤患者静脉血栓防治指南解读
评论
0/150
提交评论