# Release Notes for PDM2PCM Library Copyright 2011 STMicroelectronics
The PDM2PCM library has the function to decimate and filter out a Pulse Density Modulated (PDM) stream from a digital microphone, in order to convert it to a Pulse Code Modulated (PCM) signal output stream. The PCM output stream is implemented at a sampling rate of 16kHz with a 16 bits resolution. Various decimation factors can be configured, in order to adapt to various PDM clocks. Digital microphone gain is configurable at any time and allows 1dB step in the range of -12dB to +51dB. ## Update History ### V3.1.0 / 29-September-2018 Main Changes Update PDM Filter libraries for CortexM7 (CM7) and cortexM4 (CM4) core versions. This version is not backward compatible with previous V3.0.1 and earlier version, below the list of complete changes requiring updates on User applications: For cortexM4 (CM4): libPDMFilter_CM4_IAR.a updated and renamed to: libPDMFilter_CM4_IAR_wc32.a for EWARM V8.x and later versions libPDMFilter_CM4_IAR_wc16.a for EWARM V7.80.x and earlier versions libPDMFilter_CM4_Keil.lib updated and renamed to libPDMFilter_CM4_Keil_wc16.lib libPDMFilter_CM4_GCC.a updated and renamed to libPDMFilter_CM4_GCC_wc32.a For cortexM7 (CM7): libPDMFilter_CM7_IAR.a updated and renamed to: libPDMFilter_CM7_IAR_wc32.a for EWARM V8.x and later versions libPDMFilter_CM7_IAR_wc16.a for EWARM V7.80.x and earlier versions libPDMFilter_CM7_Keil.lib updated and renamed to libPDMFilter_CM7_Keil_wc16.lib libPDMFilter_CM7_GCC.a updated and renamed to libPDMFilter_CM7_GCC_wc32. Note: New CM7 libs support both CortexM7 core versions for STM32 F7 and STM32H7 series ### V3.0.1 / 29-December-2017 Main Changes Update libPDMFilter_CM7_Keil.lib to support CortexM7 (CM7) core version available on STM32F7 family. Known Limitations The new libPDMFilter_CM7_Keil.lib supports only CortexM7 core version available on STM32F7 family. New version for libPDMFilter_CM7_Keil.lib supporting both CortexM7 core versions (STM32 F7 and STM32H7) will be available for next release. The libPDMFilter_CM7_Keil.lib compatible with CortexM7 core version available on STM32H7 family is available on PDM Lib version V3.0.0 ### V3.0.0 / 28-February-2017 Main Changes Major APIs change Only one filtering function is provided PDM_Filter() The decimation factor, endianness, and bit order are now configured once at the PDM_Filter_Init() function call Decimation factor, demodulation loop size and digital gain can be changed on-the-fly using PDM_Filter_setConfig() function This version is not backward compatible with previous V2.1.0 and earlier version, below guidelines on how to use the new APIs Library initialization Once the memory is allocated, some routines must be called to initialize the PDM2PCM library static memory: PDM_Filter_Init() routine should be called each time the processing in the audio is stopped and started. PDM_Filter_setConfig() routine should be called at least once before processing start in order to set configurable parameter Furthermore, has the PDM2PCM library runs on STM32 devices, CRC HW block must be enabled and reset. Module execution The run time process can start, when the hardware is configured and the PDM2PCM library is initialized and configured. At each new interrupt, when enough bits have been buffered, the PDM2PCM filter routine PDM_Filter() can be called. Between two consecutive calls to this filter routine, the dynamic parameters can be changed. ### V2.1.0 / 31-March-2015 Main Changes Add Binaries for CortexM7 (CM7) core PDM_Filter_128_MSB() and PDM_Filter_128_LSB() functions: enhance volume setting, it was lower than expected PDM_Filter_64_MSB() function: fix issue when using more than 2 microphones ### V2.0.1 / 17-December-2013 Main Changes In HTONS() macro, change u16 type by uint16_t ### V2.0.0 / 07-August-2013 Main Changes Update Library binary name format Add Library version optimized for CM0, CM3 and CM4F cores Add functions for decimation factor 128 ### V1.1.2 / 17-April-2012 Main Changes All source files: license disclaimer text update and add link to the License file on ST Internet. ### V1.1.1 / 30-December-2011 Main Changes PDM Library moved from Utilities\STM32F4-Discovery to Utilities\STM32_Audio\Addons\PDM folder Add new license agreement "MCD-ST Image SW License Agreement V2.pdf" ### V1.1.0 / 28-October-2011 Main Changes Add PDM audio software decoding Library drivers, used to decode and reconstruct the audio signal produced by MP45DT02 MEMS microphone from STMicroelectronics. For more details about this Library, please refer to document "PDM audio software decoding on STM32 microcontrollers (AN3998)". stm32f4_discovery_audio_codec.c/.h: update to use DMA instead of Interrupt in I2S communication with the external codec. ### V1.0.0 / 19-September-2011 Main Changes First official version of the STM32F4-Discovery Board Drivers ## License Licensed under MCD-ST Image SW License Agreement V2, (the "License"); You may not use this package except in compliance with the License. You may obtain a copy of the License at: http://www.st.com/software_license_agreement_image_v2 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. For complete documentation on STM32 Microcontrollers visit www.st.com/STM32