cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F7: small package, hi-speed ext. SRAM, please

LCE
Principal

Hello community,

now that STM32F767 + lwIP / TCP is working well, I found that sometimes it takes too long for streaming that the other side gets the data (some other network traffic, or delayed ACKs, or whatever Windows does), and the STM32's internal SRAM buffers are not big enough.

Right now I'm using about 350 kB, but at the highest streaming rate of about 50 Mbit/s, that is enough for only about 50 ms.

So now I'm looking for some small package external SRAM.

The problem I see:

size / serial vs. data rate

When using external SRAM as kind of FIFO, it needs at least double data rate of the 50 Mbit/s = ~7 MByte/s, in case of a serial solution even much more for addressing.

For now I have only experience with parallel SRAM (connected to an FPGA), so I'm looking for some advice!

My best guess for now would be to look at QSPI, or OctoSPI, and I'd rather have some input from people who already used this and have some experience concerning handling and throughput.

1 ACCEPTED SOLUTION

Accepted Solutions
Alex - APMemory
Senior II

@Community member​ 

Regarding  APS1604M-3SQR (available in SOP8 or USON8, https://www.apmemory.com/wp-content/uploads/APS1604M-3SQR.pdf), this device can run up to 133MHz, so 66MB/S max theroritical Bandwidth.

Regarding STM32 QSPI support, it's depends on MCU version, latest can support full spec QSPI or OPI, but STM32F7 mentionned only support NOR memory controller. This can support QSPI RAM, but controller doesn't support Memory mapped write function.

If you want to run OPI for higher Bandwidth, still with low pin count RAM solution, I'll suggest STM32H7A3/B3, STM32H72x/3x, STM32U5.

Alex

View solution in original post

7 REPLIES 7
Pavel A.
Evangelist III

In a recent project we've used 23LC1024 QSPI SRAM https://www.microchip.com/en-us/product/23LC1024

But not in continuous streaming mode. Can't give concrete performance figures.

Thanks for the answer!

I think that one will be too slow, with max clock rate of 20 MHz and QSPI, it will be max.80 Mbit/s.

LCE
Principal

Does anybody have any experience with higher speed QSPI RAM?

And who selected Pavel's answer (it was good, but not the final answer to my problem) as best? Wasn't me! 😉

LCE
Principal

@Alex - APMemory​ 

Hi Alex,

just found the APS1604M-3SQR, seems to be recommended by ST.

Which data rate would be achievable using it as RAM extension with an STM32F7 running with 200MHz?

LCE
Principal

Dear me, RTFM!

I just see in the F767's ref manual (RM0410) under QSPI:

"In memory-mapped mode, the external Flash memory is seen as internal memory but with

some latency during accesses. Only read operations are allowed to the external Flash

memory in this mode."

Okay, they are writing about "flash" all the time, but I somehow thought that this would work with QSPI RAM, too.

Is there any other way to get fast, small package RAM to the F7?

The FMC seems to support only 8 bit data and up, and a parallel address bus.

Alex - APMemory
Senior II

@Community member​ 

Regarding  APS1604M-3SQR (available in SOP8 or USON8, https://www.apmemory.com/wp-content/uploads/APS1604M-3SQR.pdf), this device can run up to 133MHz, so 66MB/S max theroritical Bandwidth.

Regarding STM32 QSPI support, it's depends on MCU version, latest can support full spec QSPI or OPI, but STM32F7 mentionned only support NOR memory controller. This can support QSPI RAM, but controller doesn't support Memory mapped write function.

If you want to run OPI for higher Bandwidth, still with low pin count RAM solution, I'll suggest STM32H7A3/B3, STM32H72x/3x, STM32U5.

Alex

LCE
Principal

Thanks!