常用串行EEPROM的编程应用

常⽤串⾏EEPROM的编程应⽤
常⽤串⾏EEPROM的编程应⽤(⼀)
作者:温正伟原载:⽆线电
本⽂所提供的实例程序:cdle070002.rar
EEPROM是"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也已被⼴泛使⽤于各种家电、⼯业及通信设备中,主要⽤于保存设备所需要的配置数据、采集数据及程序等。⽣产I2C总线EEPROM的⼚商很多,如ATMEL、Microchip公司,它们都是以24来开头命名芯⽚型号,最常⽤就是24C系列。24C系列从24C01到24C512,C后⾯的数字代表该型号的芯⽚有多少K的存储位。如ATMEL的24C64,存储位是64K位,也就是说可以存储8K(8192)字节,它⽀持1.8V 到5V电源,可以擦写1百万次,数据可以保持100年,使⽤5V电源时时钟可以达到400KHz,并且有多种封装可供选择。我们可以很容易的在⾝边的电器设备中发现它们的⾝影,如电视中⽤于保存频道信息,电脑内存条中保存内存⼤⼩等相关信息,汽车⾥⽤于保存⾥程信息等等。
图⼆是ATMEL公司
可以通过设置A0-A2引脚来确定器件地址。SDA是串⾏数据引脚,⽤于在芯⽚读写时输⼊或输出数据、地址等,这个引脚是双向引脚,它是漏极开路的,使⽤时需要加上⼀个上拉电阻。SLC脚是器件的串⾏同步时钟信号,如果器件是使⽤在单⽚机系统中,那么SLC脚应该由单⽚机控制,根据单⽚机的程序要求产⽣串⾏同步时钟信号,控制总线的存取。WP脚是写保护脚,当这个脚接⼊⾼电平时,芯⽚的芯⽚数据均处于禁⽌写⼊状态(所禁⽌的地址段要看各芯⽚的详细资料),当把WP脚接到地线时,芯⽚处于正常的读写状态。当⼀个电路要求正常使⽤时是不允许程序修改EEPROM中的数据,只有在维护设置才可以修改数据,这时可以在电路上设置WP跳线或⽤微处理器对WP进⾏控制,这样只有在特定的电路状态下才可以更改到数据。
要在单⽚机系统中应⽤I2C总线的EEPROM做存储设备时,先要了解I2C总线的基本驱动⽅法。在I2C总线空闲时,SDA和SCL应为⾼电平,也只有在这个条件下,微处理器才可以控制总线进⾏传输数据。在数据传输的刚开始时,总线要求有⼀个START(开始位)位做为数据开始的标识,它的要求是SCL为⾼时,SDA有⼀个从⾼到低的电平跳变动作,完成这个动作后才可以进⾏数据传输,时序图参看图三'开始'。传输数据时,只有在SCL为⾼电平时,SDA上的电平为有效数据。编写单⽚机向总线送数据程序时则可以在SCL还在低电平时,把数据电平送到SDA,然后拉⾼SCL,这时SDA不应有电平跳变,延时后拉低SCL,再进⾏下⼀位的数据传送直到完成。在总线上读数据时也是只有在SCL为⾼时,SDA为有效数据。时序参看图
三'保持'。传送数据完成后,总线要有⼀个STOP(结束位)位,来通知总线本次传输已结束,它的要求是SCL为⾼时,SDA 有⼀个从低到⾼的电平跳变动作,正好和START位相反。在编程时要注意的是:不要在SCL为⾼时改变SDA的电平状态,
图3
I2C总线在每接收完⼀个字节(8个⼆进制位)后,在第九个时钟信号时,会在SDA上回应⼀个低电平的ACK应答信号,以此表明当前受控的器件已接收完⼀个字节,可以开始下⼀个字节的传送了。时序图可以参看图四。单⽚机编程时可以在传送完⼀个字节后,把连接SDA的IO⼝线设置回读数据状态,如使⽤51系列的单⽚机时就要把IO⼝置⾼电平。然后在SCL操作⼀个脉冲,在SCL为⾼时读取SDA,如不为低电平就说明器件状态不空闲或出错。需要注意因为SDA是双向的IO,⽆论是微处理器接收还是器件接收,每个字节完成后,接收⽅都可以发送⼀个ACK回应给发送⽅。
图4
I2C总线在操作受控器件时,需要先发送受控器件的器件地址,24系列的EEPROM也不例外,在每次命令前需要先发送⼀个字节的器件地址和读写标识,也可称为器件录址。图五是24C64的器件寻址命令中每个位所代表的意思。A2、A1、A0位是器
件地址,它是对应于芯⽚的A2、A1、A0引脚,也就是说如果芯⽚A0引脚被
设置成⾼电平时,在发送器件地址命令时字节中的A0位要设置为1,A0引脚为低电平时A0位设置为0。这样不难看出在同⼀总线可以挂8个24C64。A TMEL公司的24C系列芯⽚24C32及以上的型号使⽤16位地址进⾏寻址。24C32之前的型号因为使⽤的是8位地址,所以在超过256字节的8位地址型号中会占⽤到A0、A1、A2位的来做页地址,每页有256字节,以此解决地址位不⾜的问题。所以不同的型号器件地址位定义就有所不同,各型号的器件地址字节定义如图五⾄图七。要注意的是24C01是没有器件地址的,还有24C16/16A的A0-A2已被页地址占⽤完,也就是说这三个型号的芯⽚只能在同⼀总线上挂⼀个,所以在设计电路选择器件时要注意这个问题。器件地址字节中的R/W位是⽤于标识当前操作是读器件还是写器件,写器件时R/W位设置0,读器件时R/W位设置1。
图7
24C系列芯⽚的读写指令格式只有⼏种,下⾯以24C64芯⽚的指令格式来说明。
写⼊单个字节
写⼊字节指令每次只能向芯⽚中的⼀个地址写⼊⼀个字节的数据。⾸先发送开始位来通知芯⽚开始进
⾏指令传输,然后传送设置好的器件地址字节,R/W位应置0,接着是分开传送⼗六位地址的⾼低字节,再传送要写⼊的数据,最后发送停⽌位表⽰本次指令结束。图⼋是写⼊单个字节的时序图。
图8(点击看⼤图)
页写⼊
24C64⽀持32字节的页写⼊模式,它的操作基本和字节写⼊模式⼀样,不同的是它需要发送第⼀个字节的地址,然后⼀次性发送32字节的写⼊数据后,再发送停⽌位。写⼊过程中其余的地址增量⾃⼰由芯⽚内部完成。图九页写⼊的时序图。⽆论那种写⼊⽅式,指令发送完成后,芯⽚内部开始写⼊,这时SDA会被芯⽚拉⾼,直到写⼊完成后SDA才会重新变的有效,在编写微处理器程序时可以在写⼊的时候不停发送伪指令并查询是否有ACK
图9(点击看⼤图)
读当前地址
这种读取模式是读取当前芯⽚内部的地址指针指向的数据。每次读写操作后,芯⽚会把最后⼀次操作过的地址作为当前的地址。在这⾥要注意的是在微处理器接收完芯⽚传送的数据后不必发送给低电平的ACK给芯⽚,直接拉⾼SDA等待⼀个时钟后发送停⽌位。图⼗是读当前地址时序图。
读任意地址
"读当前地址"可以说是读的基本指令,读任意地址时只是在这个基本指令之前加⼀个'伪操作',这个伪操作传送⼀个写指令,但这个写指令在地址传送完成后就要结束,这时芯⽚内部的地址指针指到这个地址上,再⽤读当前地址指令就可以读出该地址的数据。图⼗⼀是读任意地址的时序图
图11(点击看⼤图)
连续读取
连续读取操作时只要在上⾯⼆种读取⽅式中芯⽚传送完读取数据后,微处理器回应给芯⽚⼀个低电平的ACK应答,那么芯⽚地址指针⾃动加⼀并传送数据,直到微处理器不回应并停⽌操作。图⼗⼆是连续读取的时序图。
图12(点击看⼤图)
ATMEL公司的24C系列的其它型号的读写操作⽅式基本和上⾯介绍的相同,只是在8位寻址的芯⽚中地址位只⽤⼀个字节,还有就是在24C01中没有器件地址,地址位只占⽤⾼7位,最低位为R/W位.。其它公司的24系列的EEPROM芯⽚的驱动⽅式也基本和以上所介绍的⼀样。
常⽤串⾏EEPROM的编程应⽤(⼆)
作者:温正伟原载:磁动⼒电⼦
本⽂所提供的实例程序和EEPROM读写器程序:cdle070004.rar
Microwire总线
Microwire总线是美国国家半导体公司研发的⼀种简单的串⾏通讯接⼝协议,该总线是采⽤三线进⾏数据传输。Microwire总线和SPI总线⼀样数据输⼊输出分别使⽤⼀根引线,同样可以提供同步数据传输⽅式,可以适⽤在多种微控制器、EEPROM或ADC等场合。常⽤EEPROM的93系列芯⽚就是采⽤该总线的芯⽚,采⽤COMS 技术,体积⼩巧,和24、25系列芯⽚⼀样也是⼀种理想的低功耗⾮易失性存储器。常见的93系列EEPROM存储器容量从256位到16K位。93芯⽚⼴泛使⽤在各种家电、通讯、交通或⼯业设备中,通常是⽤于保存设备或个⼈的相关设置数据。如最常见到⽹卡上的93芯⽚就是⽤于保存⽹卡的MAC物理地址、供应商名称以及相关配置。⽣产93系列芯⽚的公司也有很多。如A TMEL公司⽣产的93C46芯⽚是该公司⽣产的93系列芯⽚的⼀种,它有1K位的存储空间,93系列有⼆种数据输⼊输出模式,分别为8位和16位数据模式,1K位的存储位就可以分为128×8和64×16,它的电压范围
是2.7V到5.5V和1.8V到5.5V,可以适应低电压的应⽤,在5V的电压下最⾼时钟频率可以达到2M,芯⽚可以进⾏⼀百万次的擦写,数据可以保存⼀百年。图⼀是93C46的PID封装和
⽤于⽹卡的93LC46芯⽚。
图1
图⼆是ATMEL公司的93C46的PID封装引脚图。CS引脚为⽚选引脚,⾼电平为有效,⽤于同⼀总线上不同芯⽚的选择。在执⾏每⼀个指令之前先要把CS拉⾼,指令完成后把CS拉低使芯⽚进⼊复位休眠状态,CS为低时,芯⽚保持复位状态。在连续操作多个指令时,指令与指令间,CS必须要有不⼩于⼀个TCS时间的低电平保持,使芯⽚复位。ATMEL公司的93C46芯⽚⼯作电压2.7V-5.5V的型号TCS不能⼩于250ns,⼯作电压1.8V -5.5V的型号TCS不能⼩于1000ns。SK是串⾏时钟输⼊引脚。DI是串⾏数据输⼊引脚,接收微控制器传向芯⽚的数据、地址和命令数据。DO是串⾏数据输出引脚。ORG引脚是内部数据结构选择输⼊引脚,该脚为⾼电平时数据结构为×16,低电平时数据结构为×8,DC是空脚。
图3(点击看⼤图)
图三是93C46芯⽚的MicroWire总线时序图。在编写驱动程序前,先要分析⼀下这个时序图。从图中可以看到,在CS被拉⾼⾄少tCSS时间(CS初始时间)后,才能开始在SK上传送时钟信号,时钟的正半周和负半周时间不能⼩于tSKH和tSKL。最后⼀个时钟的正半周发送完后CS仍要保持tCSH时间(CS保持时间)后才可以拉低CS,tCSH的最⼩值可为0。指令输⼊时数据在SK的负半周低电平时开始设置,图中的tDIS(DI设置时间),在SK的⾼电平时⾄少保持tDIH时间(DI保持时间)。在图中第四条时序线图中则可以看到在芯⽚读操作时DO输⼊1或0时的时序,可以看出在SK上升沿开始后tPD0或tPD1时,DO才输出数据,在编写驱动时就要注意读DO 时可在SK拉⾼好延时tPD0(tPD1)后才读取DO的值,否则会造成误读。第五条时序线图则时指芯⽚编程时在CS上升沿开始tSV时间后DO输出状态值,tDF是指CS下降沿开始到tDF时间后才进⼊⾼阻态。因为不同的芯⽚型号、⼯作电压和⼯作频率这么参数值都会有所不同,93C46的具体参数可以参看光盘中的芯⽚资料。
93C46有7个操作指令,微处理器就是靠发送这⼏个指令来实现芯⽚的读写等功能。表⼀是93C46的指令表。在93C的其它型号中指令基本是⼀样,所不同的是地址位的长度,在使⽤时要查看相关芯⽚资料,得知地址位长度后再编写驱动程序。因为93C的数据结构有两种,所以地址位和数据位会有x8\x16两种模式,这在编程时也是要注意的。在ERASE、WRITE、ERAL、WRAL指令之前必须先发送EWEN指令,使芯⽚进⼊编程状态,在编程结束后发EWDS指令结束编程状态。仓库监控
表1
READ(读数据)
所有的指令的第⼀位为START(起始位),芯⽚确认起始位的条件是:CS和DI为⾼电平时,SK的第⼀个脉冲⾼电平时DI仍为⾼电平。微控制器发送完起始位后就可以输⼊7种指令所需的命令代码、地址码和数据来完成指令操作。READ指令在发送完地址码AN-A0后(地址码位数位要根据型号和所选⽤的数据结构来确定),DO从⾼阻态变为低电平,在随后的⼀个SK脉冲后在DO输出DN-DO的数据(数据位数由所选⽤的数据结构来确定),微控制器在这时读取DO取得数据,读取完数据后拉低CS 结束指令。
图4(点击看⼤图)
EWEN(擦写使能)
芯⽚上电后就进⼊EWDS擦写禁⽌状态,这时要进⾏擦写指令,微控制器必须先要发送EWEN指令,使能芯⽚进⼊允许擦写的状态,否则操作任何擦写指令都是⽆效的。在完成擦写操作后发送EWDS指令,使芯⽚进⼊禁⽌擦写的状态,这样可以防⽌因⼲扰或其它原因造成的数据错误。要注意的是:在第⼀个EWEN指令后芯⽚⼀直保持在擦写允许状态,直到使⽤EWDS 或开断电源,芯⽚才会重新进⼊擦写禁⽌状态。
图5(点击看⼤图)
EWDS(编程禁⽌)
中医管理系统图6(点击看⼤图)
WRITE(写⼊数据)
WRITE指令在发送完数据位后,CS⾄少拉低tCS时间再拉⾼,这时DO会从⾼阻态变为低电平来指⽰芯⽚正在进⾏编程,微控制器应在这时检测DO,当DO再次拉⾼时芯⽚编程完成芯⽚进⾏就绪状态,这时才可以进⾏下⼀个指令。芯⽚编程所需的时间为tWP,这个时间最⼤为10MS,所以微控制器在对芯⽚编程时最好⽤⼀个循环检测DO,当检测到⾼电平时,说明写⼊过程结束,应该退出循环体。如果循环体循环10MS后仍然没有检测到⾼电平时,说明有故障引起操作超时,这时要退出循环体,以免进⼊死循环。这样的代码在前⾯⽂章的例⼦中也是有使⽤的。WRAL指令和WRITE指令对写⼊过程的处理⽅式是⼀样的,不⼀样的是WRAL是把数据写⼊到所有地址中,时间会长点,⽽且要求电源在4.5-5.5V。
图7(点击看⼤图)
WRAL(全部写⼊)
图8(点击看⼤图)
ERASE(擦除数据)
ERASE指令可以说是另⼀种形式的写⼊指令,所不同的是它不⽤发送数据,它会把指定地址的所有数据位都置'1',也就是相当于⽤WRITE写⼊'FF'。⽽ERAL指令就是相当于⽤WRAL写⼊'FF',同样ERAL也需要⼯作在4.5-5.5V电源下。
图9(点击看⼤图)
ERAL(擦除所有数据)
图10(点击看⼤图)
常⽤串⾏EEPROM的编程应⽤(三)完结篇
SPI总线
SPI总线(Serial Peripheral Interface串⾏外围设备接⼝总线)是三线式的串⾏总线,是由摩托罗拉公司所研发,使⽤三线进⾏数据传输,分别是SCK时钟引脚,SI数据输⼊引脚和SO数据输出引脚,另外还
有CS⽚选引脚可以对同⼀总线上的芯⽚进⾏选通使⽤,SPI总线已被⼴泛使⽤在EEPROM、单⽚机和各种设备中。常⽤串⾏EEPROM中的25XX系列芯⽚就是使⽤兼容SPI总线结构,采⽤先进COMS技术,体积⼩,是⼀种理想的低功耗⾮易失性存储器,⼴泛使⽤在各种家电、通讯、交通或⼯业设备中,通常是⽤于保存设备或个⼈的相关设置数据。A TMEL公司⽣产的25系列的EEPROM存储容量从1K位到256K位。其它⼀些芯⽚也会⽤到SPI总线,如常⽤的CPU监控芯⽚X5043、X5045就带有512字节的SPI界⾯EEPROM,常⽤于单⽚机系统的看门狗电路,同时也可以提供⼩数据量的存储,给电路设计带来很多的⽅便。此⽂将⽤X5045为例讲述SPI的编程应⽤和
X5045的⼀些其它功能。X5045由Xicor公司出品,电压范围有2.7V到5.5V和4.5V到5.5V⼆个版本,擦写次数可达⼀百万次,最⾼时钟频率可达3.3MHz。图⼀是X5045的PID封装实物图。
图⼆是X5045的引脚定义图。CS/WDI是⽚选和看门狗复位输⼊,当CS为⾼时SO引脚变为⾼阻态,这时可以允许其它器件共⽤SPI总线,同时芯⽚也处于休眠状态,当CS为低时芯⽚被选中,并从休眠状态中唤醒,可以进⾏读写操作。SO是串⾏数据输出,在读芯⽚时数据从此脚输出。WP是写保护引脚,当WP为低时芯⽚写保护,不能对芯⽚写操作,但其它功能不受影响。Vss是电源地。SI是串⾏数
4d动感座椅据输⼊,接收来⾃控制器的数据和地址。SCK是串⾏时钟输⼊,RESET是复位输出,Vcc是电源。在25芯⽚中还有⼀个HOLD引脚,此引脚的功能是保持输⼊脚,ATMEL公司⽣产25芯⽚的HOLD引脚是低电平有效。不⽤此功能时,HOLD引脚要保持⾼电平。在芯⽚正在串⾏传输时,将HOLD拉为低电平,可以暂停进⼀步的传送,具体⽅法是SCK变低后,将HOLD也拉低,不然在下⼀个SCK变低前不能暂停传送,要恢复串⾏传送,必须在SCK为低电平时将HOLD 拉⾼。芯⽚处于暂停时,SI,SO,SCK脚为⾼阻状态,任何时刻只要HOLD被拉低时,SO都会处于⾼阻状态。
限于⽂章的篇幅,下⾯内容只着重介绍X5045芯⽚的SPI总线对EEPROM单元的编程应⽤。在X5040芯⽚中有6个指令,它和25系列芯⽚的指令是兼容的,也就是说在25系列芯⽚中使⽤时基本上是不需要改变的,具体见表⼀。
立云购物商城
注:A8
表⼀指令集
写⼊允许和禁⽌
X5045芯⽚内部有⼀个写⼊使能寄存器,在需要向芯⽚写⼊数据时,需要先⽤WREN指令使⽚内写⼊
使能寄存器先置位,写⼊数据后可以⽤WRDI指令使寄存器复位到禁⽌状态。当上电、WRSR指令执⾏、WRITE指令执⾏、WP拉低也会使写⼊使能寄存器复位到禁⽌状态。图三是WREN/WRDI指令的操作时序图。⾸先要把CS拉低,输⼊数据,向SCK输⼊时钟信号,数据在时钟的上升沿有效,时钟上升后⾄少数据⾄少保持30ns。数据是串⾏的,所以在每个时钟周期的上升沿发送⼀个位。在操作这两个指令时,SO是处于⾼阻状态的。
电子数据系统图3写⼊使能时序
读写状态寄存器
X5045⽚内有⼀个状态寄存器,⽤于指于芯⽚的状态和设置,可以读写,芯⽚出⼚时状态寄存器值为30H。具体每位的功能请看表2。WIP写⼊保护位,是只读位,指⽰芯⽚是否正忙于写⼊操作。当WIP为"1"时,说明写⼊正在进⾏,为"0"时表⽰没有进⾏写⼊。在编程时,写⼊数据操作后,可以查询WIP位,当WIP为0后才进⾏下⼀次的写⼊操作,这样可以避免写⼊出错。WEL写⼊使能状态位,是只读位。WEL位的状态由WREN和WRDI指令确定,WREN成功执⾏后WEL为"1"指⽰允许写⼊数据,WRDI指令成功执⾏后WEL为"0"指⽰禁⽌写⼊数据。在编程时可以先查询WEL位的状态,如为0时则要执⾏WREN后才可以进⾏写⼊操作。BL0、BL1设置当前保护的区块地址,是可读写位,这两个位的设置和区块地址的关系如表3,区块的内容被保护后,就只能读出⽽不能写⼊了。25系列芯⽚中不
同型号的芯⽚容量不⼀样,BL设置所保护的范围也不⼀样。WD1、WD0看门狗设置位是X5045/43特有的设置位,是可以读写位,在25系列芯⽚中这两个位是保留位,在X5045中有看门狗功能,这两个位就⽤于设置MCU喂狗的时间,表4是看门狗位的设置时间。状态寄存器的第6和第7位是保留位。读状态寄存器时,发送完RSDR指令后,SO由⾼阻态转为输出数据,从数据位的⾼位开始。写状态寄存器,发送完WSDR指令后,再发⼀个字节的状态数据就可以了,其中只读位可以是"1"也可以是"0",它们不会被WSDR指令所更改。图5、图6是读写状态寄存器的时序图。
表2状态寄存器定义
表3BL设置位
表4看门狗设置位
读数据
图6是读数据时的时序,先拉低CS选中芯⽚,先要把需读取的地址的第9位加到指令字节的第4个字节中,发送完指令字节就发送地址字节的前8位,这时SO就会由⾼阻态转为输出数据。每当⼀个字节的数据传送完毕后,芯⽚内部的地址指针⾃动加1,指向下⼀个数据地址,这时如仍有时钟脉冲时,数据会被继续输出,CS脚拉⾼后输出才会终⽌。当最⾼位地址的数据被读出后,地址指针指向00H。
图6读数据时序(点击看⼤图)
写数据乙烯乙二醇
在向芯⽚写⼊数据之前,写使能寄存器必须处于置位状态,⼀般可以不必查询写使能寄存器的状态,⽽直接⽤WREN置位写使能寄存器。在发送完WREN指令后,必须把CS拉⾼,在CS拉⾼之前写使能寄存器并没有置位,这时向芯⽚传送数据是不会被写⼊的。写使能寄存器置位后,再将CS拉低,把需读取的地址的第9位加到指令字节的第4个字节中,发送完指令字节就发送地址字节的前8位,然后发送需写⼊的数据。WRITE指令
可以连续写⼊16个字节,但这16个字节的地址必须在同⼀页中。每⼀页的地址由[xxxxx0000]开始,到
[xxxxx1111]结束。操作⽅法就是在发送完每⼀个地址和数据后,继续发后⾯的数据,芯⽚内部的地址指针会⾃动累加,当达到页中最后⼀个字节时,时钟仍在继续,则内部地址指针回到页中第⼀个地址重新开始累加,并覆盖以前写⼊的数据。要注意的是,在操作过程中CS 不能拉⾼,只有在数据字节的最后⼀个位传送完成后才可以拉⾼CS,不然写⼊操作将不完全。在写⼊数据或写状态寄存器指令写送后,芯⽚会进⼊⼀次⾮易失性写操作,这会花费⼀定的时间,最⼤约为10ms,在这个时间内可以⽤读状态寄存器,并检查WIP位,当WIP为1时则说明写⼊还在进⾏中,只有当

本文发布于:2024-09-22 03:39:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/147750.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   地址   指令   器件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议