硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4214|回复: 9
收起左侧

[SPI/QSPI] 关于W25Q256擦除失败问题

[复制链接]

4

主题

12

回帖

24

积分

新手上路

积分
24
发表于 2020-12-15 14:55:31 | 显示全部楼层 |阅读模式
      小弟使用STM32H743XIH6的QSPI做驱动W25Q256JVEQ模拟U盘程序,使用的是QSPI的查询方式(硬汉哥的底层驱动代码),使用时发现如果拷贝多个文件进去,未断电前在电脑的U盘里能看到这些文件,断电后再上电部分文件就丢失了,后来单独测试W25Q256JVEQ的读写,发现写到第277个扇区的时候就出现擦除不成功的情况(不一定是277,也有可能时278,281等,就是270个扇区以后),失败的原因是等待W25Q256JVEQ标志位超时,试过降低QSPI的时钟,但问题依旧。QSPI引脚使用CE(PG6),SCK(PB2),IO0(PF8),IO1(PF9),IO2(PF7),IO4(PF6)。请问一下还有可能是什么原因。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2020-12-16 08:50:54 | 显示全部楼层
擦除不成功? 这个还真没遇到过。

我那个模拟U盘的例子是用的QSPI MDMA,可以参考试试。

基于STM32H7驱动QSPI Flash的FatFS文件系统 + QSPI Flash虚拟U盘实现,读速度24.6MB/S(2019-03-28)
http://www.armbbs.cn/forum.php?m ... 1634&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2020-12-16 08:53:42 | 显示全部楼层
将文件系统底层的读写单位改成4096,也就是说,在写数据的时候,肯定要先擦除一个扇区,然后在写数据。。。你说的这种情况,应该是FAT表格被破坏了,
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2020-12-16 08:54:10 | 显示全部楼层
你说的这种情况是,FAT表格被破坏了,,,
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2020-12-16 08:54:44 | 显示全部楼层
是FAT表格被破坏了,
回复

使用道具 举报

17

主题

70

回帖

121

积分

初级会员

积分
121
发表于 2020-12-16 09:33:28 | 显示全部楼层
可能是状态寄存器某些位置1,设置了保护区域,所以你才擦除失败。你试试读一遍所有的状态寄存器
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2020-12-16 10:55:21 | 显示全部楼层
eric2013 发表于 2020-12-16 08:50
擦除不成功? 这个还真没遇到过。

我那个模拟U盘的例子是用的QSPI MDMA,可以参考试试。

我试过那个MDMA的,我工程项目的HAL库和您那个HAL库版本不一样,用MDMA的没有成功,会一直卡在等待MDMA中断计数那里,对比了一下HAL库的写法,差别还有点大,所以就用了您查询方式的驱动,擦除不成功的结论是我在线调试出来的结论,发送擦除指令后,等待擦除完成时会超时,导致QSPI返回的状态不对,所以就不能进行下一步操作了。
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2020-12-16 10:57:03 | 显示全部楼层
a13421364618 发表于 2020-12-16 08:53
将文件系统底层的读写单位改成4096,也就是说,在写数据的时候,肯定要先擦除一个扇区,然后在写数据。。。 ...

是的,一个扇区是4096个字节,前270个扇区都能正常擦除和写入数据,读出数据来校验也是对的,到270个扇区之后就会存在擦除时等待标志位超时的问题。
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2020-12-16 10:57:34 | 显示全部楼层
1314一路向前 发表于 2020-12-16 09:33
可能是状态寄存器某些位置1,设置了保护区域,所以你才擦除失败。你试试读一遍所有的状态寄存器

好的,我试试,谢谢指导
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2020-12-16 10:58:32 | 显示全部楼层
a13421364618 发表于 2020-12-16 08:54
你说的这种情况是,FAT表格被破坏了,,,

我后来不使用FATFS来进行测试,单独测试FLASH的读写,发现存在擦除超时的问题。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 05:02 , Processed in 0.276212 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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