I2C DMA with FIFO
Hello,
I am reading data from a motion sensor but I would like to save processor resources as much as possible. I want to implement I2C with DMA support.
Presently I have external interrupt (EXTI) from sensor which signalize that data in FIFO are ready.
In this interrupt I am reading approximately 32 bytes by I2C each time. This is happening at 1000 Hz rate.
Will DMA save some CPU time in this case?
Is there some way DMA could read FIFO without blocking the processor? Somehow automatically?
Or should I replace just few I2C commands from std peripheral library with DMA commands?
My point is to not use a blocking commands or timeouts, especially inside interrupts. I saw some examples from ST but for me it seems there is not a big benefit in I2C DMA.
My imagination would be to map RAM memory to the FIFO from I2C device and just read it directly. While STM32 MCU will handle all the transfers at the background.
Is it even possible?