cancel
Showing results for 
Search instead for 
Did you mean: 

stm32f7 SAI1B DMA2 stream 5 and 0 conflict with SDMMC2 stream 0 and 5 ????

benyBoy
Associate II

Hi,

stm32f7 

SAI1B DMA2 stream 5 and 0 conflict with SDMMC2 stream 0 and 5 ????

I need to record data to and playback from SDMMC2 with DMA to and from SAI1B.

SDMMC2 uses both stream 0 and stream 5.

DMA2_Stream5_IRQHandler

DMA2_Stream0_IRQHandler

The peripherals are on different channels.

can write my own IRQHandlers to resolve the conflict or can there only be one peripheral per stream on DMA1 and DMA2 ?

I have managed to move some USART and SPI to DMA1 to free up some streams but this conflict leaves me stuck!

Would much appreciate any guidance.

This discussion is locked. Please start a new topic to ask your question.
2 REPLIES 2

One channel selectable per stream. Single device active at a time.

You could perhaps use a mutex to arbitrate ownership of the stream, but it is not a task I would envy, nor one I would be sure the outcome would work satisfactorily. ie I think it could be demonstrated to be able to be shared, but the sharing may not be sufficiently cooperative to be deemed successful in the final application.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
benyBoy
Associate II

maybe I can assign the same DMA stream to different devices and init / deInit them

when actually using them. for instance I guess I don't need to write to the SD card while I'm reading from it.

maybe just use an if statement in the IRQhandler ?

DMA2_Stream5_IRQHandler

{

if ( A == 1) {do one task}

else { do something other task}

}