Using Quad-SPI PSRAM with a STM32-H7 -- is that possible, and wise, performance-wise?
Hello,
I am in the process of designing a product which is based on the STM32-H7 and requires more RAM, somewhere in the 2-digit MB range (8 or 16 MB should do).
As I understand, I have several options:
- Using SD-RAM with the Flexible Memory Controller (FMC)
- Using some other form, e.g. PSRAM with the FMC
- Using the Quad-SPI interface with a QSPI-PSRAM component, e.g. this https://www.espressif.com/sites/default/files/documentation/esp-psram64_esp-psram64h_datasheet_en.pdf
The FMC options -- regardless of whether PSRAM or via the SD-RAM banks, swallows a considerable amount of pins: I think I'm around 20+ pins with 4 SD-RAM banks and 11 address bits, with 8 bit data. It gets a lot worse if I opt for 16 or 32 bit data.
The Quad-SPI memory would be considerably easier to integrate, at the expense of two disadvantages:
- Availablility
- Performance
As far as performance is concerned, I have the STM applicatio note AN4891 (see https://www.st.com/resource/en/application_note/dm00306681-stm32h72x-stm32h73x-and-singlecore-stm32h74x75x-system-architecture-and-performance-stmicroelectronics.pdf ), which essentially tells me (tables 18 and 19) that 8 bit performance of SDRAM cost me somewhere around 30-50% worse performance. At the same time, using Quad-SPI FLASH costs me roughly around 50-90% performance (e.g. table 13), as in: twice as slow as the reference memory configuration from the AN4891 benchmark application.
So the tradeoff with regards to performance, if the number of pins is of concern, seems to be: lose some performance (say, around 30%, give or take?) in exchange for a lot of pins :)
Now to my question(s):
Is my assesment correct? If I buy a QSPI-PSRAM module that fits my needs, is that really all I lose? A factor of <= 2 in performance? Or are there more subtle implications that I'm missing here? (Why isn't everybody using QSPI-RAM then?)
Cheers,
F.
