STM32F0, can I2C and SPI be used concurrently? DMA?
Posted: Tue Mar 11, 2014 5:47 am
I noticed in the STM32F0 I2C and SPI driver that they both require DMA and it looks like the I2C and SPI peripherals have conflicting DMA channel assignments based on my reading of the _lld header file. Is this true?
If so, what does that mean? Can a program use the I2C and SPI peripheral that use the same DMA channel? Will the HAL drivers wait until the DMA channel is available, or will it crash or otherwise fail?
Is there any reason not to implement an interrupt-driven option for the I2C driver? Since I2C is generally run at much slower bit rates than SPI it would make more sense to do it there.
How about the STM32F4 -- does it have this kind of conflict between DMA channels? It sounds like it has a much more advanced DMA system.
If so, what does that mean? Can a program use the I2C and SPI peripheral that use the same DMA channel? Will the HAL drivers wait until the DMA channel is available, or will it crash or otherwise fail?
Is there any reason not to implement an interrupt-driven option for the I2C driver? Since I2C is generally run at much slower bit rates than SPI it would make more sense to do it there.
How about the STM32F4 -- does it have this kind of conflict between DMA channels? It sounds like it has a much more advanced DMA system.