STM32F407实现W25Q16快速读取双输出模式遇问题求助
W25Q16 Fast Read Dual Out 模式数据错误排查求助
我一直在为W25Q16外部闪存编程,目标是实现Fast Read Dual Out模式——该模式下MISO和MOSI引脚均作为STM32主机的输入,理论上数据读取速度可翻倍。目前我的SPI运行在40MHz,普通读取模式下使用DMA能获得正确带宽,读取20KB数据耗时约4.150毫秒。
但按照手册第30页的说明发送Fast Read Dual Output指令后,不仅没达到预期的双倍数据速率,还出现了数据错误。我已在闪存的512Byte空间写入预定义值用于对比验证:普通读取模式下数据完全正确,切换到Fast Read Dual Out模式后数据却损坏了。
我不清楚是否需要在执行快速读取双输出操作前对GPIO进行特殊配置,或是遗漏了手册未提及的特定步骤。恳请有相关经验的开发者给予指导。
我的SPI初始化参数如下:
inSPIHandle->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; inSPIHandle->Init.CLKPhase = SPI_PHASE_1EDGE; inSPIHandle->Init.CLKPolarity = SPI_POLARITY_LOW; inSPIHandle->Init.CRCPolynomial = SPI_CRCPR_CRCPOLY; inSPIHandle->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED; inSPIHandle->Init.DataSize = SPI_DATASIZE_8BIT; inSPIHandle->Init.Direction = SPI_DIRECTION_2LINES; inSPIHandle->Init.FirstBit = SPI_FIRSTBIT_MSB; inSPIHandle->Init.Mode = SPI_MODE_MASTER; inSPIHandle->Init.NSS = SPI_NSS_SOFT; inSPIHandle->Init.TIMode = SPI_TIMODE_DISABLE;
内容的提问来源于stack exchange,提问作者Sheikh Muhammad Junaid Aslam
相关产品推荐
相关产品推荐

