cancel
Showing results for 
Search instead for 
Did you mean: 

Is the QSPI in Memory Mapped mode usable like the FSMC?

patrickschneider9
Associate III
Posted on April 27, 2018 at 17:49

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

#qspi
4 REPLIES 4
Posted on April 27, 2018 at 19:18

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

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on April 28, 2018 at 09:48

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!

Posted on April 28, 2018 at 13:40

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.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on April 29, 2018 at 10:29

... and AN4760.

JW