1. 不同牌号24C02的性能区别
24C02与单片机的接口非常简单,如下图所示。E0,E1,E2为器件地址线,WP为写保护引脚,SCL,SDA为二线串行接口,符合I2C总线协议。在一般单片机系统中,24C02 数据受到干扰的情况是很少的,但是随着单片机抗干扰性能的变差,以及恶劣工业环境中单片机系统的应用,一些智能单片机控制系统相继出现24C02数据被冲掉的问题,而且随着单片机的牌号以及24C02的牌号不同而出现不同程度的干扰现象。以前通过简单的器件之间替换比较,发现不同牌号的24C02其抗干扰性能是不一样的,于是就认定24C02器件存在质量好坏的问题。后来在一次偶然的机会里,发现有些24C02的WP引脚并不起到保护作用,也就是说将 WP引脚与CPU输出引脚断开并保持高电平的情况下,CPU仍然能够对24C02中的数据进行修改写入!在惊讶之余,笔者收集了许多不同牌号的24C02 进行试验,除了基本的读写功能外,还对地址功能以及WP引脚保护功能进行了全面的检测,发现一种ATMEL(激光印字)以及XICOR牌号的24C02具有全面的符合I2C总线协议的功能,而有些牌号24C02要么没有WP引脚保护功能,要么没有器件地址功能(即2 片24C02不能共用一个I2C总线),有些甚至两种功能均无。所以说一些同样功能型号的电子器件在兼容性上往往会带来意想不到的问题,值得引起注意。
2. 24C02器件的选用
无论是智能仪器仪表还是单片机工业控制系统都要求其数据能够安全可靠而不受干扰,特别是一些重要的设定参数(如温度控制设定值)受到干扰后变成一个很大的数字,这时就有可能发生烧箱毁物的破坏性后果,给生产和经济带来损失,因此必须选用可靠的24C02器件作为数据储存单元。
对于只用一片24C02器件的系统,因为不需要分辨不同的地址,只要WP保护功能正常就可以了,这只要断开WP与CPU连线且保持高电平,再试一下系统数据读写功能是否正常就可以了。而这一点对软件抗干扰技术也是至关重要的。一般来说,同种牌号的24C02器件性能是一样的,可以采用抽样试验决定取舍;对于有2片24C02以上的系统,必须严格检查其器件寻址功能,这可以轮流拨下其中一片24C02器件,检查相应的数据存取功能,若没有交叉出错现象则可以选用。
3. 提高24C02数据安全的软件措施
(1)建议数据以十进制BCD码方式存入24C02,这样可以提高有效数据的冗余度,即24C02中的存储单元其有效数据为0-9,大于9则为无效数据。这样,在数据写入24C02之前就可以插入校验子程序,对预备写入的数据进行检查,若该RAM数据已经受到干扰,其值大多数应落在大于9的范围内(可能性百分比系数为246/256),故此当数据大于9时就禁止执行写入24C02的子程序,以免错误数据写入24C02,而对正常需要修改的参数无影响。
(2) 24C02中数据保持冗余度后,还可以对读出数据进行检查,若为大于9的非正常数据,说明24C02中数据已经受到干扰,此干扰值是绝对不能用的,对于特定的系统可以采取不同的方法,比如带温度控制的培养箱等系统,如其温控范围为0~50℃,则数据出错后,读入值可能变成200℃或更高值,这是非常危险的,针对这种情况可以将设定值硬性规定为某一个安全值比如25℃,因为不知道原先设置的参数值,这也是无可奈何的事情。
(3)对写入24C02子程序设置软件口令,口令符合可以执行写入,否则拒绝写入。具体做法是:设置写口令寄存器EPSW,按正常CPU执行程序的脉络,找出所有的数据写入24C02前的必经之路,比如,一般下在功能键按下后经过一些数据处理,最终将要保存的参数写入24C02,这时可以在键扫描子程序里,当有键输入时,对写口令寄存器EPSW置数5AH,然后在写24C02子程序中紧跟指令CLR WP后插入检查口令语句,判断EPSW值若为5AH,则允许继续执行,否则立即返回,不许执行写入数据。当正确执行完写入24C02子程序后需对EPSW 清0,并且在主程序适当的地方加上EPSW清0指令,反复冗余执行。这样程序受到干扰时,EPSW多数为0,即使EPSW数受到干扰时,也很少有机会刚好等于5AH,使错误数据非正常写入24C02的机会大大减少。
数据写入24C02子程序插入口令形式:
WRIT: CLR WP
MOV R1, #EPSW
MOV A, @R1
CJNE A, #5AH,WERR
…… ;
数据写入24C02操作部分:
WERR: SETB WP
MOV R1, #EPSW
MOV @R1, #0
RET
其编程顺序刻参考下面程序流程图
4.保护24C02数据的硬件措施
在某些干扰特别严重的场合,24C02数据还是有可能被冲掉,最彻底的方法是利用硬件来干预写入数据过程。一般情况下,是将WP引脚与CPU引脚断开,而与功能键连接起来,功能键没按下时,WP保持高电平,只有功能键按下时,WP才是低电平,允许写操作。当然,这样一来对于某些过程量需要程控存入 24C02时就办不到了,这也是利用功能键同步保护24C02数据的一种不方便之处。
如果写入24C02的数据跟2 个按键有关,则可以用二极管隔离,采用如图2的形式。
这样两键本身互不影响,而任一键按下都能使WP变低,使数据写入操作有效,对于多键关联,依此类推多放几个二极管隔离就可以了。
5.结束语
以上所述的软硬件措施在具体的单片机控制系统中可以灵活应用,硬件联锁保护比较彻底,但是单独通过程序修改24C02中的某些数据就不可能了;软件保护比较灵活,可以随时对控制过程中处理的数据存入24C02,以达到掉电保存的目的。在笔者设计的智能光照箱单片机控制系统中,由于日光灯起动和压缩机起动及关断时的电源高频干扰,系统的温度设定值及时间设定值曾经经常发生变化,采用上述软硬件并用的措施后系统运行稳定可靠,再也没有发生设定数据被冲掉的现象。
6、重要补充(醉清风补)
在使用了N多个厂家24c02后发现:很多厂家的的Twr时间不一样,这样会导致有些开发工程师软件设计上带来麻烦,顺便说下Twr时间是上一次写记忆到下一次写记忆的间隔时间,英文资料里要求24c02内部写数据最大时间为10ms,也就是说在软件设计时,应该把2次写记忆时间间隔控制在大于Twr时间即间隔大于10ms,这样就不会有问题了,不同的芯片Twr时间相差很大,ATMEL24C02为标准的芯片Twr实际在2ms左右,其他杂牌24C02芯片Twr实际时间一般都在4ms以上,所以建议各位工程师设计时Twr时间一定要控制在大于Twr时间,否则即使会在批量时暴露问题(哎!本人吃亏不少啊,教训得出来的啊,也怪自己不好好读英文资料,呵呵,血的教训换来给大家参考),所以在选用24C02芯片时,这项功能也可以检测下,Twr时间越小越好,也就是说24C02内部写数据速度更快。
24C02主要应用
24C02是一种常见的电子存储器,因其简单易与单片机接口而被广泛应用。然而,不同品牌和型号的24C02在性能上存在差异。在工业环境下,尤其当单片机抗干扰能力减弱时,不同品牌的数据保护功能表现不一,有些型号甚至可能没有写保护(WP)引脚的功能或者无法共用I2C总线。选择24C02时,必须确保其数据安全,特...
单片机中24c02n芯片是做什么用的啊?
单片机中24c02n芯片是串行E2PROM是基于I2C-BUS 的存储器件,遵循二线制协议,由于其具有接口方便,体积小,数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用。24C02与单片机的接口非常简单,E0,E1,E2为器件地址线,WP为写保护引脚,SCL,SDA为二线串行接口,符合I2C总线协议。在一般...
单片机中24c02n芯片是做什么用的啊?
单片机中24c02n芯片是串行E2PROM是基于I2C-BUS 的存储器件,遵循二线制协议,由于其具有接口方便,体积小,数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用。因此可以用来保存一些需配置信息,例如你测温度,当温度大于某个值阀值时报警,而有时候这个阀值并不固定,有的环境报警值高点...
24c02是什么芯片
24c02是EEPROM芯片。EEPROM(ElectricallyErasableProgrammablereadonlymemory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。EEPROM可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。EEPROM(带电可擦可编程只读存储器)是用户可更改的只读存储器(ROM),其可通过高于...
24c02是具体用来干什么的?
24C02与单片机的接口非常简单,如图1所示。A0,A1,A2为器件地址线,WP为写保护引脚,SCL,SDA为二线串行接口,符合I2C总线协议。在一般单片机系统中,24C02 数据受到干扰的情况是很少的,但是随着单片机抗干扰性能的变差,以及恶劣工业环境中单片机系统的应用,一些智能单片机控制系统相继出现24C02数据被冲掉...
【蓝桥杯单片机】PCF8591和24C02综合应用-智能照明自动控制器_百度知 ...
IIC所有函数的操作流程包括主设备访问从设备的通用过程:当主设备希望向从设备发送数据时,主发送器发送START条件并寻址从接收器,然后发送数据,最后以STOP条件终止传输。若主设备想要从从设备读取数据,则需发送START条件并寻址从接收器,接收器发送请求读取的寄存器,主接收器从从发送器接收数据,最后以STOP...
ff14ts是什么意思(24c02c是什么芯片)
24c02c是I2C-BUS的存储器件。串行E2PROM是基于I2C-BUS的存储器件,遵循二线制协议,由于其具有接口方便,体积小,数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用。24C02与单片机的接口非常简单,E0,E1,E2为器件地址线,WP为写保护引脚,SCL,SDA为二线串行接口,符合I2C总线协议。在...
电子元件:op07和24c02他们各有什么作用又有什么不同
ABSOLUTE MAXIMUM RATINGS 最大额定值 串行E2PROM是基于I2C-BUS 的存储器件,遵循二线制协议,由于其具有接口方便,体积小,数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用.随着世界上各公司对该器件的开发,市场上推出了许多牌号的24C02器件,甚至还有一些冒牌的24C02器件,这样就使批量生产...
STM32CubeMX学习笔记(9)——I2C接口使用(读写EEPROM AT24C02)
它的 I2C 外设还支持 SMBus2.0 协议,SMBus 协议与 I2C 类似,主要应用于笔记本电脑的电池管理中。 二、引脚分布 STM32 芯片有多个 I2C 外设,它们的 I2C 通讯信号引出到不同的 GPIO 引脚上,使用时必须配置到这些指定的引脚。PB8 PB9 为重映射。三、EEPROM芯片 开发板中的 EEPROM 芯片型号:AT24C02。AT24C ...
一块at24c32可以存多少数据?一块at24c04可以存多少数据?回答者自己实 ...
(3)前面的大写K表示千的意思,千个位(Kb)或千个字节(KB)。表示文件的大小单位,一般都使用字节(KB)来表示文件的大小。4、综上所述,在《AT24C02中文资料》中没有明确标注AT24C02的容量为2KB或2Kb,但是随后明确了24C02为256个字节,每个字节8位,并在主要特性中用“256×8(2K)”表示内部...