I am working with the stm32f4-discovery development board. An SPI bus configured in slave mode is using the DMA controller and I might add other things that will use the same DMA controller. This raises the question on how the DMA controller handles contention issues. When I think about it, the SPI slave should already create some contention because it is using 2 streams, one for Tx and one for Rx. How is this possible, how does the DMA controller manage to do 2 things at the same time? Even if I slow down my system clock to close to the SPI clock speed and disable the DMA controller FIFO, the SPI bus still works great. Can someone please shed some light on how the DMA controller handles several streams simultaneously?