OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 68294|回复: 33

STM32 FLASH的擦写寿命

[复制链接]

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-1-13 10:32:58 | 显示全部楼层 |阅读模式

    这个问题,其实从STM32各个型号的datasheet就可以看出来.

    对比了几个文档之后,我发现STM32F10x系列的不同型号,他们的最少擦写寿命不一样.仔细对比了下,原来是版本的问题.在老版本中,写的内容如下:


    这是老版本的表述,就说最少是1K次,典型的是10K次.而后面的新版本,其内容如下:



     新版本的把最少次数改为了10K次,这样的话,我们可以认为STM32的FLASH擦写周期在1W次左右.所以大家可以算算,每天擦写100次,那么需要100天.但是你能每天刷100次么?除非你想测试STM32的flash寿命,呵呵.否则,顶多就是30次的样子.这样算来,每天擦30次,从不间断,能用一年左右. 但是你能一年平均每天都擦30次么?
    



我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2015-6-10
在线时间
18 小时
发表于 2015-6-12 13:38:42 | 显示全部楼层
其实讨论FLASH的寿命的意义不仅仅在于做试验的时候.

在很多应用里面, 需要使用FLASH来模拟EEPROM, 在这个时候, 一定要反复的试验FLASH的寿命, 防止产品后期大批量出问题.
积极主动, 事在人为.
回复 支持 2 反对 0

使用道具 举报

9

主题

85

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2011-1-12
在线时间
0 小时
发表于 2011-1-14 12:51:09 | 显示全部楼层
。。。。我当年画了一个ARM7的板子,我用了半年,师弟,同学都用了半年,到现在还没刷爆呢,把芯片刷过flash寿命,菜鸟也变成老鸟了
回复 支持 1 反对 0

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2011-1-7
在线时间
0 小时
发表于 2011-1-13 10:36:02 | 显示全部楼层
顶起顶起顶起,原子的工作作风值得学习!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
 楼主| 发表于 2011-1-14 14:00:07 | 显示全部楼层
回复【3楼】PowerEDV:
-------------------------------
确实,我用avr 3年,所做东西无数,基本上我的c语言就是在avr上熟悉起来的.也就刷坏那么一两片.
所以,现在的芯片,担心芯片被刷爆,有点多余了....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

26

主题

279

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2010-12-15
在线时间
0 小时
发表于 2011-1-14 21:22:11 | 显示全部楼层
我在报纸上看芯片的工艺,130nm的工艺和30nm的工艺相差很大,特别是耗电方面.FLASH擦写次数现在已经达到100W次了吗?
我知道不达标的晶圆从国外走私到中国,一般市面上叫白片和黑片,寿命达不到原厂的一般时间.
以后采购ic,请找银洋电子
只做原装
O(∩_∩)O哈哈~
STM32芯片---上海银洋电子021-53086303
欢迎来电15900733302??采购找张经理
回复 支持 反对

使用道具 举报

13

主题

202

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2012-10-27
在线时间
65 小时
发表于 2012-11-17 17:15:48 | 显示全部楼层
唉,我当年做实验用51,用的双龙并口ISP,整个项目做下来,也就刷坏过那么一片,
回复 支持 反对

使用道具 举报

3

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2012-10-10
在线时间
1 小时
发表于 2012-11-18 02:30:23 | 显示全部楼层
励志把战舰板刷爆。。。。
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2201
金钱
2201
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-11-18 03:32:15 | 显示全部楼层
即使是 flash 写坏了, 正常的话 isp 软件会提示是在哪个位置写坏了,这个时候可以通过重新设置一下项目属性来避开那个位置,于是片子又可以继续使用了

可以参考此帖子的  3-2) 节
http://www.openedv.com/posts/list/10147.htm
https://github.com/roxma
回复 支持 反对

使用道具 举报

3

主题

123

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
364
金钱
364
注册时间
2012-4-30
在线时间
11 小时
发表于 2013-8-19 12:02:48 | 显示全部楼层
回复【9楼】keyway:

這個式可以搞一個"定時自毀程序".....時間到了,保固期也可以結束.
                                         
    

---------------------------------
小邪恶了
真的勇士,敢于直面惨淡的warning,敢于正视淋漓的error.
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2014-3-21
在线时间
2 小时
发表于 2015-3-3 13:02:52 | 显示全部楼层
回复【9楼】keyway:
---------------------------------
做人要厚道
回复 支持 反对

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2015-4-21
在线时间
21 小时
发表于 2017-6-1 12:39:05 | 显示全部楼层
那么问题来 比如说我做一个水表 每一秒或者说只要水表动了就要存储数据 而且存在flash里已达到掉电保存效果 这样水表用到最后会不不会把flash刷坏 不保存数据了
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2015-3-17
在线时间
22 小时
发表于 2017-6-1 13:44:00 | 显示全部楼层
大循环 发表于 2017-6-1 12:39
那么问题来 比如说我做一个水表 每一秒或者说只要水表动了就要存储数据 而且存在flash里已达到掉电保存效果 ...

以前那有想过类似的问题,汽车仪表盘的里程数,不知道是如何保存的
回复 支持 反对

使用道具 举报

16

主题

203

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1901
金钱
1901
注册时间
2015-7-5
在线时间
484 小时
发表于 2017-6-1 13:48:51 | 显示全部楼层
没有刷坏过片子.....
回复 支持 反对

使用道具 举报

12

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-1-5
在线时间
22 小时
发表于 2017-8-2 16:02:10 | 显示全部楼层
大循环 发表于 2017-6-1 12:39
那么问题来 比如说我做一个水表 每一秒或者说只要水表动了就要存储数据 而且存在flash里已达到掉电保存效果 ...

对头,我现在就是模拟EEPROM用,周期1小时刷4个字节的数据,固定在Flash的第59K内存页,我有个疑问就是如果刷坏了是单纯的一页坏了还是整个Flash都坏了。
天道酬勤
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2017-8-2 16:17:55 | 显示全部楼层
落月枫情 发表于 2017-8-2 16:02
对头,我现在就是模拟EEPROM用,周期1小时刷4个字节的数据,固定在Flash的第59K内存页,我有个疑问就是如 ...

一页坏了,像你这个少量数据的,搞个EEPROM最保险,寿命长,价格也不贵
学无止境
回复 支持 反对

使用道具 举报

12

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-1-5
在线时间
22 小时
发表于 2017-8-2 16:23:18 | 显示全部楼层
jermy_z 发表于 2017-8-2 16:17
一页坏了,像你这个少量数据的,搞个EEPROM最保险,寿命长,价格也不贵

大神,追加个问题:这个一页坏了,我怎么知道它坏了呢?是写不进去?还是读不出来?还是有其他方法知道它不干活了。
天道酬勤
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2017-8-2 16:41:43 | 显示全部楼层
落月枫情 发表于 2017-8-2 16:23
大神,追加个问题:这个一页坏了,我怎么知道它坏了呢?是写不进去?还是读不出来?还是有其他方法知道它 ...

数据不正常了,写进去,再读出来比对,不一样就挂了

平常写入数据,也要这样干,写完后,读出来比对,确保正确写入
学无止境
回复 支持 反对

使用道具 举报

12

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-1-5
在线时间
22 小时
发表于 2017-8-2 16:44:49 | 显示全部楼层
jermy_z 发表于 2017-8-2 16:41
数据不正常了,写进去,再读出来比对,不一样就挂了

平常写入数据,也要这样干,写完后,读出来比对, ...

多谢了,之前只是偶尔会擦写一下,就没加校验,从这一刻起加上,多谢了
天道酬勤
回复 支持 反对

使用道具 举报

20

主题

227

帖子

0

精华

高级会员

Rank: 4

积分
605
金钱
605
注册时间
2017-7-14
在线时间
116 小时
发表于 2017-10-13 10:54:54 | 显示全部楼层
大循环 发表于 2017-6-1 12:39
那么问题来 比如说我做一个水表 每一秒或者说只要水表动了就要存储数据 而且存在flash里已达到掉电保存效果 ...

现在就担心这样的问题,不想加EEPROM,需要保存动态的数据。。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-8-10
在线时间
6 小时
发表于 2017-12-3 19:09:54 | 显示全部楼层
落月枫情 发表于 2017-8-2 16:02
对头,我现在就是模拟EEPROM用,周期1小时刷4个字节的数据,固定在Flash的第59K内存页,我有个疑问就是如 ...

写入非常频繁的话建议使用铁电存储器,寿命超级长而且速度快。电表里用的就是铁电,几乎每分钟都在写数据。
回复 支持 反对

使用道具 举报

6

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2013-8-15
在线时间
44 小时
发表于 2018-2-26 11:28:56 | 显示全部楼层
版主,你关于Table29的解释是有误的。至少解释得不准确。请看这个帖子,这才是说得靠谱的。blog.csdn.net/unsv29/article/details/41008527
回复 支持 反对

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-3-21 10:36:16 | 显示全部楼层
king_of_wind 发表于 2015-6-12 13:38
其实讨论FLASH的寿命的意义不仅仅在于做试验的时候.

在很多应用里面, 需要使用FLASH来模拟EEPROM, 在这 ...

是啊楼主的结论是什么?如果操作stm8,或者stm32内部flash某个页,假如我操作 了上万次,那时候如果flash坏了,是坏了一个页还是整个flash都用不了,程序也跑不了了?
Loto虚拟示波器 官方qq群: 706769836 https://shop296209296.taobao.com/shop/view_shop.htm?tracelog=t
回复 支持 反对

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-3-21 10:37:33 | 显示全部楼层
落月枫情 发表于 2017-8-2 16:02
对头,我现在就是模拟EEPROM用,周期1小时刷4个字节的数据,固定在Flash的第59K内存页,我有个疑问就是如 ...

如果操作stm8,或者stm32内部flash某个页,假如我操作 了上万次,那时候如果flash坏了,是坏了一个页还是整个flash都用不了,程序也跑不了了?
Loto虚拟示波器 官方qq群: 706769836 https://shop296209296.taobao.com/shop/view_shop.htm?tracelog=t
回复 支持 反对

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-3-21 10:38:51 | 显示全部楼层
如果操作stm8,或者stm32内部flash某个页,假如我操作 了上万次,那时候如果flash坏了,是坏了一个页还是整个flash都用不了,程序也跑不了了?
Loto虚拟示波器 官方qq群: 706769836 https://shop296209296.taobao.com/shop/view_shop.htm?tracelog=t
回复 支持 反对

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-3-21 10:39:02 | 显示全部楼层
如果操作stm8,或者stm32内部flash某个页,假如我操作 了上万次,那时候如果flash坏了,是坏了一个页还是整个flash都用不了,程序也跑不了了?
回复 支持 反对

使用道具 举报

6

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2013-8-15
在线时间
44 小时
发表于 2018-5-23 14:53:19 | 显示全部楼层
本帖最后由 xyzjacky 于 2018-5-23 14:58 编辑
秋天 发表于 2018-3-21 10:39
如果操作stm8,或者stm32内部flash某个页,假如我操作 了上万次,那时候如果flash坏了,是坏了一个页还是整 ...

你找到答案了吗?
如果你的flash被擦写的部分仅仅是数据的存入(一般来说都是如此),那影响的是你系统的工作状态,比如,某页记录有你设备工作时长,影响的是你的系统开机后读取不到正确的工作时长,也记录不了。你的程序还是能跑的。
你说的擦了一万次,一般是把那一个页擦坏了,你看正点原子例程里,写某一页flash前是有检查这一页flash的好坏的。很少会整个片子的flash被擦坏,但也不是没有。同时也不是说某一个页(这里只是指记录数据的区域)坏了程序就跑不了,只是程序会受影响,如上面我的举例。连程序都跑不了的情况很少,也不是没有,这个就要看具体情况,特别是保存code代码的那一段flash坏了,那程序肯定就挂了。
回复 支持 反对

使用道具 举报

15

主题

406

帖子

0

精华

高级会员

Rank: 4

积分
795
金钱
795
注册时间
2015-3-26
在线时间
151 小时
发表于 2018-5-23 15:35:06 | 显示全部楼层
一天擦30次,程序员已经很累了
回复 支持 反对

使用道具 举报

3

主题

144

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
金钱
498
注册时间
2018-3-5
在线时间
59 小时
发表于 2018-5-23 15:52:51 | 显示全部楼层
秋天 发表于 2018-3-21 10:39
如果操作stm8,或者stm32内部flash某个页,假如我操作 了上万次,那时候如果flash坏了,是坏了一个页还是整 ...

擦写次数的意义在于:
1.官方保证在次数限制内是可靠的,设计产品的时候按照官方保证的次数产品的稳定性就可以得到保证,最普遍的例如flash模拟EEPROM,需要用到两页轮询写还是10页轮询写就跟产品要求有关了,另外不同的产品flash擦写次数也是不同的,例如stm8s和8L
2.讨论调试会不会刷坏flash一点意义都没有,有些还是OTP的呢,芯片并不是玩具
回复 支持 反对

使用道具 举报

3

主题

144

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
金钱
498
注册时间
2018-3-5
在线时间
59 小时
发表于 2018-5-23 15:56:47 | 显示全部楼层
落月枫情 发表于 2017-8-2 16:02
对头,我现在就是模拟EEPROM用,周期1小时刷4个字节的数据,固定在Flash的第59K内存页,我有个疑问就是如 ...

不用担心这个,如果可能会超过使用寿命那就多用几页轮询写,做过实验,超过寿命写不一定坏,但芯片会有概率性不良的问题
回复 支持 反对

使用道具 举报

6

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2013-8-15
在线时间
44 小时
发表于 2018-5-24 15:53:40 | 显示全部楼层
本帖最后由 xyzjacky 于 2018-5-24 16:03 编辑
动次打次歌 发表于 2018-5-23 15:56
不用担心这个,如果可能会超过使用寿命那就多用几页轮询写,做过实验,超过寿命写不一定坏,但芯片会有概 ...

想请教一下,一般我们说的擦写一万次,到底是指的擦一万次,还是写一万次?
因为擦一页,这一页可以写很多次(如果写入的数据很少),所以擦和写的次数不是一定相等的。一般说的擦写是使用软盘时代留下名词,一个2G的SD卡,一次写入2G的数据,才是擦写一次。
我个人认为,通常讨论的MCU的flash的擦写次数,其实是擦次数,一万次即擦一万次。

以下为百度上一个网友所说:
这个擦写是从软盘时代遗留下来的一个名词。。擦写是对全部容量大小的一次写入操作。举个简单的例子,SD卡大小为2G,放入刚刚好2G大小的文件则SD卡擦写一次。擦写是一个写操作,读不影响这个数字。只是写入1M空间的话只有那1M大小的空间会被写入,其他部分没有写入操作。有的存储(SSD)的主控芯片会平均调节写入的位置,争取每一个空间的写入次数都差不多。手机虽然没有,但是也没多大关系。大部分的软件运行时候都是读操作,只有极少的用户数据的内容,比如聊天记录、游戏存档会进行写操作,而聊天记录这样的东西,是不会进行覆盖操作的,文件会填补起来慢慢变大。游戏存档有的会覆盖,但是这个也是受存储的主控芯片调节的。存大容量的东西确实会更快的消耗擦写次数,毕竟存储的I/O更快。大部分你的操作都是在内存中进行的。总的来说用户不必忧虑擦写次数。。有人尝试过365*24小时的疯狂擦写,就是装满了删除继续装,SD卡表示还是可以正常运行。
回复 支持 反对

使用道具 举报

3

主题

144

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
金钱
498
注册时间
2018-3-5
在线时间
59 小时
发表于 2018-5-25 11:20:58 | 显示全部楼层
xyzjacky 发表于 2018-5-24 15:53
想请教一下,一般我们说的擦写一万次,到底是指的擦一万次,还是写一万次?
因为擦一页,这一页可以写很 ...

我的理解是写SD卡和Flash应该不能算一回事,SD卡U盘这类存储设备为了提高寿命,应该是有软件算法在里面的,而写Flash的话是直接写到物理地址的,写哪个地址哪个地址的寿命就减少一次,至于是不是整页的寿命都减少一次我觉得不需要过多的在乎,就暂且认为只是写入的地址寿命减少的话,我的建议如下
   对于不同的应用,如果写入的数据量很少,可以开辟一页的地址循环写入,只擦写一次,待写满后全部擦除再从头开始写,单页的写入次数就是1page/写入的字节大小,至于要开辟多大,根据需求决定
   如果写入数据很多比如1K,那就开辟多页,最少两页来循环写入,多少页也根据需求选择
   说一个我自己的应用,需求是需要存储256字节的数据而且要频繁修改,flash单页是512的,我开辟了15页来循环写,(因为我要频繁的擦写,5页的寿命全部写满可能也不够,保险起见就取了15页,反正空间够用),每次上电先查找掉电前的page编号,选定为当前page,需要写入数据的时候先读取当前page到内存,该写后写入下一个page,写完第15页时指针到第一个page重写开始写,如此循环
   最后注意的问题,每个芯片的flash特性不同,我遇到的大多数都支持字节、双字节、四字节写,整页擦除、扇区擦除等,有些支持页写,这样就比较方便了使用我那样的方法,还有需要注意指针的对齐问题,不然会出错,如果还要什么问题可以随时问我
回复 支持 反对

使用道具 举报

6

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2013-8-15
在线时间
44 小时
发表于 2018-5-28 10:07:46 | 显示全部楼层
动次打次歌 发表于 2018-5-25 11:20
我的理解是写SD卡和Flash应该不能算一回事,SD卡U盘这类存储设备为了提高寿命,应该是有软件算法在里面的 ...

我了解你的意思了。
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2018-5-28 11:06:57 | 显示全部楼层
xyzjacky 发表于 2018-5-28 10:07
我了解你的意思了。

FLASH写之前,如果有数据,必须先擦除,所以你可以认为写的次数就是等于擦的次数
学无止境
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 12:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表