cancel
Showing results for 
Search instead for 
Did you mean: 

Stm32h747-Disco sd card using FatFs works only from M7 core

Patryk_Kucia
Associate III

 

Hi everyone,

I’m currently working with an STM32H747 and trying to perform SD card write operations using core M4. The SMMC1 peripheral is connected to the D1 domain, which (as far as I understand) means that the M4 core (D2 domain) doesn’t have direct access to it.

When I try to write to the SD card from M4 (using MDMA), it always fails — f_mkfs returns an error. However, when I run exactly the same code on core M7, everything works perfectly fine.

So my questions are:

Does it make sense that the M4 cannot access SMMC1 because of the D1 domain connection?

Is there any way to make SD write operations work from the M4 core (for example, through shared memory, DMA Settings, or another workaround)?

Thanks in advance.

1 REPLY 1
Saket_Om
ST Employee

Hello @Patryk_Kucia 

You are right, the SDMMC1 peripheral is located within the D1 domain of the STM32H747, which means it is not directly accessible by the D2 domain (Cortex-M4 core). As a result, the Cortex-M4 core cannot perform SD card operations using SDMMC1. To enable SD card access from the Cortex-M4 core, we recommend utilizing the SDMMC2 peripheral, which is mapped to the D2 domain and can be directly controlled by the Cortex-M4.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
Saket_Om