- msh />sf probe qspi10
- [I/SFUD] Find a Winbond flash chip. Size is 8388608 bytes.
- [I/SFUD] sf_cmd flash device is initialize success.
- [I/SFUD] Probe SPI flash sf_cmd by SPI device qspi10 success.
- 8 MB sf_cmd is current selected device.
- msh />sf bench yes
- Erasing the sf_cmd 8388608 bytes data, waiting...
- Erase benchmark success, total time: 17.340S.
- Writing the sf_cmd 8388608 bytes data, waiting...
- Write benchmark success, total time: 32.768S.
- Reading the sf_cmd 8388608 bytes data, waiting...
- Read benchmark success, total time: 2.060S.
- msh />sf probe spi20
- [I/SFUD] Find a Winbond flash chip. Size is 8388608 bytes.
- [I/SFUD] sf_cmd flash device is initialize success.
- [I/SFUD] Probe SPI flash sf_cmd by SPI device spi20 success.
- 8 MB sf_cmd is current selected device.
- msh />sf bench yes
- Erasing the sf_cmd 8388608 bytes data, waiting...
- Erase benchmark success, total time: 16.881S.
- Writing the sf_cmd 8388608 bytes data, waiting...
- Write benchmark success, total time: 32.769S.
- Reading the sf_cmd 8388608 bytes data, waiting...
- Read benchmark success, total time: 8.165S.
可以看到擦除和写入速度几乎一样,而读取速度,qspi的速度位spi的4倍左右,也就是qspi读取一片8MB的SPI flash 要2秒钟。
然后我们开启spi的dma,结果如下:
- msh />sf probe qspi10
- [I/SFUD] Find a Winbond flash chip. Size is 8388608 bytes.
- [I/SFUD] sf_cmd flash device is initialize success.
- [I/SFUD] Probe SPI flash sf_cmd by SPI device qspi10 success.
- 8 MB sf_cmd is current selected device.
- msh />sf bench yes
- Erasing the sf_cmd 8388608 bytes data, waiting...
- Erase benchmark success, total time: 16.439S.
- Writing the sf_cmd 8388608 bytes data, waiting...
- Write benchmark success, total time: 32.768S.
- Reading the sf_cmd 8388608 bytes data, waiting...
- Read benchmark success, total time: 2.060S.
- msh />sf probe spi20
- [I/SFUD] Find a Winbond flash chip. Size is 8388608 bytes.
- [I/SFUD] sf_cmd flash device is initialize success.
- [I/SFUD] Probe SPI flash sf_cmd by SPI device spi20 success.
- 8 MB sf_cmd is current selected device.
- msh />sf bench yes
- Erasing the sf_cmd 8388608 bytes data, waiting...
- Erase benchmark success, total time: 16.642S.
- Writing the sf_cmd 8388608 bytes data, waiting...
- Write benchmark success, total time: 32.768S.
- Reading the sf_cmd 8388608 bytes data, waiting...
- Read benchmark success, total time: 2.920S.
我们发现,再开启的DMA模式之后,spi读取一片8MB的flash需要2.92s,仅仅比qspi慢了0.9s不到,这个还是再qspi速度比spi高12M的情况下。所以我感觉不合理啊?
不知道是不是我测试的方法问题。还请请教?否则用qspi的意义就不大了,qspi还比spi多占用了两个io。
附件是我测试的工程代码,基于rt-thread studio。
另外,AT32的rt-thread studio的pack最新版本0.1.4的串口有bug,中断函数都采用UART1_IRQHandler(实际应该是USART1_IRQHandler,串口1,2,3,6都是这样),否则串口只能打印不能输入,这个疏忽就很尬尴,每次创建工程,需要自己修改drv_usart.c文件。
-
-
9.69 MB, 下载次数: 57
作者: sheltonyu 时间: 2023-5-30 09:57
您好,感谢您的问题反馈。
由您的测试结果来看,此部分的差异大概率是由qspi驱动目前不支持DMA方式有关。
后续有计划将qspi驱动的DMA方式完善,谢谢
作者: imdx 时间: 2023-6-2 09:14
SPI使用DMA和不用DMA,速度差非常多,自己用示波器或者逻辑分析看一下SCK信号就明白为什么了。
QSPI或者QPI如果不支持DMA,可用性大打折扣,基本失去存在价值。
作者: muyichuan2012 时间: 2023-6-2 12:35
AT32 QSPI外设本身是支持DMA的,目前RT Studio那边还没来得及去做应用支持而已。
作者: li460135301 时间: 2023-6-2 16:01
imdx 发表于 2023-6-2 09:14
SPI使用DMA和不用DMA,速度差非常多,自己用示波器或者逻辑分析看一下SCK信号就明白为什么了。
QSPI或者QPI ...
ok,理解了,主要是AT32的QSPI的DMA模式在RTT上没有做应用支持,需要自己匹配!
作者: li460135301 时间: 2023-6-2 16:04
muyichuan2012 发表于 2023-6-2 12:35
AT32 QSPI外设本身是支持DMA的,目前RT Studio那边还没来得及去做应用支持而已。 ...
好的,有空自己去修改以下代码试试!而且SFUD的写入目前没有做4线写入模式(在SFUD的作者说:考虑到擦除的时间较长,所以提升写入意义不大)导致实际上写入比擦除的时间还要长!
作者: li460135301 时间: 2023-6-2 17:09
sheltonyu 发表于 2023-5-30 09:57
您好,感谢您的问题反馈。
由您的测试结果来看,此部分的差异大概率是由qspi驱动目前不支持DMA方式有关。
...
在RTT中,增加qspi驱动的DMA方式有在计划的schedule中吗?
作者: tpgf 时间: 2023-6-8 17:13
SPI的协议分了很多种,包括:Standard SPI(标准SPI)、Dual SPI(双线 SPI)和Quad SPI(四线 SPI) 等
作者: 木木guainv 时间: 2023-6-9 08:40
CS是从芯片是否被主芯片选中的控制信号,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),主芯片对此从芯片的操作才有效
作者: 磨砂 时间: 2023-6-9 09:23
本来我觉得他们的速度就应该没有什么差别吧 毕竟就是一个四线制spi的事情
作者: 晓伍 时间: 2023-6-9 09:50
磨砂 发表于 2023-6-9 09:23
本来我觉得他们的速度就应该没有什么差别吧 毕竟就是一个四线制spi的事情 ...
Quad SPI(四线 SPI) ,为四线半双工,增加了两个数据引脚线IO2、IO3,此时IO0、IO1、IO2、IO3 引脚被用于向同一个方向传输数据,单次 可传输 4bit
作者: 八层楼 时间: 2023-6-9 10:31
QPI 与 QUAD SPI 基本差不多,但是在使用数据线传输指令和数据时,各自的用法略有差异
作者: 观海 时间: 2023-6-9 10:47
QSPI Flash默认的操作模式是标准单线SPI模式,所以在每次进行4线SPI操作的时候一定要先把状态寄存器2的QE位(倒数第2位)置1,然后才能进行QSPI操作
作者: albertaabbot 时间: 2023-7-5 20:39
哪种接口适合应用需求
作者: uytyu 时间: 2023-7-5 20:59
SPI的数据传输速率比SPI快
作者: adolphcocker 时间: 2023-7-5 21:09
QSPI外设同样支持单线模式(兼容普通spi),只是相比普通的spi少了一些特性。
作者: hearstnorman323 时间: 2023-7-5 21:21
测试在QSPI和SPI上同时连接多个设备时的性能和可靠性吧
作者: averyleigh 时间: 2023-7-5 21:29
SPI的传输延迟较高,因为它是半双工通信,每次传输都需要进行切换。相比之下,QSPI的全双工通信可以更快地传输数据并减少延迟。
作者: houjiakai 时间: 2023-7-5 21:35
QSPI通常比SPI更快。
作者: macpherson 时间: 2023-7-5 21:41
SPI通常是单线程的,而QSPI支持四线程并行传输,因此具有更高的数据传输速度。
作者: nomomy 时间: 2023-7-5 21:49
采用QSPI? 和 SPI? 比较好一些的
作者: louliana 时间: 2023-7-5 21:54
虽然QSPI相对于SPI具有一些优点,但是它也有一些缺点,如需要使用专门的QSPI外设芯片,并且不支持SPI协议中的一些特殊功能。
作者: sanfuzi 时间: 2023-7-5 22:06
SPI在大多数微控制器和外设之间都得到广泛支持
作者: pentruman 时间: 2023-7-5 22:12
建议您参考相关的微控制器和外部设备的文档和规范
作者: abotomson 时间: 2023-7-5 22:24
QSPI(Quad SPI)比SPI更快,因为它支持四线全双工通信,而SPI只支持单线半双工通信。
作者: alvpeg 时间: 2023-7-5 22:30
QSPI可以同时发送和接收数据,而SPI需要在发送和接收之间切换。
作者: caigang13 时间: 2023-7-6 08:09
RTT系统现在的适配性咋样
作者: pl202 时间: 2023-7-6 10:23
QSPI通常在一些高性能的微控制器中才得到支持,因为它需要更多的硬件资源。
作者: eefas 时间: 2023-7-6 10:39
QSPI传输速度更快,相对来说可能更多的功耗。
作者: elsaflower 时间: 2023-7-6 10:46
SPI通常支持多种时钟模式,如0模式、1模式、2模式和3模式,用于控制数据采样和传输的时钟边沿。而QSPI通常支持更多的时钟模式选项,以提供更高的灵活性。
作者: xiaoyaodz 时间: 2023-7-6 10:55
QSPI可以提供更高的数据传输率。
作者: earlmax 时间: 2023-7-6 11:28
spi需要配置哪些
作者: mattlincoln 时间: 2023-7-6 11:34
QSPI的接口更简单,使用起来更方便,可以更快地进行外设的开发和调试。
作者: averyleigh 时间: 2023-7-6 11:48
SPI通常使用4个信号线(片选、时钟、数据输入、数据输出),而QSPI使用6个信号线(片选、时钟、数据输入、数据输出、数据线1、数据线2)。
作者: minzisc 时间: 2023-7-6 12:06
比较QSPI和SPI在相同条件下的数据传输速度,以确定QSPI是否能够提供更快的数据传输。
作者: ingramward 时间: 2023-7-6 12:15
QSPI在速度、引脚数量和延迟方面具有优势
作者: maqianqu 时间: 2023-7-6 12:20
QSPI的功耗比SPI低,可以降低设备的功耗。
作者: V853 时间: 2023-8-4 12:02
我想他们的速度应该没有什么不同,毕竟是一个四线制spi
作者: AIsignel 时间: 2023-8-4 12:30
什么样的接口适合应用需求
作者: 理想阳 时间: 2023-8-4 12:50
spi的数据传输速率比spi快
作者: 芯路例程 时间: 2023-8-4 13:12
qspi凡是比spi更快。
作者: digit0 时间: 2023-9-5 17:30
测试在QSPI和SPI上同时连接多个设备的性能和可靠性
作者: 鹿鼎计 时间: 2024-7-1 19:15
Qpi 基本上与 quad 和 spi 相同,但在使用数据线传输指令和数据时,它们的用法略有不同
作者: LLGTR 时间: 2024-7-1 21:16
Spi 在大多数微控制器和外围设备中得到广泛支持
作者: 朝生 时间: 2024-7-3 23:56
现在 rtt 系统的兼容性如何
作者: caigang13 时间: 2024-7-4 07:51
你拿开启DMA和不开来对比,本身就有问题。
作者: 天天向善 时间: 2024-7-5 06:44
Qspi 外围设备也支持单行模式(与常规 spi 兼容) ,但是比常规 spi 具有更少的特性。
作者: LinkMe 时间: 2024-7-5 23:27
Qspi 传输速度更快,可能会消耗相对更多的功耗。
作者: imdx 时间: 2024-7-7 20:31
averyleigh 发表于 2023-7-5 21:29
SPI的传输延迟较高,因为它是半双工通信,每次传输都需要进行切换。相比之下,QSPI的全双工通信可以更快地 ...
SPI是全双工
作者: Pretext 时间: 2024-7-8 09:14
隔离设计只不过是隔离电源和信号处理。没什么异常。微控制器的特定引脚需要连接到下载器的相应端口。合理布局电路,尽量减少长距离线路,避免不必要的电阻增加。对于需要长时间运行的uart通信,可以定期校准波特率,以消除由于系统时钟漂移或其他因素造成的误差。检查波特率是否由于外部时钟源的问题而不准确。标准c库提供了丰富的函数,包括输入输出、字符串处理、数学计算等。以满足各种由编译器自动分配和释放的编程需求,存储函数的参数值、局部变量的值等。,其操作类似于数据结构中的堆栈。过度依赖直接寻址会降低代码的可读性和可维护性,所以在优化时需要平衡性能和代码质量。你知道v4,27,2,hall的closeloopanglepll实现原理吗在配置和使用dma时,要特别注意dma通道的优先级设置,避免数据传输过程中的冲突和优先级问题。电机转矩是描述电机输出功率和性能的重要参数,其产生原理与电机的类型和工作原理密切相关。使用哈希表时,需要评估其性能,包括查找、插入和删除操作的平均时间复杂度。在头文件中,保持代码风格一致,遵循项目或团队的编码规范,可以提高代码的可读性和可维护性。对采集的数据进行非线性校正和标定,提高测量精度。是非感官的还是感官的?可以做电机,电机固件是开源的,固件库是任意的吧?根据实际应用要求选择合适的spim或qspi器件,并确保其与at32兼容。超出分配的内存边界的写入操作可能会覆盖其他重要数据,从而导致数据损坏。可能是算法有问题或者什么的spi一般是单线程的,而qspi支持四线程并行传输,因此数据传输速度更高。
作者: digit0 时间: 2024-8-2 17:49
本来我觉得它们的速度应该没有区别,毕竟是四线spi的东西
作者: 理想阳 时间: 2024-8-6 07:57
我猜它们的速度应该没什么不同,毕竟是四线spi
作者: V853 时间: 2024-9-2 18:11
大多数微控制器和外设都广泛支持Spi,
作者: AIsignel 时间: 2024-9-4 07:50
Qspi外设也支持单线模式(与普通spi兼容),但与普通spi相比功能较少。
作者: 芯路例程 时间: 2024-9-5 17:00
Qspi的界面更简单,使用更方便,可以更快地开发和调试外设。
作者: dreamCar 时间: 2024-10-9 11:32
在32,qspi外设本身支持dma。目前rt,studio还没来得及提供应用支持。
作者: 软核硬核 时间: 2024-11-4 14:35
Qspi的功耗低于spi,可以降低器件的功耗。
作者: 星闪动力 时间: 2024-11-5 18:00
Spi广泛支持大多数微控制器和外设,
作者: hmcu666 时间: 2024-11-8 19:54
如果拿开放的dma和开放的dma比较,本身就有问题。
欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/)
Powered by Discuz! X3.5