lib_mic_array: PDM microphone array library

FAVOURITE VERSION RELEASED COMMENTS DOCUMENTATION SOFTWARE
7.0.0 2026-03-31 v7 changes tests from XC to C using lib_xcore, and removes XCommon build support (use XCommon CMake) VIEW HTML VIEW PDF ZIP
View older versions
6.0.0 2026-02-05 v6.0 brings important usability improvements by updating the API. This update also fixes a lockup bugs in PDM RX ISR. ZIP ZIP
5.5.0 2024-11-07 ZIP ZIP
3.0.1rc1 2017-02-27 PDF ZIP
3.0.0rc2 2017-01-27 PDF ZIP
2.0.0rc1 2016-03-11 PDF ZIP
INFO

Summary

The XMOS microphone array library is designed to allow interfacing to PDM microphones coupled with efficient decimation to user configurable output sample rates.

This library is only available for XS3 devices due to requiring the XS3 vector unit. It will build without errors for XS2 targets however no mic_array APIs will be available. Please see versions prior to v5.0.0 for XS2 support.

Features

The microphone array library has the following features:

  • 48, 32, 16 kHz output sample rates by default (3.072 MHz PDM clock)

  • 44.1, 29.4, 14.7 kHz output samples using 2.8224 MHz PDM clock

  • Other sample rates possible using custom decimation filter

  • 1 to 16 PDM microphones

  • Supports up to 8 microphones using only a single thread

  • Configurable MCLK to PDM clock divider

  • Supports both SDR and DDR microphone configurations

  • Framing with configurable frame size

  • DC offset removal

  • Extensible C++ design

Known issues

  • PDM receive can lock-up in ISR mode when ma_frame_rx is not called isochronously after first transfer.

Development repo

Required tools

  • XMOS XTC Tools: 15.3.1

Required libraries (dependencies)

Support

This package is supported by XMOS Ltd. Issues can be raised against the software at: http://www.xmos.com/support

Scroll to Top