note: I’m trying to stick to b=bit, B=byte here.

Camera

We need an interface that can handle: 60fps at 640x512 frame size = 19,660,800pixels/sec

CMOS output is capable of 40M pixels/sec, each pixel is 14 bits

So, total throughput is 275.251Mb/s = 34.4MB/s

Need to store 734MB → 2x datacube

SD Card

SDR50 should be fast enough (though required voltage conversion)

In any case, should be able to get 25MB/s at 3V3

SD card interface describes current attempts at SD card stuff, which results in not fast enough. They capped out at 1.9Mbit/s = 238kB/s, so I suspect their methodology was incorrect. That’s wayyyyy slower than the DS max speed, like 50 times slower.

Screen Shot 2023-03-23 at 11.50.01 PM.png

What about MMC cards?

Yeah that’s actually a good point. High speed SDR seems very reasonable, and is at the right voltage. Hmmmmm……

Oh that’s why, they’re all in horrible BGA packages. Right. Moving on. Maybe there are some that I couldn’t find though. What about a MMC breakout? Or SATA? M.2?

FMC (SDRAM)

This is what we’re trying to work on now. There’s a ton of wires and it’s hard. SDRAM Interface

Limited storage size, the STM32H7 only supports 2 SDRAM IC's * 4 x 16MBit x 32bits = 512Mbit. This limits Science in a bad way.

This stuff literally used to be in computer RAM. It’s the great-great-great-grandfather of DDR5. It’s stupid fast. We’re talking 143MHz clock with 16 bit wide bus, so 286MB/s. 🔥 🔥🔥 blazing fast! Also volatile, so it’s only used as a buffer.

QSPI

Most QSPI memory is NOR flash, which is slow to write/erase, but fast to read. Unfortunately, we need fast write performance. While the clock speed seems appealing (100MHz * 4 bits/clock = 50MB/s!) the actual write time is usually 10x slower than read speeds

Ex. for the AS5F18G04SND-10LIN 8Gbit QSPI memory, page program time is 600us, and a page is 4096 bytes. So, max write speed is 4096 / 600u = 6.83MB/s. Too slow.

What if the H7 isn’t the right choice?