打印

请教有关存储数据丢失问题

[复制链接]
1822|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzk789|  楼主 | 2012-8-31 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位亲们:
我以前搞的一个项目,是自动包装的一个机器,是由STC12C5A60S2+几排数码管显示+一些按键+2路加热控制+2路电机控制组成的,其中温度值和电机行程都是可以直接在面板上设定的,设定完自动保存,掉电时也会记住当时的状态,最近客户老是反应说机器工作2-3个月有时会出现开机设定值都为0的情况,有的机器则大约一个月会出现,有的根本不会出现。
对于数据存储是这样的,有做一路掉电检测给MCU,MCU一检测到掉电信号就把目前的设定值和进行到哪一步存储到MCU里面,没有外挂24C02之类的,MCU的供电及其他部分的供电如图: 78L05只供给MCU和掉电检测IC,且在IC旁边有对地接一个1000U/6.3V的大电容,7805则是供给显示部分以及输出驱动,输出全部通过光耦隔离。
请各位高手帮我诊断一下会有什么原因造成开机设定数据全为0? 我自己觉得是掉电时MCU有在存数据,但是掉电太快没来不及存好就已经没电了,所以下一次开机时数据就都为0了,不知道这种判断是否正确?
我现在准备在D4这个位置单独加一个二极管分一路给78L05供电,这样会减小断电时其他部分对这一路的电能的损耗。

相关帖子

沙发
dqyubsh| | 2012-8-31 22:49 | 只看该作者
你的分析有道理。首先确保写对了,用示波器量一下掉电中断出现后多长时间能完成写操作,假定这个时间是10ms,那么电容至少要维持20ms以上才可以。这时候如果电压偏低,那么可能写出错,结果就不可知。

你可以快速拔插电源,1000次,看看是不是有故障。如果有,换个2200uF的电容,再试。加二极管也可以,用1N5817之类的。

使用特权

评论回复
板凳
chunyang| | 2012-9-1 12:48 | 只看该作者
STC的在线数据保存是基于程序存储器的,写入时间较慢,而且需要先擦除后写入,写入之前电压过低就会写入失败,而擦除完成了数据就会清零。想要写入可靠的话,需要提供足够的后备电源,可以加大滤波电容,也可以用后备电池解决。

使用特权

评论回复
地板
GavinZ| | 2012-9-1 16:20 | 只看该作者
我觉得你分析的对。我记得用atmega162时,在手册里看到过一句“During periods of low VCC, the EEPROM data can be corrupted because the supply voltage is too low for the CPU and the EEPROM to operate properly. These issues are the same as for board level systems using EEPROM, and the same design solutions should be applied”所以你应该弄个大电容单独为78L05提供电能,再弄个二极管,阻止其他同源电路消耗里面的电荷;我觉得你的掉电信息写入过程很长的话,应该用电池。

使用特权

评论回复
5
zzk789|  楼主 | 2012-9-6 18:05 | 只看该作者
4# GavinZ



可是电池就涉及到寿命问题,一个电池能用2年以上吗?  按照每天工作18小时来算的话。

使用特权

评论回复
6
my278807041| | 2012-9-7 10:11 | 只看该作者
应该是来不及写,最好用备用电池了,我们做过这样的项目,用的1000U,不可靠

使用特权

评论回复
评论
guanqiong 2013-5-13 14:05 回复TA
用1000U的回不会好点呢?能不能发个电路图看看 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

14

帖子

1

粉丝