EEPROM芯片测试

测试对象

华大半导体|上海贝岭
BL24C128A
BL24C512A
BL24CM1A
BL24CM2A

测试点

1、芯片的使用寿命
2、读写速度
3、全片有效性
4、温度临界值
5、电压临界值

一、芯片的使用寿命

芯片的使用寿命、就是芯片的读写次数,在存储过程中最重要就是数据的可靠性,如果写进去和读上来的不一致,可能会造成重要数据的丢失。
  芯片手册上一般会注明芯片的读写寿命是多少,如BL24C128A芯片手册上标明的寿命为1百万次。在实际的长运过程中发现,读写了620万+还是没有将一块内存写坏掉,我测试的方式是定义一块指定大小的存储空间,循环写入0x00-0xFF,然后在读上来,对比写进去与读出来的是否一致,不一致的话,错误计数加1。(注意:这里循环写入0x00-0xFF,前一次写入的0x00,那么下一次就写入0x01,依次类推)
  发现实际测试的读写有效次数与芯片手册的描述有较大的差异,于是询问芯片的技术支持,技术支持的答复是128K这颗芯片,通常的寿命在600w-700w之间,也是测试超过1000w,芯片手册一般按照100w来的。
  规格书上一般写1百万,只是保证前1百万次读写的百分之百可靠,从前1百万次以后读写数据就变得不可靠,可能这个不可靠的次数是从1000w以后才出来,也可能这个不可靠次数从第101次开始,规格书之所以写1百万,可能是芯片厂家留有回旋的余地吧。大家在使用时候一定要注意,读写寿命,计算好写到不可靠的时间,提前做好软件规避。

芯片类型 使用寿命
BL24C128A 1百万
BL24C512A 1百万
BL24CM1A 4百万
BL24CM2A 1百万

具体见芯片规格书
官网下载地址链接: link

二、读写速度

读写速度,芯片规格书中也有说明,一般分为写单个字节的时间和写一页的时间,根据芯片的容量不同、页大小的不同,这些时间可能会存在一些差异。这个时间与底层驱动写操作之后延迟时间有关,比如你写了一块区域之后,又立刻读上来,可能在你读的过程中芯片还在执行写操作中,那么读回来的数据肯定会有问题呀。EEPROM芯片不像是Flash芯片,有单独的状态寄存器,可以通过读取状态寄存器的值来判断芯片是否处于忙碌状态,所以这里写时间要特别注意。

芯片手册推荐:

芯片类型 写一个字节 写一页 页大小
BL24C128A 3ms 3ms 64字节
BL24C512A 3ms 3ms 128字节
BL24CM1A 5ms 5ms 256字节
BL24CM2A 8ms 8ms 256字节

实际测试数据与芯片手册的数据相近,可以参考芯片手册中的数据。

测试方法:
  指定地址,写入一个字节数据,然后在读上来,查看写入的和读上来的是否一致。每次改变写操作和读操作之间的延时时间。(IIC驱动写函数中写操作完成后加的毫秒延时),测试页同理,每次写入一整页测试。

三、全片有效性测试

全片有效性测试就是对全片的每一个位进行测试,防止某些位固定为1或者固定为0,导致写入的数据与实际数据不一致。这里的测试方法是全片写入0xAA,再读取上来,观察写入的和读取的数据是否一致。再全片写入0x55,读取比较。循环操作几次,就可以将坏的位筛选出来。这里为什么要写入0xAA、0x55呢?因为0xAA 的二进制为1010 1010, 0x55的二进制为0101 0101,刚好可以将每个位进行0写1、1写0测试。
  如果是做产品的话,可以将该操作增加到出厂前的测试代码中,检查一遍EEPROM有效性,防止有问题的产品流入市场,减少损失。

四、温度临界值

同样芯片规格书中有明确的说明,芯片的操作温度范围、存储温度范围。自己也最好放到温箱里面实际测试下,跑个下限温度和上限温度。

芯片规格书温度数据(操作温度有的手册中没有注明奇怪):

芯片类型 操作温度 存储温度
BL24C128A 手册中没有找到 -65℃ to +150℃
BL24C512A -40℃ to +85℃ -65℃ to +150℃
BL24CM1A 手册中没有找到 -65℃ to +150℃
BL24CM2A 手册中没有找到 -65℃ to +150℃

测试方法:
低温(-40℃) 指定区域读写、记录读写不一致次数
高温(+85℃)指定区域读写、记录读写不一致次数
  如果你的芯片应用场合是那种高温或者低温环境,这个温箱测试就很有必要了,之前有遇到过市场问题就和应用环境问题有关,家里找了半天不复现。

五、电压临界值

EEPROM芯片电源供电一般由板子供电,如果在板子刚上电的时候,芯片的供电电压还不稳定时,读写芯片可能会存在一些未知的风险和错误。故测试电压临界值就很有必要了,一般芯片规格书中都有说明供电电压的范围。
  电源过低或者过高时想要保证数据操作的可靠性,就和IIC驱动中的时钟高电平的最短保持时间和最长保持时间有关系,之前看IIC驱动代码时,一直不太明白使用IO口模拟IIC时序时,时钟线的延时时间有怎样定义的,不同的代码延时时间不尽相同。看了芯片手册才明白,一般供电电压不同,芯片识别的时钟信号低电平和高电平的保持时间不相同,为了保证芯片正常工作,时钟电平的保持时间一般都会大于所需最长的保持时间。
如:BL24C128A芯片

电压范围在1.7V-2.5V之间:
  时钟低电平持续时间必须大于等于1.3us
  时钟高电平持续时间必须大于等于0.6us
电压范围在2.5V-5.5V之间:
  SLK_L >= 0.5us
  SLK_H >= 0.26us
  为了考虑到电压的1.7V-2.5V、所以你的驱动中时钟低/高电平最短持续时间应该大于1.3us。我看过之前的IIC驱动基本时间都是4us、5us的,应该满足了大部分的EEPROM芯片的要求,如果你在编写一款EEPROM芯片的驱动,一定要注意下这个点。

测试方法:
  EEPROM芯片电源引脚外接可变电源,调节不同电源电压在规定范围下,修改IIC驱动的时钟芯片保持时间,观察读写状态。
(修改IIC_DELAY_US宏的值)

六、编程注意

如果你的驱动程序想兼容所有BL系列芯片,需要注意以下两点:
第一点:
  时钟信号低/高电平最短保持时间,应当与需要时间最长的芯片为准。
第二点:
  芯片的设备地址和操作地址需要注意

BL24C128A的设备地址中A2\A1\A0作为设备地址、那就是最多可以挂2^3个芯片。

  对于大容量的芯片而言,16位地址显然是不够的,厂商做了一个骚操作,将设备中A0当做操作地址高位B16来传输。对于BL24CM1A芯片,只有A2\A1作为设备地址,那就最多挂2^2个芯片,同时读写操作时也应当注意,BL24CM2A也同理。

BL24Cxx系列EEPROM测试总结相关推荐

  1. AT24C01/AT24C02系列EEPROM芯片单片机读写驱动程序

    一.概述 EEPROM是嵌入式开发中比较常用的芯片,用来保存参数及掉电记忆的数据等,最常用的是ATMEL的AT24Cxx系列的IIC接口,也有其他厂家的如罗姆Rohm的BR24Gxx系列.ST的M24 ...

  2. STM32L0 系列 EEPROM 读写,程序卡死?

    STM32L0 系列EEPROM读写,使用过程必须注意到的问题,踩坑史 = =!......by 矜辰所致 目录 前言 一.写入地址问题 二.写入时候容易死机问题 2.1 问题的原因 2.2 问题的解 ...

  3. 【组件】24系列EEPROM/FRAM通用接口

    1.写在前面   "24系列"的EEPROM,一般地我们认为是以i2c为通信接口的一系列串行EEPROM,各大半导体厂商出产的该系列EEPROM都遵循这个规则,而且电路和控制程序上 ...

  4. 初学24CXX系列EEPROM使用详解STM32库函数I2C总线

    24CXX系列芯片属于EEPROM(Electrically Erasable Programmable read only memory)即电可擦可编程只读存储器,是一种掉电后数据不丢失(不挥发)存 ...

  5. 赛元单片机SC92F732x系列eeprom读写操作[以7321为例]

    目标:在0x0E区域写入0x20,在0x2E区域写入0x21,在0x4E区域写入0x22 先放效果图: 断电后,将写入程序删掉,再上电: 代码部分: 首先本代码依据赛元官方DEMO代码所作修改,官方地 ...

  6. 词嵌入 网络嵌入_词嵌入深入实践

    词嵌入 网络嵌入 介绍 (Introduction) I'm sure most of you would stumble sooner or later on the term "Word ...

  7. 需要注意AT24Cxx和BL24Cxx引脚不一样

    前几天画了一块电路板,用到EEPROM,原来的PCB电路板画的EEPROM封装是AT24Cxx系列的,后面在由于芯片缺货,就买了贝岭的BL24Cxx系列,没有注意到两款芯片的引脚位置不一样,把BL24 ...

  8. at24c02系列和at24c256系列的比较

    编号的含义: at24c02系列包括的有: 128(1K),256(2K),512(4K),1024(8K),2048(16K)字节(B) at24c256系列包括的有: 16384(128K),32 ...

  9. 单片机系统测试c语言程序,宏晶最新1T8051单片机内部EEPROM测试C语言程序

    /* --- STC International Limited ---------------- 一个完整的EEPROM 测试程序,用宏晶的下载板可以直接测试 STC12C5AxxAD 系列单片机 ...

最新文章

  1. Hadoop集群搭建(八:Hive的安装配置)
  2. android apk签名工具_关于keytool和jarsigner工具签名的使用小结
  3. 【Flask】路由和URL
  4. 小米路由器mini改打印服务器_如何把家里的闲置路由器用起来
  5. 钉钉电脑版怎么创建共享文件 钉钉文件共享的方法
  6. android+动画悬浮窗口,悬浮窗能实现自定Animation动画效果吗?
  7. C# 获取Get请求返回
  8. java 反复器_java集合类中的枚举器(反复器)
  9. 2014浙大ACM网络省赛-----Talented Chef问题(Problem -C)
  10. webpack5学习与实战-(五)-直接加载资源
  11. linux系统下安装oracle客户端
  12. delphi 剪切板变量_Delphi监视剪贴板内容
  13. hihoCoder1378:网络流二·最大流最小割定理
  14. python爬取行业数据_Python爬取拉钩招聘网,让你清楚了解Python行业
  15. 一个网站完整详细的SEO优化方案
  16. 7个强大实用网站,我收藏了这么久,希望对你有帮助!
  17. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛 E 赛马 python
  18. 举例说明计算机在现实应用中的作用,,谈一谈‘‘九思’’述说的内容在今天有什么现实意义?...
  19. 【章节总结】化学——化学反应与能量
  20. Java募捐_GitHub - javayhu/XingShan: 使徒行善,让行善成为一种习惯

热门文章

  1. Lectures on the hyperreals
  2. (四)FusionAccess搭建 —— 配置FA,vAG/vLB主备HA
  3. java查找第k大的数字_[经典算法题]寻找数组中第K大的数的方法总结
  4. Windows下Redis 安装教程
  5. 设计模式:状态机模式
  6. 2021-2027全球与中国磁吸假睫毛市场现状及未来发展趋势
  7. 微信小程序(小程序模型与宿主环境)
  8. 迷你WIFI摄像机五个优势点不可忽略
  9. 转 美制电线标准AWG与公制、英制单位对照
  10. 学习日记--ViewPager实现图片自动切换