cancel
Showing results for 
Search instead for 
Did you mean: 

Using single buffer mode of DMA of STM32H7 family to transfer large data bytes from SD card to RAM...

HTajb.1
Associate III

Hello everybody,

I am going to use one of the chips from STM32 H7 family in my project (My tool-chain: STM32CUBEIDE and STM32CubeMX).

In my project,I have to transfer large data bytes from SDcard to internal RAM of the micro-controller very rapidly and dynamically(in the run time) by using internal DMA(IDMA) of the SDMMC interface of the micro-controller.

Since the capacity of HAL instructions and commands for doing so, is limited to 512 bytes for data transferring,I assume I have to use these HAL commands periodically and probably in a loop, to cover the whole data which should be transferred .

I presume I have to change the the start address of the both data blocks(inside the SD card and inside the internal RAM)dynamically and by my C code, whenever a transfer completes,to transmit the rest of data,till the end of all data.

1-Am I able to do it?Is there any hint or clue for it?Can anyone introduce me proper instructions of HAL library for doing it?

2-The capacity of the flash controller of this micro is :128 KB .Can it be considered a good and sufficient choice for doing this?Or, is it better to choose another micro with larger flash memory?

Your consideration is highly appreciated.

1 REPLY 1
HTajb.1
Associate III

1-According to the info of the HAL drivers ,the command for reading data from SD Cards in DMA mode,is quite capable of handling and transferring many data blocks(not just one block) ...so there is no need to use a "loop" and etc . Although,I don't know how this command works well practically .

2-128 KB may seem a small capacity for flash memories,specially for some applications.