cancel
Showing results for 
Search instead for 
Did you mean: 

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

JoshDarklyLabs
Associate

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

1 ACCEPTED SOLUTION

Accepted Solutions
tjaekel
Lead

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.

View solution in original post

2 REPLIES 2
tjaekel
Lead

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.

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