2010-06-27 07:02 AM
DMA vs FSMC
2011-05-17 04:55 AM
2011-05-17 04:55 AM
Hi,
You can't talk about ''difference'' between DMA and FSMC, there is no relation. FSMC is an interface used to control external memories (SRAM, NAND ...). DMA is an independent controller allowing transfers on AHB to be performed without need to use CPU. In case of FSMC, you can use DMA (WITH FSMC) in order to free CPU for other tasks. DMA will handle transfers from memory to FSMC controller without intervention of CPU. But the FSMC will physically carry the data to the external memory. To have a simple scheme: - DMA has access on the AHB/APB bus only. - FSMC is connected to the AHB bus like any other peripheral (well, most other peripherals are connected to the APB, but it is just a detail). - External memories are connected to the FSMC only, not to the AHB ---> DMA has no direct interface with external memories, it only interfaces with the FSMC controller. Is it clear enough for you ?2011-05-17 04:55 AM
I think I get it now.
So what you are saying is that the FSMC can also be interfaced directly with the MCU? And what would the consequences then be - slower data rates - slower processor, as it has to handle more?
Best Regards
Thomas Jespersen
2011-05-17 04:55 AM
2011-05-17 04:55 AM
I have to remind you of the fact, that using dma is not for free! In low power applications it can be better to use the cpu for transfers instead of the dma (dependent of default cpu load).