cancel
Showing results for 
Search instead for 
Did you mean: 

Fastest inter MCU communication.

Slina
Associate III

I'm planning to make a multi MCU system where one MCU will act as a video driver, so I need a fast communication between two of them (al least 20MB/s). What is the best way to do that without active MCU involvement? Busy waiting on port inputs sounds like a stupid idea, but all the other suggested solutions that I've come across are way too slow. I've read somewhere that someone did it with QSPI? That would work, since it says 50MB/s can be achieved, but how to use QSPI for anything else than for flash?

26 REPLIES 26

Outputting it as RGB video on one MCU and inputting it using DCMI on other? Using timer-triggered-GPIO DMA as per AN4666?

I'm not sure "at least 20MB/s" is viable; but even is yes, what would you do with that influx of data, it eludes me.

JW

640x480x60Hz=17,58MB/s, so it's not at least 20MB/s but 17.6. Image post-processing is the WHY.

That is the theory.

But RAM sizes are insufficient for full frames, and you need additional managing code overhead.

Like moving image processing? A continuous 640x480x60Hz stream?

JW

Slina
Associate III

1MB on-chip is plenty of memory for 3 frame buffers. Plenty of time to add some things to the image too, if I get DMA to do the transfer.

Yes, that's the plan.

I don't know which MCU you want to use.

Your task to check the memory map for RAM fragmentation and limitations (inaccessibility by DMA).

Slina
Associate III

STM32H750VBT6.

Again, I was hoping Quad SPI (or whatever does the job in time) would do DMA of the next frame from peripherals to framebuffer while I would add some parts to the previous frame before displaying it.

I know this is possible if QPI is reading flash, but I've read somewhere (I think) that someone used it for inter MCU communication.

SF??r
Associate III

QSPI is only a master interface...

You could transfer it with up to 6 SPI interfaces or (even faster) you could use the parallel bus (FMC) in a way you could share an external SRAM.