S. Marsanne


Discussion created by S. Marsanne Employee on Dec 20, 2016

Microcontrollers sometime need external memories depending of the application.

FMC enables connection of parallel memories (NOR, PSRAM, etc..), they provide high data rate at the expense of number of pins used for the interface.


For non speedy external memories, serial interfaces were common:


I2C Bus, typically 100 kbps or 400 kbps (kilobit per second raw) with external 8 pin EEPROM (non volatile memory)

SPI Bus, typically 10 Mbps using 4 wire interface to EEPROM or Flash (NOR or NAND or mixed)

SDIO Bus and QSPI are 1, 2 or 4 (or more) data line to increase data throughput with external Flash. 

What is the difference between SDIO and QSPI (Quad SPI)?

SDIO is used to connect a uSD card (microSD flash memory)


SDIO, I2C, SPI are all handled by FW (firmware=embedded software) in read and write mode.


QSPI on STM32 add an optional HW read mode: the QSPI memory is mapped within the STM32 addressing space as if it was internal. No FW required to read data after configuring the peripheral. This provides high data throughput at low pincount. Some QSPI memories have DDR mode to double the datarate or reduce pincount: One bit per clock edge instead of 1 bit per clock period.

It is possible to execute code in the QSPI memory (XIP=eXecute In Place).

External serial RAM is uncommon. Need one?

Consider using MRAMconnected to QSPI interface, it could solve tricky challenges.