How to use BDMA in STM32H7?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-12-08 1:53 AM
I am trying to read signals from digital MEMS microphones via DFSDM peripheral and transfer it to memory with DMA on STM32H7A3. I found out that 4 channels are handled by DMA and remaining 4 with BDMA. Now I can't figure out how to get this BDMA to work.
Below I placed screenshots of Cube configuration and initialization of DFSDM with DMA. I suspect that the problem can be with memory configuration in linker script, since DMA and BDMA has not access to the same memory sections. Do someone have idea if my assumptions are correct and can suggest what should I do to get it to work?
Solved! Go to Solution.
- Labels:
-
DFSDM
-
DMA
-
STM32H7 Series
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-03-16 6:58 AM
Hi Natan Stec,
Can you please share with me your .msp file?
Which mode are you using to work with BDMA?
Best Regards,
Ons.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-03-16 7:40 AM
Hi Ons,
Unfortunately, we've found out that BDMA doesn't have parallel channels. So even if it would start working it wouldn't suit our needs. Thank You very much for your support.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-03-16 7:49 AM
Hi Natan Stec,
Can you please select your answer as best ? Since it is the best answer, BDMA (basic DMA) does not support parallel channels.
Best Regards,
Ons.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-06-01 1:20 AM
Hi all,
Know this is a dead post, but I found out there is a bug with the BDMA and DFSDM, where it do not put the BDMA into circular DMA setting after starting the DFSDM filter.
A dirty fix is forcing the register BDMA_CCRx into the correct configurations on line 719 in stm32h7xx_hal_dma.c. In my case the configurations would be:
((BDMA_Channel_TypeDef *)hdma->Instance)->CCR = 0x2AAE;
(look up STM32H7A3 reference for more information on that register)

- « Previous
-
- 1
- 2
- Next »