Skip to main content
Visitor II
February 28, 2024
Solved

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

  • February 28, 2024
  • 1 reply
  • 1445 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.

    1 reply

    tjaekelAnswer
    Visitor 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.

    Visitor II
    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