2018-04-27 08:49 AM
Hi there,
I am trying to get my head around the 'new' QSPI Interface, because I never used it before. We are trying to figure out if we can use this interface like a FSMC interface in terms of memory mapping.
We are using a third party library which will operate with an external flash memory. The requirement of this library is to just have a 'memory address' to work with, the address for the memory is passed to the library and it accesses the memory space like internal space (and has no capabilities to call extra functions or qspi registers).
My question is, is that possible with the QSPI in memory mapped mode, and if so, to what limitations (speed etc.)?
I tried to figure it out with the examples given in the cube package but wasn't able to get a sufficient answer.
Any help is appreciated!
Thank you in advance,
Patrick
#qspi2018-04-27 10:18 AM
The NOR memories present as read able within the address space, you can't writing it there. ie 32MB at 0x90000000
The F4 implementations it is not cached, so will be relatively slower.
You should get one of the DISCO boards with QSPI devices and use those examples
STM32Cube_FW_F4_V1.21.0\Projects\STM32469I-Discovery\Examples\QSPI\QSPI_ExecuteInPlace
STM32Cube_FW_F7_V1.11.0\Projects\STM32746G-Discovery\Examples\QSPI\QSPI_ReadWrite_IT
2018-04-28 02:48 AM
Hi Clive,
thanks for the fast answer! We only need read operations!
We are talking about STM32L4 controllers not F4, I'm sorry I didn't mention that!
Time is a bit of the essence here, so there is no option to 'play' with a DISCO first, but if I understand you correctly it is indeed possible to map the QSPI memory to 0x90000000 and then just read from these addresses without any additional register writes or busy flag reads ecetera. Am I correct?
Thank you very much!
2018-04-28 06:40 AM
The are L4/L4+ examples also, worth doing some static analysis
STM32Cube_FW_L4_V1.10.0\Projects\STM32L496G-Discovery\Examples\QSPI\QSPI_MemoryMapped
__IO uint8_t *qspi_addr = (__IO uint8_t *)(0x90000000);
>>if I understand you correctly it is indeed possible to map the QSPI memory to 0x90000000 and then just read from these addresses without any additional register writes or busy flag reads ecetera. Am I correct?
Yes, I think you'll find the Reference Manual and Presentation Slide Decks should describe this.
2018-04-29 03:29 AM
... and AN4760.
JW