Skip to main content
Associate
February 28, 2024
Solved

Can I use the STM32F446RE (64 pin package) with memory mapped QSPI external flash?

  • February 28, 2024
  • 2 replies
  • 1486 views

HI,

I am using a STM32F446RE which is the 64pin package.

AN4760 states that "LQFP64 supports only Bank1 and Single-SPI/Dual-SPI only"

Does this mean that I am unable to use the QSPI on this chip to be memory mapped?

When configuring the chip in CubeMX, QSPI comes up, but obviously only uses NCS, IO0, IO1, and CLK

I have searched as much as I am able to, but have been unable to find anything definitive. Any help is much appreciated.

Thanks,

Josh

This topic has been closed for replies.
Best answer by tjaekel

BTW: you can find the answer yourself: look at the pinmux table in datasheet and search which QSPI_ signals are populated on your LQFP64 package.

What I see:

  • QUADSPI_BK1_IO3 = pin 15  - IO2 is missing
  • QUADSPI_CLK = pin 28
  • QUADSPI_BK1_IO0 = pin 40
  • QUADSPI_BK1_IO1 = pin 51
  • QUADSPI_BK2_NCS = pin 52   - nothing else for BK2
  • QUADSPI_BLK1_NCS = pin 58

Yes, QUADSPI_BK1_IO2 is missing!

Yes, so you have only the option to configure QSPI in Dual-Lane mode (using IO0 and IO1).

But every QSPI chip should support this mode. Just configure the external QSPI flash for this mode.

And still possible to use an external QSPI chip in Memory Mapped mode: the QSPI peripheral in MCU will map it properly as a "regular" external memory (just a bit slower with 2 lanes, instead of 4, half the performance, but you might have caches...). It would even do if you would use a Single Lane on QSPI.

2 replies

tjaekelBest answer
Lead II
February 28, 2024

BTW: you can find the answer yourself: look at the pinmux table in datasheet and search which QSPI_ signals are populated on your LQFP64 package.

What I see:

  • QUADSPI_BK1_IO3 = pin 15  - IO2 is missing
  • QUADSPI_CLK = pin 28
  • QUADSPI_BK1_IO0 = pin 40
  • QUADSPI_BK1_IO1 = pin 51
  • QUADSPI_BK2_NCS = pin 52   - nothing else for BK2
  • QUADSPI_BLK1_NCS = pin 58

Yes, QUADSPI_BK1_IO2 is missing!

Yes, so you have only the option to configure QSPI in Dual-Lane mode (using IO0 and IO1).

But every QSPI chip should support this mode. Just configure the external QSPI flash for this mode.

And still possible to use an external QSPI chip in Memory Mapped mode: the QSPI peripheral in MCU will map it properly as a "regular" external memory (just a bit slower with 2 lanes, instead of 4, half the performance, but you might have caches...). It would even do if you would use a Single Lane on QSPI.

Associate
February 29, 2024

Thanks so much for your response! 

I knew that I could only use QSPI in Dual-Lane mode using IO0 and IO1, however I wasn't sure that I could still use it in the memory mapped mode in this configuration - from what I was reading I thought I could but wasn't certain. Thanks for clearing this up!

Josh