自动识别eeprom分页大小及写eeprom的方法

文档序号:6782573阅读:4392来源:国知局

专利名称::自动识别eeprom分页大小及写eeprom的方法
技术领域
:本发明涉及芯片测试与应用领域,尤其涉及一种自动识别EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory,电可擦可编程只读存储器)分页大小及DMA(DirectMemoryAccess,存储器直接存取)方式写EEPROM的方法。
背景技术
:MCU(microprocessorcontrolunit,微处理器控制单元)能用两种方式通过12(:总线读写EEPROM,其一是常规模式(Generalmode),另一个是DMA模式(DMAmode)。在常规模式下,读写EEPROM只能一个字节一个字节地进行;而DMA模式下,读写EEPROM可以以分页(Page)为单位进行。使用DMAmode时,MCU中EEPROM地址自动更新范围局限于EEPROM的一个分页中,一旦需要进行的DMA操作的EEPROM地址范围大于一个分页,那么就需要根据分页大小进行多次的DMA操作。由于不同型号的EEPROM对应的分页大小并不相同,如表l所示,分页大小有8字节(byte),16字节,32字节等等,所以,在DMA跨页读写测试以及实际应用中,需要事先知道EEPROM型号,根据EEPROM型号确定分页大小,这样给测试及使用带来不便。表1ATMEL的AT24CXX系列EEPROM资料EEPROM型号EEPROM大小分页大小AT24C01IK8byteAT24C022K8byte<table>tableseeoriginaldocumentpage5</column></row><table>
发明内容本发明要解决的技术问题就是提出一种自动识别EEPROM分页大小及DMA方式写EEPROM的方法,克服现有技术在DMA跨页读写测试以及实际应用中,需要事先知道EEPROM型号,再根据EEPROM型号确定分页大小的问题,自动识别EEPROM分页大小,加快芯片测试的周期。为了解决上述技术问题,本发明提供一种自动识别电可擦可编程只读存储器EEPROM分页大小的方法,包括如下步骤(1)微处理器控制单元MCU读写EEPROM的地址点,确定EEPROM的容量大小;(2)根据EEPROM的容量大小和该EEPROM分页大小的对应关系,识别出该EEPROM分页大小。进一步地,所述步骤(1)中,MCU读写EEPROM的地址点时,把MCU设置在常规模式。进一步地,所述步骤(1)中,MCU读写EEPROM的地址点为EEPROM的分界地址点。进一步地,所述步骤(1)中,对不同EEPROM大小的分界地址点进行写才喿作,再读这些地址点,判断返回值是否和写入值一致,确定EEPROM大小。为了解决上述技术问题,本发明还提供一种存储器直接存取DMA方式写EEPROM的方法,其特征在于,包括如下步骤(A)MCU读写EEPROM的地址点,确定EEPROM的容量大小;(B)根据EEPROM的容量大小和该EEPROM分页大小的对应关系,识别出该EEPROM分页大小;(C)设置DMA写操作的起始地址和长度,根据EEPROM分页大小,进行DMA方式写EEPROM。进一步地,所述步骤(A)中,MCU读写EEPROM的地址点时,把MCU设置在常规模式。进一步地,所述步骤(A)中,MCU读写EEPROM的地址点为EEPROM的分界地址点。进一步地,所述步骤(A)中,对不同EEPROM大小的分界地址点进行写^喿作,再读这些地址点,判断返回值是否和写入值一致,确定EEPROM大小。进一步地,所述步骤(C)包括如下步骤(CI)设置MCU工作在DMA模式,并设置DMA写操作的起始地址和长度,判断第一次读写的长度,进行第一次DMA写操作;(C2)判断剩余需要写入的长度是否小于一个分页,若否,则执行(C3),否则,执行步骤(C4);(C3)更新起始地址,进行一个分页长度的DMA写操作,返回执行步骤(C2);(C4)进行小于一个分页长度的最后一次DMA写操作。进一步地,所述步骤(Cl)第一次DMA写操作中,先判断起始地址到下一个页边界的长度,以这个起始地址和长度进行第一次DMA写操作。在过去的DMA跨页读写测试中,需要先知道EEPROM型号,然后再查询分页大小。在本发明中完全可以达到自动识别的目的,能够达到快速判断的效果,大大加快芯片测试的周期。图1是本发明实施例的流程图。具体实施方式通过查询EEPROM特性可以看出,EEPROM的分页大小和它的实际容量大小有对应关系(正比)。例如ATMEL的AT24CXX系列的EEPROM,其512K(AT24C512)的EEPROM,分页大小为128字节,而128K(AT24C128),64K(AT24C064)的分页大小就是64字节,而最小的lk容量的(AT24C1),分页大小仅仅为8字节(见表1),因此我们可以通过确定所连的EEPROM的容量大小,来确定其分页的大小。然后通过进行多次的DMA写入,完成地址范围4支大的跨页DMA写入。对于如何确定EEPROM的容量大小,可以利用MCU中的常规模式,对几种EEPROM大小的分界地址点进行写操作,再读这些地址点,通过返回值是否和写入值一致,就能确定EEPROM大小,再根据EEPROM大小和分页大小的对应关系,确定分页大小。下面结合附图及具体实施例对本发明进行详细说明。如图1所示,本发明实施例包^r如下步骤步骤IOI,把MCU设置在常规一莫式;步骤102,写EEPROM大小的边界,读取返回值;例如,对于ATMEL的EEPROM,可以依次写地址点0x200(对应AT24C01,1K容量大小的分界地址点),0x400(对应AT24C02,2K容量大小的分界地址点),0x400(对应AT24C04,4K容量大小的分界地址点)……0x40000(对应AT24C512,512K容量大小的分界地址点);步骤103,判断读取的返回值与写入的值是否一致,若一致,则表示写入了相应的值,即写入未超过其地址范围,还需要进一步判断其容量,返回步骤102;若不一致,则表示没有写入相应值,即写入超过其地址范围,可以判断出该EEPROM容量,执行下一步;在步骤102~103中,由于对于ATMEL的EEPROM,AT24C512具有最大容量(512K),如果判断不是256K(AT24C256),那么一定是512K(AT24C512),所以最大只需写分界地址点到0x20000(对应AT24C256,256K容量大小的分界地址点),若写入值与读出值相同,即可判断容量为512K;或者为保险起见,可以写512K的分界地址点0x3ffff,如果写入值与读出值相同,即可判断容量为512K;步骤104,根据EEPROM大小和分页大小的对应关系,确定分页大小;以上步-骤即可自动识别EEPROM分页大小。步骤105,在后续的执行DMA方式写搡作时,通过设置的DMA写操作的起始地址和长度,判断第一次读写的长度,保证以后的读写都是从分页开始;设置MCU工作在DMA模式,进行第一次DMA写操作;其中,第一次DMA写操作中,先判断起始地址到下一个页边界的长度,以这个起始地址和长度进行第一次DMA写操作;步骤106,判断剩余需要写入的长度是否小于一个分页,若否,则执行步骤107,否则,^执行步骤108;步骤107,更新起始地址,进行一个分页长度的DMA写操作,返回执行步骤106;步骤108,进行小于一个分页长度的最后一次DMA写操作,结束本流程。本发明是以ATMEL的EEPROM为例,说明EEPROM大小和分页大小的对应关系,对于其它厂家的EEPROM,其对应关系也类似,此处不再详述。另外,本发明还可以有些变形,同样可以自动识别EEPROM分页大小比如从表l中可以看出,EEPROM大小为1K和2K时,分页大小都是8字节,同样,EEPROM大小为4K、8K、16K时,分页大小都是16字节,等等,那么为了简化步骤,可以只写EEPROM大小2K的分界地址点、16K的分界地址点、64K的分界地址点等等,即可判断EEPROM分页大小;另外,在上述实施例中,通过写EEPROM分界地址点来判断EEPROM大小,在其它实施例中,也可以通过写EEPROM的其它地址点,只要保i^能够判断EEPROM大小即可。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。权利要求1、一种自动识别电可擦可编程只读存储器EEPROM分页大小的方法,其特征在于,包括如下步骤(1)微处理器控制单元MCU读写EEPROM的地址点,确定EEPROM的容量大小;(2)根据EEPROM的容量大小和该EEPROM分页大小的对应关系,识别出该EEPROM分页大小。2、如权利要求i所述的方法,其特征在于,所述步骤(1)中,MCU读写EEPROM的地址点时,把MCU设置在常规模式。3、如权利要求l所述的方法,其特征在于,所述步骤(l)中,MCU读写EEPROM的地址点为EEPROM的分界地址点。4、如权利要求3所述的方法,其特征在于,所述步骤(l)中,对不同EEPROM大小的分界地址点进行写操作,再读这些地址点,判断返回值是否和写入值一致,确定EEPROM大小。5、一种存储器直接存取DMA方式写EEPROM的方法,其特征在于,包括如下步骤(A)MCU读写EEPROM的地址点,确定EEPROM的容量大小;(B)根据EEPROM的容量大小和该EEPROM分页大小的对应关系,识别出该EEPROM分页大小;(C)设置DMA写操作的起始地址和长度,根据EEPROM分页大小,进行DMA方式写EEPROM。6、如权利要求5所述的方法,其特征在于,所述步骤(A)中,MCU读写EEPROM的地址点时,把MCU设置在常规模式。7、如权利要求5所述的方法,其特征在于,所述步骤(A)中,MCU读写EEPROM的地址点为EEPROM的分界地址点。8、如权利要求7所述的方法,其特征在于,所述步骤(A)中,对不同EEPROM大小的分界地址点进行写操作,再读这些地址点,判断返回值是否和写入值一致,确定EEPROM大小。9、如权利要求5所述的方法,其特征在于,所述步骤(C)包括如下步骤(Cl)设置MCU工作在DMA模式,并设置DMA写操作的起始地址和长度,判断第一次读写的长度,进行第一次DMA写操作;(C2)判断剩余需要写入的长度是否小于一个分页,若否,则执行(C3),否则,执行步骤(C4);(C3)更新起始地址,进行一个分页长度的DMA写操作,返回执行步骤(C2);(C4)进行小于一个分页长度的最后一次DMA写操作。10、如权利要求9所述的方法,其特征在于,所述步骤(Cl)第一次DMA写操作中,先判断起始地址到下一个页边界的长度,以这个起始地址和长度进行第一次DMA写操作。全文摘要本发明公开了一种自动识别电可擦可编程只读存储器EEPROM分页大小的方法,包括微处理器控制单元MCU读写EEPROM的地址点,确定EEPROM的容量大小;根据EEPROM的容量大小和该EEPROM分页大小的对应关系,识别出该EEPROM分页大小。本发明还公开了一种存储器直接存取DMA方式写EEPROM的方法。本发明能够自动识别EEPROM分页大小,加快芯片测试的周期。文档编号G11C29/48GK101246749SQ20081010276公开日2008年8月20日申请日期2008年3月26日优先权日2008年3月26日发明者游明琦,蒋亚诚,韬谢申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1