找回密码
 立即注册
查看: 192|回复: 4

请教个问题: 可以在写存储器指令之后紧接着写数据吗

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-05-01 10:06:01

44

主题

124

回帖

1437

积分

金牌会员

积分
1437
发表于 2025-1-20 15:52:56 | 显示全部楼层 |阅读模式

实验环境

MCU: 8051U

存储器:支持标准 / Dual SPI模式的W25Q64JV

问题描述

对存储器W25Q64的状态寄存器-3执行写操作,但是在检查传输完成时卡住。

在写状态寄存器-3时的设置:

  1. 配置写模式;
  2. 设置数据长度为1;
  3. 设置空闲时钟数为0;
  4. 设置指令为单线模式;
  5. 设置无地址模式;
  6. 设置无交替字节;
  7. 设置数据为单线模式;
  8. 设置指令代码;
  9. 检查传输是否完成(在这卡住,即使放到下一步之后,还是卡住);
  10. 调用写数据指令(就是给QSPI_DR寄存器赋值)。

命令操作序列如下:

  1. 写指令“50H”;

  2. 写状态寄存器-3指令“11H”;

  3. 写数据“04H”

  4. 检查传输是否已完成时,卡住

    想问下是因为操作步骤错误,还是不可以在写指令(例如"11H")之后,紧接着传输数据?

下面是写状态寄存器-1/2/3的时序图:

image.png

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2025-1-20 18:00:44 | 显示全部楼层
参考AI8051U实验箱例程包这个例子试试:
34-硬件QSPI访问FLASH-串口监控
下载地址:https://www.stcai.com/syx
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-05-01 10:06:01

44

主题

124

回帖

1437

积分

金牌会员

积分
1437
发表于 2025-1-20 18:40:41 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=141371&ptid=13935][color=#999999]乘风飞扬 发表于 2025-1-20 18:00[/color][/url][/size] 参考AI8051U实验箱例程包这个例子试试: 34-硬件QSPI访问FLASH-串口监控 下载地址:https://www.stcai.com/ ...[/quote]

看的是从这里找来的代码:

使用QSPI直接读写串行FLASH,使用QSPI-DMA读写串行FLASH
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=10762
(出处: 国芯技术交流网站)

2处的关键内容一样。

这2处的代码,我认为哈:尽管是在写状态寄存器,但程序中是在用指令(写状态寄存器指令)跟随的地址(8-bit)代替写往状态存器写的数据。因为调用的函数“QSPI_WRITE_INSTR_SADDR8”指定了不传输数据,但传输字节类型的地址。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-05-01 10:06:01

44

主题

124

回帖

1437

积分

金牌会员

积分
1437
发表于 2025-1-20 18:41:34 | 显示全部楼层
BeHa*** 发表于 2025-1-20 18:40
看的是从这里找来的代码:
使用QSPI直接读写串行FLASH,使用QSPI-DMA读写串行FLASH
https://www.stcaimcu ...

不知道怎么了,成了回复我自己 :-(
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-05-01 10:06:01

44

主题

124

回帖

1437

积分

金牌会员

积分
1437
发表于 2025-1-20 18:48:20 | 显示全部楼层
乘风*** 发表于 2025-1-20 18:00
参考AI8051U实验箱例程包这个例子试试:
34-硬件QSPI访问FLASH-串口监控
下载地址:https://www.stcai.com/ ...

感谢回复 :-)
我想给这里面的读写状态寄存器函数单独写一个函数,不想调用“QSPI_WRITE_INSTR_SADDR8”。结果就遇上了上面提到的 问题。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 07:00 , Processed in 0.268099 second(s), 79 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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