关于QSPI_DLR寄存器的一点疑问
最近研究QSPI相关流程, 发现一个问题比较疑惑, QSPI的FIFO最大为32字节, 看例程收发也是被分成了按32字节进行多次收发, 那么QSPI_DLR做成16位的长度还有意义吗?我尝试通过判断SR1, SR2相关寄存器来持续读取FIFO, 结果是大于32字节的情况下读取数据是0, 或者有其他方法可以持续读取大量数据?
大量数据可以使用P2P DMA DebugLab 发表于 2024-11-26 10:29
大量数据可以使用P2P DMA
例程中, DMA也是32字节发起一次通信请求, 而非连续读取, 尝试直接DMA连续读取会出错 QSPI_DLR是累计需要收发的数据长度。
FIFO是收发数据队列,用于提高收发速度。 乘风飞扬 发表于 2024-11-26 12:05
QSPI_DLR是累计需要收发的数据长度。
FIFO是收发数据队列,用于提高收发速度。 ...
进行数据读写之前是需要设置QSPI_DLR值的,
如果超过32字节, 那么从FIFO中读取超出的值为0,
分包读取的话每次该寄存器实际设置的值是不会超过32的
数据手册中的流程:
本帖最后由 乘风飞扬 于 2024-11-26 17:12 编辑
xinxinsky 发表于 2024-11-26 13:09
进行数据读写之前是需要设置QSPI_DLR值的,
如果超过32字节, 那么从FIFO中读取超出的值为0,
分包读取的话 ...
FIFO就像商场里的自动扶梯,可以加快上下楼的速度,上面最多可以同时站32个人,如果上楼的人总共有100个(DLR),那就排队上扶梯,比爬楼梯的速度快。 乘风飞扬 发表于 2024-11-26 17:09
FIFO就像商场里的自动扶梯,可以加快上下楼的速度,上面最多可以同时站32个人,如果上楼的人总共有100个(D ...
对, 我是这样理解的, 但是按照这个流程去操作的话, 结果是读取不出目标数据的,
另外我按照这个流程是可以一次性写入超过32字节数据的, 但是读取不行
xinxinsky 发表于 2024-11-26 17:35
对, 我是这样理解的, 但是按照这个流程去操作的话, 结果是读取不出目标数据的,
另外我按照这个流程是可以 ...
读取数据也要到传输目的地读取,而不是在FIFO里面读,FIFO最多只存放了正在传输的32字节。 乘风飞扬 发表于 2024-11-26 18:02
读取数据也要到传输目的地读取,而不是在FIFO里面读,FIFO最多只存放了正在传输的32字节。 ...
设置了也无法一次性读取到超过32字节的... <p>想问下,如果待读取的数据量足够多,在QSPI的FIFO已满的情况下,每从QSPI_DR读出一个字节,那QSPI的FIFO会被自动填充一个字节吗?还是说,在把QSPI的FIFO全部读出并且没有发起下一次读操作命令序列之前,QSPI的FIFO将不会自动填充?</p>
页:
[1]