找回密码
 立即注册
查看: 261|回复: 9

关于QSPI_DLR寄存器的一点疑问

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-04-29 09:23:46

6

主题

52

回帖

368

积分

中级会员

积分
368
发表于 2024-11-26 10:11:01 | 显示全部楼层 |阅读模式
最近研究QSPI相关流程, 发现一个问题比较疑惑, QSPI的FIFO最大为32字节, 看例程收发也是被分成了按32字节进行多次收发, 那么QSPI_DLR做成16位的长度还有意义吗?

我尝试通过判断SR1, SR2相关寄存器来持续读取FIFO, 结果是大于32字节的情况下读取数据是0, 或者有其他方法可以持续读取大量数据?
STC32G配置包:https://gitee.com/main.c/SxPackages.STC32G
STC8配置包:https://gitee.com/main.c/SxPackages.STC8
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-11-26 10:29:51 | 显示全部楼层
大量数据可以使用P2P DMA
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-04-29 09:23:46

6

主题

52

回帖

368

积分

中级会员

积分
368
发表于 2024-11-26 11:03:23 | 显示全部楼层
Debu*** 发表于 2024-11-26 10:29
大量数据可以使用P2P DMA

例程中, DMA也是32字节发起一次通信请求, 而非连续读取, 尝试直接DMA连续读取会出错
STC32G配置包:https://gitee.com/main.c/SxPackages.STC32G
STC8配置包:https://gitee.com/main.c/SxPackages.STC8
回复 支持 反对

使用道具 举报 送花

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

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-11-26 12:05:11 | 显示全部楼层
QSPI_DLR是累计需要收发的数据长度。
FIFO是收发数据队列,用于提高收发速度。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-04-29 09:23:46

6

主题

52

回帖

368

积分

中级会员

积分
368
发表于 2024-11-26 13:09:00 | 显示全部楼层
乘风*** 发表于 2024-11-26 12:05
QSPI_DLR是累计需要收发的数据长度。
FIFO是收发数据队列,用于提高收发速度。 ...

进行数据读写之前是需要设置QSPI_DLR值的,
如果超过32字节, 那么从FIFO中读取超出的值为0,
分包读取的话每次该寄存器实际设置的值是不会超过32的
数据手册中的流程:
截图202411261309374720.jpg


STC32G配置包:https://gitee.com/main.c/SxPackages.STC32G
STC8配置包:https://gitee.com/main.c/SxPackages.STC8
回复 支持 反对

使用道具 举报 送花

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

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-11-26 17:09:32 | 显示全部楼层
本帖最后由 乘风飞扬 于 2024-11-26 17:12 编辑
xinxi*** 发表于 2024-11-26 13:09
进行数据读写之前是需要设置QSPI_DLR值的,
如果超过32字节, 那么从FIFO中读取超出的值为0,
分包读取的话 ...

FIFO就像商场里的自动扶梯,可以加快上下楼的速度,上面最多可以同时站32个人,如果上楼的人总共有100个(DLR),那就排队上扶梯,比爬楼梯的速度快。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-04-29 09:23:46

6

主题

52

回帖

368

积分

中级会员

积分
368
发表于 2024-11-26 17:35:32 | 显示全部楼层
乘风*** 发表于 2024-11-26 17:09
FIFO就像商场里的自动扶梯,可以加快上下楼的速度,上面最多可以同时站32个人,如果上楼的人总共有100个(D ...

对, 我是这样理解的, 但是按照这个流程去操作的话, 结果是读取不出目标数据的,
另外我按照这个流程是可以一次性写入超过32字节数据的, 但是读取不行
STC32G配置包:https://gitee.com/main.c/SxPackages.STC32G
STC8配置包:https://gitee.com/main.c/SxPackages.STC8
回复 支持 反对

使用道具 举报 送花

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

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-11-26 18:02:04 | 显示全部楼层
xinxi*** 发表于 2024-11-26 17:35
对, 我是这样理解的, 但是按照这个流程去操作的话, 结果是读取不出目标数据的,
另外我按照这个流程是可以 ...

读取数据也要到传输目的地读取,而不是在FIFO里面读,FIFO最多只存放了正在传输的32字节。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-04-29 09:23:46

6

主题

52

回帖

368

积分

中级会员

积分
368
发表于 2024-11-26 18:29:12 | 显示全部楼层
乘风*** 发表于 2024-11-26 18:02
读取数据也要到传输目的地读取,而不是在FIFO里面读,FIFO最多只存放了正在传输的32字节。 ...

设置了也无法一次性读取到超过32字节的...
STC32G配置包:https://gitee.com/main.c/SxPackages.STC32G
STC8配置包:https://gitee.com/main.c/SxPackages.STC8
回复 支持 反对

使用道具 举报 送花

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

44

主题

124

回帖

1437

积分

金牌会员

积分
1437
发表于 2025-1-18 01:36:03 | 显示全部楼层

想问下,如果待读取的数据量足够多,在QSPI的FIFO已满的情况下,每从QSPI_DR读出一个字节,那QSPI的FIFO会被自动填充一个字节吗?还是说,在把QSPI的FIFO全部读出并且没有发起下一次读操作命令序列之前,QSPI的FIFO将不会自动填充?

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:40 , Processed in 0.216927 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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