AnsweredAssumed Answered

enhancing SPI flash reading speed

Question asked by Jeff on Mar 24, 2016
Latest reply on Mar 29, 2016 by Jeff
I have a stm32f439 board with a 128MB SPI flash in hand, this board also has a 32MB external RAM. My target is to copy the large scale data from flash to RAM.
So far I can read the data to RAM from flash by polling, however, the speed is quite limited. My SPI speed is set 42MHz, but the final flash read speed is only <8Mbps. The following figure shows the actual test result. Obviously there is a big interval between 2 SPI read, which waste quite a lot time, and so I want to reduce the interval between 2 SPI read. However, I don't know where can I do that modification.  I'm using ST's HAL driver for all SPI's operation, so far I'm always using the function "HAL_SPI_TransmitReceive()" to keep polling/receiving data. Still not sure if DMA receiving can improve it or not(principlly I don't think so because even in polling mode I do nothing but checking status and transceiving). For your convenience, I also put the ST's source code file[stm32f4xx_hal_spi.c] here.aac.jpg