打印

新手请教,如何清除数据啊?

[复制链接]
6001|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liang7143|  楼主 | 2010-10-13 17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是一个困扰我很久的问题,也是一个在实际项目中没有解决的问题?

产品在每次开机的过程中,会读取24C02中的数据,然后根据这些数据来确定自己的状态(类似于MP3的断点播放)。
我的做法是,机器开机,读取版本数据,如果版本正确,读取数据然后开机;如果版本不正确,则按默认状态开机。

现在问题就是:在批量生产的过程中,有可能会回收一部分24C02,这部分回收的24C02继续用于生产,因为可能回收的是同一软件的机器上的24C02,然后新生产的机器的第一次开机就会状态紊乱(因为是同一软件的机器,版本一样)。

请教大牛,有好的办法可以解决吗?
希望我的问题描叙清楚了。

相关帖子

沙发
wangyy608| | 2010-10-13 18:00 | 只看该作者
设定一个状态,进入此状态后将24C02的值初始化为默认值

使用特权

评论回复
板凳
liang7143|  楼主 | 2010-10-13 18:05 | 只看该作者
2# wangyy608 问题是怎么设置状态,你设置的状态也是保存在24C02中的,同一软件的机器,这是状态肯定都是一样的,我设置的版本号 其实也差不多是这个意思

使用特权

评论回复
地板
liang7143|  楼主 | 2010-10-13 18:11 | 只看该作者
为了说得更明白,我打个简单的比方。一部手机对应一张SIM卡,SIM卡里面有通讯录,当你把SIM卡换了的时候,你手机要知道,并且不应该把新的SIM卡里的通讯录显示出来。手机很容易做到,因为他可以保存SIM卡的PIN码,PIN码变化时候,就可以按默认来了

但是我这机器不行了 ,关机以后,MCU那是掉电了的~~

使用特权

评论回复
5
chunyang| | 2010-10-13 18:14 | 只看该作者
用唯一系列号做一一匹配。

使用特权

评论回复
6
liang7143|  楼主 | 2010-10-13 18:19 | 只看该作者
5# chunyang 这个我也想过了,这个唯一的序列号保存在哪里啊?按要求必须保存在MCU这边,问题是MCU保存不了啊~~

使用特权

评论回复
7
liang7143|  楼主 | 2010-10-13 18:25 | 只看该作者
在我看来,这个问题似乎是无解,也许有……
这好比移花接木,偷梁换柱~~

使用特权

评论回复
8
chunyang| | 2010-10-13 18:44 | 只看该作者
保存在程序区即可,很多编程器都支持,如果芯片支持IAP或自带非易失数据存储器则更灵活,缺点是人工设置的话批量下很麻烦,需要专门设计一个ID写入设备。

使用特权

评论回复
9
liang7143|  楼主 | 2010-10-13 19:09 | 只看该作者
8# chunyang

使用特权

评论回复
10
liang7143|  楼主 | 2010-10-13 19:10 | 只看该作者
8# chunyang

如果可以这样的话~~24C02也用不着了,因为这个项目需要保存的数据才几十个字节

使用特权

评论回复
11
chunyang| | 2010-10-13 20:28 | 只看该作者
如果需要经常性存储,除非MCU片内有真正的数据EEPROM,否则程序Flash可经不起反复擦写,需要计算寿命周期。

使用特权

评论回复
12
ayb_ice| | 2010-10-14 08:27 | 只看该作者
读取状态,判断是否合法,如果不合法恢复一默认设置,同时写入EEPROM即可

使用特权

评论回复
13
ayb_ice| | 2010-10-14 08:28 | 只看该作者
读取状态,判断是否合法,如果不合法恢复一默认设置,同时写入EEPROM即可

使用特权

评论回复
14
john_light| | 2010-10-14 08:37 | 只看该作者
很多带设置的电子产品都设有“恢复出厂配置”的功能,出厂前,不管三七四十八块五,执行该功能。

使用特权

评论回复
15
liang7143|  楼主 | 2010-10-14 09:07 | 只看该作者
14# john_light

目前是这么做的,碰见这样的问题,只能恢复出厂设置!但是客户希望我们软件改善此问题,他们觉得每台都去设置一下,有点麻烦~~但是我们实在是无解~~

使用特权

评论回复
16
liang7143|  楼主 | 2010-10-14 09:11 | 只看该作者
13# ayb_ice

谢谢这位大哥,问题是我们无法确定状态是否合法~~~
打个比方,二台MP3,一台音量18,另外一台音量25,然后我们把这二台MP3的24C02换一下,假设他们的音量大小事保存在24C02中的,那么他们的音量都变了,照理说这个状态是不合法的,但是你软件怎么判断他是不合法的呢?

使用特权

评论回复
17
ayb_ice| | 2010-10-14 09:23 | 只看该作者
什么事情都有因才有果
确定的原因一般都产生确定的结果
如果MCU本身有EEPROM也可以实现
比如第一次下载到MCU后将某FLASH设为FF(MCU需支持IAP功能),第一次运行时将外部EEPROM(或内部FLASH)设为默认值,同时将FLASH设为非FF,以后开机从EEPROM中恢复,关机备份到EEPROM中

使用特权

评论回复
18
liang7143|  楼主 | 2010-10-14 09:25 | 只看该作者
11# chunyang

谢谢大哥的支持~~~
首先请不要说我是奸商,因为我不是老板,我只是一个毕业才一年的学生,尽管在公司也是软件工程师,但是经验和工资都不配工程师职位,连菜鸟都不算,顶多入门级吧~O(∩_∩)O~

我们做的是一些山寨MP3播放机,三无产品来着~~~我的工作就是改改按键,屏驱动,移植收音模块什么的~~~
读数据只是在开机,写数据是在关机和掉电的情况下~~
谁无聊会拿着MP3开机再关机,然后再开机再关机~~
而且我们这东西寿命也不长,谁会指望一个鸟东西用上几年啊~~

使用特权

评论回复
19
liang7143|  楼主 | 2010-10-14 09:28 | 只看该作者
17# ayb_ice

谢谢~~
要是有资源,一切都好说,我们这MCU,OTP的,而且必须是专用的烧录器才行~~~

使用特权

评论回复
20
ayb_ice| | 2010-10-14 09:43 | 只看该作者
那只能出厂时设置了

使用特权

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

本版积分规则

33

主题

1868

帖子

0

粉丝