打印

如何掉电保存电量信息到存储器

[复制链接]
2294|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kobeliulei|  楼主 | 2012-7-22 23:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在的系统就是计量芯片加上zigbee,芯片型号为CC2530,CC2530内部带有mcu.现在有个问题:就是掉电时如何保存电量信息?我需要实现的功能是要统计出一个月中每天的用电量和一年中每个月的用电量,然后在电视上用曲线和柱状图表示出来。所以要保存时间信息和电量信息到存储器中。
有下面几个方法:
1、使用2530内部的Flash。擦写次数为2万次。如果来一个脉冲就向Flash写一次,很快就会将Flash写坏。现在设想1个小时往Flash里面写1次,只能写2.28年。或者1度电的时候往Flash里面写一次,假设家庭用户1年消耗1万度电,也只能写2年。 然后再设想,在Flash数据区开5个块,设计程序计算某个单元的擦写次数,到一定次数后(比如说1.5万次),停止向这个区写入数据,自动写到下一个块。这样加起来大概有7.5万次,应该可以写7年,和产品寿命差不多了。 因为对计量精度不是很高,在掉电的时候,SRAM中的脉冲计数可以直接丢掉。 这个方法看起来应该可行,但是我不太清楚软件上实现是否很复杂。
2、外加一片EEPROM。擦写次数为100万次,价格大约1块钱。我可以按每10分钟把电量信息往EEPROM写一次,够用19年。但是EEPROM写入数据的时候有10ms的写等待时间,如果采用这个方法我就要外加掉电检测电路,使用大容量的电解电容,空间太大,在壳子里不一定能放下。另外CC2530,没有硬件I2C,是使用IO模拟的,已经挂上了RTC时钟芯片。如果再挂上一片EEPROM,用IO模拟的I2C会不会有时序上的问题。我不太清楚。
3、使用FRAM。可以实时的将电能脉冲写入FRAM.如果使用I2C接口的,也会遇到上面说的用IO口模拟I2C的问题。并且FRAM价格较贵,FM24CL04B,4Kbit的就要4块钱左右。
请您帮忙看下,哪种方式会更好一点。谢谢。

相关帖子

沙发
ejack| | 2012-7-23 08:04 | 只看该作者
1.a. 你对Flash的理解有误区。“擦”和“写”不是一个概念。
1.b. 如果你用的5个块与程序区共总线,建议不要这么使用。
2.a. 不会有时序问题。I2C从设备可以设置成不同的总线地址。
2.b. 大容量电容不一定都会体积很大。
3. 性能方面铁电是最佳选择,至于成本方面是否适合你就得摸摸自己的下巴了。

使用特权

评论回复
板凳
XZL| | 2012-7-23 10:55 | 只看该作者
flash不需要每次都写入,在掉电或者需要记录的统计结果完成时再写入。这样写入的次数就会大大减少。
单片机要有掉电检测电路,在发现掉电时,利用电容中残留的电能,第一时间存储数据!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

186

帖子

2

粉丝