2025-08-08 6:53 AM
Hello,
Our board has an STM32N657 MCU connected to an IS21S08GA eMMC.
We use an 8-bit bus, and SDMMC1 is configured to run at 32 MHz.
In polling mode, read/write operations work, but are very slow — it takes about 1–2 ms to read or write a single block (512 bytes).
I want to switch to DMA, but I’ve encountered a strange problem.
As far as I know, on the STM32N6 series, the SDMMC peripheral works with IDMA, so we can't use GPDMA or HPDMA — is that correct?
IDMA seems to work — the callbacks are called and no errors are reported.
However, I can't read the same data I wrote.
It seems the data isn't actually read at all (or possibly not written either).
Note that I am using SCB_CleanDCache and SCB_InvalidateDCache as needed. I also tried disabling the D-Cache entirely — no change.
Does anyone have experience with eMMC and IDMA on STM32N6?
I would greatly appreciate any guidance or advice.