Note
In this repository, the * ./Middlewares/ST/STM32_Audio
middleware libraries and the related projects (demos, applications, and examples) are not available here as they (the middleware libraries) are subject to some restrictive license terms requiring the user's approval via a "click thru" procedure.
If needed, they can be found inside the full firmware package available on our website st.com
and downloadable from here. You will be prompted to login or to register in case you have no account.
The X-CUBE-MEMSMIC1 software package is an expansion for STM32Cube.
This software provides drivers running on STM32 for the acquisition of ST digital MEMS microphones (MP34DT06J) and ST analog MEMS microphones (MP23ABS1).
It is built on top of STM32Cube software technology that ease portability across different STM32 microcontrollers.
X-CUBE-MEMSMIC1 also includes an example of ultrasound condition monitoring (UltrasoundFFT) that calculates the FFT of the analog microphone signal and streams the result to a PC GUI via USB.
The package also offers an example to exploit the Performance Mode of the MP23DB01HP MEMS audio sensor multi performance mode digital microphone available on the STEVAL-MIC006V1 coupon board.
X-CUBE-MEMSMIC1 software features:
- Complete middleware to build applications using ST MEMS digital and analog microphones.
- Easy portability across different MCU families thanks to STM32Cube.
- Sample applications that the developer can use to start experimenting with the code.
- References to free application that can be used to record and save acquired microphones audio signals.
- Free user-friendly license terms.
- Examples implementation available for the following STM32 Nucleo expansion board:
- X-NUCLEO-CCA02M2
- X-NUCLEO-AMICAM1
- The STM32 Nucleo expansion board can be plugged on top of
- NUCLEO-F401RE
- NUCLEO-L476RG
- NUCLEO-F746ZG
- P-NUCLEO-WB55
- NUCLEO-L4R5ZI (only MB1312 A-01 version is supported)
- Examples implementation available for STEVAL-STWINKT1B and STEVAL-STWINKT1 SensorTile Wireless Industrial Node (STWIN) development kits and for the STEVAL-STWINMAV1 microphone array expansion board.
The figure below shows the overall architecture.
- At the bottom layer there are the HW components: the STM32 MCU and the MP34DT06J digital MEMS microphone or the MP23ABS1 analog MEMS microphone.
- The drivers abstract low level details of the hardware and allow the middleware layer to provide functionalities in a hardware independent fashion. In this particular case, middleware implements PDM to PCM decimation filter and a custom USB Audio input class.
- The application provide examples of how to use the code.
Here is the list of references to user documents:
- UM1901 : Getting started with the software package for digital MEMS microphones in X-CUBE-MEMSMIC1 expansion for STM32Cube
- UM2214 : Getting started with Acoustic BF real time beamforming library
- UM2212 : Getting started with Acoustic SL real-time sound source localization middleware
- MP34DT06J : MEMS audio sensor omnidirectional digital microphone datasheet
- MP23ABS1 : High performance MEMS audio sensor single ended analog bottom-port microphone
- STM32Cube : STM32Cube
- STM32 Nucleo boards : STM32 Nucleo boards
- STM32 Nucleo expansion boards : STM32 Nucleo expansion boards
Requirements not met
STM32L4R5ZI-Nucleo/AMICAM1/AcousticBF example in Keil generates a warning. It is not impacting the demo performance, so you can ignore it. See details from arm for further details. Examples for NUCLEO-L4R5ZI has been developed and tested only on MB1312 A-01 version. Later versions changed HW configuration and by default are not compatible anymore with X-NUCLEO-AMICAM1 board. High Performance Microphones Streaming example uses the new HP_PDMFilter library and is compatible only with STEVAL-MIC006V1. The example is available on STM32F401 and STM32F746 for X-NUCLEO-CCA02M2. Beamforming and Source localization examples are available only on STM32F401 for X-NUCLEO-CCA02M2 and on STM32L4+ for X-NUCLEO-AMICAM1. A Source localization example is also available on STWIN board. To use X-NUCLEO-AMICAM1 safely, read carefully hardware configuration needed. See UM1901 and UM2649
- IAR Embedded Workbench for ARM (EWARM) toolchain V9.20.1
- RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.38.0
- STM32CubeIDE Version 1.16.1
- STM32WB55, STM32F401, STM32L476, STM32L4R5 and STM32F746 devices
- P-NUCLEO-WB55
- NUCLEO-F401RE Rev C
- NUCLEO-F746ZG Rev B
- NUCLEO-L476RG Rev C
- NUCLEO-L4R5ZI
- X-NUCLEO-CCA02M2
- X-NUCLEO-AMICAM1
- STEVAL-STWINKT1
- STEVAL-STWINKT1B
- STEVAL-STWINMAV1
- X-NUCLEO-CCA02M1 is not supported anymore, but you can still use this outdated board running the X-NUCLEO-CCA02M2 + NUCLEO-F401RE, NUCLEO-F746ZG or NUCLEO-L476RG examples due to HW compatibility between the two shields.
- None