AUDIO RECORD - MEMS > DFSDM > I2S > FATFS > Ethernet
Hello everyone,
I'm trying to implement an audio acquisition system based on some demos from ST's CubeHAL libs. I'm using the STM32F413-Discovery board as a target for this project. It has most of the peripherals needed to complete the job, LCD, MEMS, audio codec, ext. PSRAM, etc.
The MEMS is interfaced through the DFSDM peripheral. I did not use that peripheral before because it was not available in other devices I have used in previous projects. I wanted to implement an audio recorder that can take audio input from the MEMS mounted on board and save that to a file. I noticed that in other board where the MEMS is interfaced to I2S, the PDM2PCB library is used to convert the samples into PCM data. The audio_rec_dfsdm demo seems to do the job without the conversion. Does that mean the output from the DFSDM is directly saved into the SRAM buffer as PCM data?
The live streaming/playback demo seems a great starting point for my project, but the audio/application state machine for the demo code is very complicated and difficult to absorb. I was wondering if there's any other demos, projects, or reference code that I can build upon to do the project. Also, it would be very helpful if someone could explain to me in pseudo code how to do this in RTOS context. I'm talking here about threads, queues, DMA transactions, and their relationship with the application using the FreeRTOS. And when streaming the audio over the network in real-time, Ethernet to another board, do you suggest using an encoder/decorder or just stream the PCM data and have it played back at the other side using I2S and audio codec?
Thanks,
Zaher
