2025-08-06 11:22 AM
Hello,
I am trying to get I2S and DMA working on my stm32wb55 microcontroller. I want to read data from an INMP441 (or similar). I did try to use the STCube IDE (or MX) to configure I2S and DMA using tutorials from the internet but this also did not work. The tutorials are all made for other ST-microcontrollers though.
I either have a problem setting up the DMA, SAI (for I2S) or the DMA interrupt. I do not really have any idea where my problem lies. Just using the standard configurations from STCube do not seem to work.
Does anyone here have any experience with the STM32WB55 and the SAI of this Microcontroller in particular? I am using the WeAct STM32WB55CGU6 for testing.
Thanks a lot for helping me out here.
2025-08-06 12:25 PM
Hi,
The SAI is working fine, just set it to the mode you need. Master receive, 16bit, two slots, ... maybe.
Then set a DMA Channel for circular mode, with 16b , half word, source and destination.
Enable callback in Cube project settings for the SAI, generate code.
In program then set an array int16_t , big enough, let's say 16KB .
Then start the SAI in DMA mode, once, that's it.
Now in callback half and full, you get the data, to copy and use it. That's it.