硬汉嵌入式论坛

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

[SPI/QSPI] [求助] 有大佬用过STM32H723VGT6使用OSPI方式读写W25Q64BV芯片的吗?

[复制链接]

1

主题

8

回帖

11

积分

新手上路

积分
11
发表于 2024-12-25 19:29:31 | 显示全部楼层 |阅读模式
大佬们,就是在测试OSPI连接W25Q64遇到了很多奇怪的问题

1.代码能够读取W25Q64的ID,能通过OSPI4线写外部FLASH,但不能通过4线读取,怎么都无法读取
2.1数据线读取数据是正常的(0x03指令),但是发送快速读取指令(0x0b)也会导致数据错误,尝试更改空周期和时钟没用
3.无法进行整片擦除,我查看w25q64bv规格是可能是因为这个情况导致的。
The Chip Erase instruction will not be executed if any section of the array is protected by the Block Protect (BP2, BP1, and BP0) bits (see Status Register Memory Protection table).

尝试了很多办法无法解决,怀疑过硬件问题,但是考虑到能写却不能读不知道为什么,什么1-4-4模式读取和1-1-4模式读取都试过了,能稳定读取的只有0x03这个指令
球球各位大佬帮帮忙。
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-12-25 19:42:14 | 显示全部楼层
大佬们,这是我的源程序,可以帮我看下找下问题吗

Ospi_Demo_W25q64.zip

22.87 MB, 下载次数: 7

回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-12-25 19:43:35 | 显示全部楼层
大佬们,我的源程序发在上面了,可以帮帮我找下问题吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-26 07:52:20 | 显示全部楼层
Q64应该也有0xEC指令吧,试试。
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-12-26 08:24:33 | 显示全部楼层
我在指令表上没有找到0xec的指令,这个指令是没有写出来吗
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-12-26 08:27:36 | 显示全部楼层
大佬,我在说明书上没有找到0xec指令,这个指令是没有写吗
回复

使用道具 举报

6

主题

306

回帖

324

积分

高级会员

积分
324
发表于 2024-12-26 08:38:36 | 显示全部楼层
调试SPI必须要有逻辑分析仪,这样调起程序来就简单多了。我的QSPI试过4线的RAM读写正常。
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-12-26 08:45:02 | 显示全部楼层
fxyc87 发表于 2024-12-26 08:38
调试SPI必须要有逻辑分析仪,这样调起程序来就简单多了。我的QSPI试过4线的RAM读写正常。

大佬,目前我有一个示波器,只能测俩跟数据线
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-12-26 08:54:39 | 显示全部楼层
fxyc87 发表于 2024-12-26 08:38
调试SPI必须要有逻辑分析仪,这样调起程序来就简单多了。我的QSPI试过4线的RAM读写正常。

大佬,我有个示波器,但对于这种四线的调试的不是很明白
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-27 06:49:43 | 显示全部楼层
renjunlong123 发表于 2024-12-26 08:24
我在指令表上没有找到0xec的指令,这个指令是没有写出来吗

看了下,这款型号确实没有。

0xEB测试过没

1243.png
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-12-27 09:01:37 | 显示全部楼层
eric2013 发表于 2024-12-27 06:49
看了下,这款型号确实没有。

0xEB测试过没

都测试过了,按照数据手册都测了一遍,除了一线读其他都有问题。我没管那个了,先用一线吧,一线读取还是有8mb/s,映射内存和读写这些都是用的一线。如果够用,以后有时间再来测试吧,主要是忙活几天不一定有结果。
回复

使用道具 举报

5

主题

229

回帖

249

积分

高级会员

积分
249
发表于 2024-12-27 09:18:25 | 显示全部楼层
W25Q64BV 读取指令0x0B 发送完地址以后不是需要发送一个 dummy 吗? 为啥你的驱动 DummyCycles = 0?
回复

使用道具 举报

5

主题

229

回帖

249

积分

高级会员

积分
249
发表于 2024-12-27 09:26:49 | 显示全部楼层
还有全片擦除的指令0xC7只要命令没有地址 AddressMode = QSPI_ADDRESS_NONE; 你的驱动程序问题太大了,没好好看硬汉或者度娘吧,每个寄存器的设置你没理解透彻。
回复

使用道具 举报

5

主题

229

回帖

249

积分

高级会员

积分
249
发表于 2024-12-27 09:38:08 | 显示全部楼层
renjunlong123 发表于 2024-12-25 19:42
大佬们,这是我的源程序,可以帮我看下找下问题吗

OSPI驱动W25Q64-使用HAL库直接读写.zip (2.52 MB, 下载次数: 35)


这个是STM32H723ZGT6驱动W25Q64JV的代码,对照着修改吧




回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-12-27 10:03:14 | 显示全部楼层
旮旯旭 发表于 2024-12-27 09:38
这个是STM32H723ZGT6驱动W25Q64JV的代码,对照着修改吧

感谢大哥,根据你的指点,我重新看了我驱动代码,全片擦除除了地址模式有问题最大的问题就是轮询设置的时间太小,我改成了50s就解决全片擦除的问题。快速读指令根据手册确实是,空周期没有设置好,设置为8个周期,读写正常。4线根据手册重新了读取还是有问题。
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-12-27 10:26:25 | 显示全部楼层
这是我整个读写擦除时间,大佬们,看下速度有没有问题
1e8a59dd6628fcfee9adb1b92a96f31.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-28 07:26:55 | 显示全部楼层
renjunlong123 发表于 2024-12-27 10:26
这是我整个读写擦除时间,大佬们,看下速度有没有问题

读速度太慢。


STM32H7驱动QSPI Flash的4线DMA模式,读速度48MB/S左右,还不错
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=91616


回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-12-28 16:25:36 | 显示全部楼层

今天,我用dma进行测试了读写,1线读能达到11mb/s,写的变化不是很大
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 01:25 , Processed in 0.064219 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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