OpenEdv-开源电子网

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

flash页,扇区擦除问题

[复制链接]

11

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-11-10
在线时间
10 小时
发表于 2015-12-15 12:15:21 | 显示全部楼层 |阅读模式
5金钱
W25Q64教程上说W25Q128(W25Q64)将16M(8M)的容量分为256(128)个块(Block),每个块大小为64K字节,每个块又分为16个扇区(Sector),每个扇区4K个字节。W25Qxx的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。
我用的M25P16手册上说The memory is organized as 32 sectors, each containing 256 pages. Each page is 256 bytes wide. Thus, the whole memory can be viewed as consisting of 8192 pages, or 2 097 152 bytes. 分32个扇区,每扇区256页,每页256字节,,,, 请问这有什么区别,,扇区里面包含页吗,还是这两芯片扇区与页是等同的?
M25P16的最小擦除单位是页还是扇区? SE Sector erase D8h           BE Bulk erase C7h有两条擦除指令,,擦除的单位大小是多少?

最佳答案

查看完整内容[请看2#楼]

http://home.eeworld.com.cn/my/space-uid-441447-blogid-83421.html 直接百度芯片名,这个网页资料应该能解答你的问题,楼主在提问前还要多自己动手找一下资料哦
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-12-15 12:15:22 | 显示全部楼层



http://home.eeworld.com.cn/my/space-uid-441447-blogid-83421.html

直接百度芯片名,这个网页资料应该能解答你的问题,楼主在提问前还要多自己动手找一下资料哦
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

3

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
金钱
373
注册时间
2015-3-7
在线时间
43 小时
发表于 2015-12-15 13:01:07 | 显示全部楼层
W25Q64里面,最小单位是页写。每页可以写256字节,一个扇区4k的大小,每扇区16页。跟M25P16是一样的~
为人莫作千年计,三十河东四十西,莫欺少年穷。
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-12-15 13:07:08 | 显示全部楼层
回复【2楼】Mcu_learning:
---------------------------------
每次写入不超过256字节
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

11

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-11-10
在线时间
10 小时
 楼主| 发表于 2015-12-15 14:35:02 | 显示全部楼层
回复【2楼】Mcu_learning:
---------------------------------
那M25P16最小的擦除单位也是扇吗?可每扇有256字节*256页=64K字节,我上哪找这么大的缓存去擦除啊?
回复

使用道具 举报

11

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-11-10
在线时间
10 小时
 楼主| 发表于 2015-12-15 14:35:44 | 显示全部楼层
回复【3楼】龙之谷:
---------------------------------
M25P16的最小擦除单位呢?
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-12-15 14:49:51 | 显示全部楼层
回复【5楼】yqin:
---------------------------------
没用过这个芯片,一般flash都是以扇区为最小擦除单位的
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

11

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-11-10
在线时间
10 小时
 楼主| 发表于 2015-12-15 18:30:40 | 显示全部楼层
回复【7楼】龙之谷:
---------------------------------
谢谢指教,我的意思是如果以扇为单位擦除,则写入前需要开辟256字节*256页=64K字节的空间来缓存擦除前的数据吗?不然该扇区内写入地址前面的数据会造成丢失啊
回复

使用道具 举报

8

主题

136

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
428
金钱
428
注册时间
2015-4-24
在线时间
85 小时
发表于 2016-7-29 08:46:55 | 显示全部楼层
龙之谷 发表于 2015-12-15 13:07
回复【2楼】Mcu_learning:
---------------------------------
每次写入不超过256字节

你好,问一下关于flash读时序的问题,在读的时候,先发送一个读指令,再写入24位地址,时序图如下,先写入的是高位的,为什么程序中是向右移位的,而不是向左移位呢,例如我的地址是0x55aa88,先写入55,不应该是左移的吗。这个是原子的程序。[mw_shl_code=c,true]
SPI1_ReadWriteByte((u8)((WriteAddr)>>16)); //·¢Ëí24bitμØÖ·   
    SPI1_ReadWriteByte((u8)((WriteAddr)>>8));   
    SPI1_ReadWriteByte((u8)WriteAddr);   [/mw_shl_code]谢谢
150324zeoq4eeko83qeoce.png
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-7-29 09:13:22 | 显示全部楼层
yqin 发表于 2015-12-15 18:30
回复【7楼】龙之谷:
---------------------------------
谢谢指教,我的意思是如果以扇为单位擦除,则写入 ...

如果需要保留扇区原有部分数据,是需要开辟扇区大小缓冲区
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

8

主题

136

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
428
金钱
428
注册时间
2015-4-24
在线时间
85 小时
发表于 2016-8-1 17:07:18 | 显示全部楼层
ownbest 发表于 2016-7-29 09:01
SPI1_ReadWriteByte()函数每次只能写8bit,因此对于24位的地址要3次才能写完,并且要先写24bit 地址的高 ...

谢谢 我之前理解一直认为WriteAddr是8位的,现在感觉WriteAddr好像是24位的,这样的话就可以理解了
回复

使用道具 举报

16

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7136
金钱
7136
注册时间
2015-1-23
在线时间
105 小时
发表于 2019-12-7 17:01:05 | 显示全部楼层
M25P16  手册写的:Sector Erase (512 Kbit) in 0.6 s (typical)  我也测试过 把同一扇区的两个连续页写入数据, 写入第一页的地址执行SE擦除操作,  再读两个页的数据, 发现两个页的数据都擦除了.
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-7 22:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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