Adafruit PDM Microphone Breakout

Similar documents
Adafruit Terminal Block Breakout FeatherWing

Adafruit VL53L0X Time of Flight Micro-LIDAR Distance Sensor Breakout

Adafruit I2S MEMS Microphone Breakout

Adafruit Metro Mini. Created by lady ada. Last updated on :12:28 PM UTC

Adafruit USB Power Gauge Mini-Kit

SiSonic FLEX Evaluation Kit KAS USER GUIDE.

Adafruit HMC5883L Breakout - Triple-Axis Magnetometer Compass Sensor

Adafruit DS3231 Precision RTC Breakout

Adafruit SHT31-D Temperature & Humidity Sensor Breakout

Adafruit 1-Wire Thermocouple Amplifier - MAX31850K

Adafruit HTU21D-F Temperature & Humidity Sensor

2.2" TFT Display. Created by lady ada. Last updated on :19:15 PM UTC

Adafruit MAX31865 RTD PT100 or PT1000 Amplifier

Adafruit seesaw. Created by Dean Miller. Last updated on :30:23 AM UTC

Adafruit BME680. Created by lady ada. Last updated on :10:23 AM UTC

Adafruit MAX98357 I2S Class-D Mono Amp

Introducting Itsy Bitsy 32u4

Adafruit Powerboost 1000 Basic

Adafruit PowerBoost Charger

Adafruit TB A DC/Stepper Motor Driver Breakout Board

Adafruit HUZZAH32 - ESP32 Feather

Adafruit PowerBoost Charger

Adafruit INA219 Current Sensor Breakout

Adafruit BME280 Humidity + Barometric Pressure + Temperature Sensor Breakout

Adafruit BME280 Humidity + Barometric Pressure + Temperature Sensor Breakout

Adafruit BMP280 Barometric Pressure + Temperature Sensor Breakout

Adafruit Mini TFT " 160x80

Adafruit MAX31865 RTD PT100 or PT1000 Amplifier

Adafruit CAP1188 Breakout

Adafruit DotStar FeatherWing

Adafruit 1-Wire GPIO Breakout - DS2413

Stand-alone programming AVRs using CircuitPython

Adafruit Optical Fingerprint Sensor

Adafruit Feather 32u4 Basic Proto

Using ATSAMD21 SERCOM for more SPI, I2C and Serial ports

Adafruit 1-Wire Thermocouple Amplifier - MAX31850K

Pmod I2S2 Reference Manual

Adafruit 2.4" Color TFT Touchscreen Breakout

Adafruit 5" and 7" 800x480 TFT HDMI Backpack

Introducing Circuit Playground

Adafruit LSM9DS1 Accelerometer + Gyro + Magnetometer 9-DOF Breakout

Native MP3 decoding on Arduino

Proper Debugging of ATSAMD21 Processors

Adafruit Powerboost 1000C

Using ATSAMD21 SERCOM for more SPI, I2C and Serial ports

Exen Mini. Setup Guide - V1. nerdonic.com

Adafruit 3.5" 320x480 Color TFT Touchscreen Breakout

Adafruit 20W Stereo Audio Amplifier - MAX9744

Exen Mini. Setup Guide - V2. nerdonic.com

Goal: We want to build an autonomous vehicle (robot)

1.5" & 2.1" Monochrome 128x64 OLED Display Module

Adafruit 20W Stereo Audio Amplifier - MAX9744

Getting started with the digital MEMS microphone expansion board based on MP34DT01-M for STM32 Nucleo

Adafruit 2.8" TFT Touch Shield v2 - Capacitive or Resistive

Adafruit Ethernet FeatherWing

Adafruit 4-Channel ADC Breakouts

ARDUINO MINI 05 Code: A000087

2.3" Monochrome 128x32 OLED Display Module

DS1307 Real Time Clock Breakout Board Kit

Digital Circuits 7: MCUs... how do they work?

Adafruit Analog Accelerometer Breakouts

TLC5947 and TLC59711 PWM LED Driver Breakouts

2.3" Monochrome 128x32 OLED Display Module

USB + Serial RGB Backlight Character LCD Backpack

TSL2561 Luminosity Sensor

Adafruit LSM9DS0 Accelerometer + Gyro + Magnetometer 9-DOF Breakouts

CORTESIA ELECTRONICCA

Adafruit 2.8" TFT Touch Shield v2 - Capacitive or Resistive

Part Number: PCB-STM32-F4B1 (unpopulated PCB with Discovery module sockets, no other parts) STM32-F4B1 (assembled board, not presently available)

PIC Serial Peripheral Interface (SPI) to Digital Pot

Adafruit Optical Fingerprint Sensor

Micro SD Card Breakout Board Tutorial

Introducing Gemma. Created by lady ada. Last updated on :08:07 AM UTC

Adafruit INA219 Current Sensor Breakout

Bosch BMP085 Breakout Board

ARDUINO PRIMO. Code: A000135

Introducing Gemma. Created by lady ada. Last updated on :03:35 PM UTC

ARDUINO MICRO WITHOUT HEADERS Code: A000093

Arduino Uno. Arduino Uno R3 Front. Arduino Uno R2 Front

PM2.5 Air Quality Sensor

IR Breakbeam Sensors. Created by lady ada. Last updated on :32:59 PM UTC

Adafruit Music Maker Shield

Arduino IDE The Developer Kit library The JeeLib library for RFM12 transceivers

TMP36 Temperature Sensor

USB + Serial RGB Backlight Character LCD Backpack

Micro SD Card Breakout Board Tutorial

keyestudio Keyestudio MEGA 2560 R3 Board

AT42QT1010 Capacitive Touch Breakout Hookup Guide

Adding a Real Time Clock to Raspberry Pi

Adafruit I2S Stereo Decoder - UDA1334A

Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

MC3635 FEATURES GENERAL DESCRIPTION

Si4703 FM Radio Receiver Hookup Guide

Serial Communication

ARDUINO UNO REV3 Code: A000066

Introducing Pro Trinket

Adafruit Music Maker Shield

ARDUINO M0 PRO Code: A000111

1.6inch SPI Module user manual

PIR Motion Sensor. Created by lady ada. Last updated on :23:34 PM UTC

Transcription:

Adafruit PDM Microphone Breakout Created by lady ada Last updated on 2018-01-10 10:25:53 PM UTC

Guide Contents Guide Contents Overview Pinouts Wiring & Test Available I2S Pins Install Library Downloads Files Schematic & Fabrication Print 2 3 6 7 7 7 9 9 9 Adafruit Industries https://learn.adafruit.com/adafruit-pdm-microphone-breakout Page 2 of 9

Overview An exotic new microphone has arrived in the Adafruit shop, a PDM MEMS Microphone! PDM is the 'third' kind of microphone you can integrate with electronics, apart from analog or I2S. These microphones are very commonly used in products, but are rarely seen in maker projects. Still, they have some benefits so we thought we'd offer a breakout for the shop. The first thing to note is that this sensor does not provide an 'analog' output like many of our electret microphone assemblies. So it's great for chips that do not have analog inputs. Secondly, the digital interface is a very simplistic pulse density modulation output. It's digital but its not PWM and it's not I2S. You will need to make sure your chip has a PDM interface - most 32-bit processors these days do! Adafruit Industries https://learn.adafruit.com/adafruit-pdm-microphone-breakout Page 3 of 9

PDM is a little like 1-bit PWM. You clock the mic with a 1 MHz - 3 MHz clock rate, and on the data line you'll get a square wave out that syncs with the clock. The data line with be 0 or 1 logic output, with the square wave creating a density that when averaged will result in the analog value out. There's a few ways to manage these mics: Adafruit Industries https://learn.adafruit.com/adafruit-pdm-microphone-breakout Page 4 of 9

Your chip comes with a hardware peripheral and library that does all the data managing at high speed, collects samples, applies a filter and gives you an analog value (Ideal!) Your chip comes with a hardware peripheral that gives you values, then it is up to you to perform the decimation/filtering. (We have some example code for this on the ATSAMD21 chipset) Your chip does not come with a hardware peripheral but you're pretty clever and come up with a way to make it work (See this example for the ATtiny85) You generate the high speed clock, then add an analog filter on the data line, and read the analog value (A hack, but works!) Either way you decide to go, make sure you have a handle on what support you get with your platform, as these chips are a little tricky! Each order comes with one fully assembled and tested microphone, and a little header to solder on for breadboardcompatibility Adafruit Industries https://learn.adafruit.com/adafruit-pdm-microphone-breakout Page 5 of 9

Pinouts These mics are very simple! 3V - This is the power input pin, this powers the chip directly. Use a quiet power supply pin if available. (The chip supports 1.8-3.3V but we have not tested it at 1.8V) GND - Power and data ground reference SEL - Left/Right select. If this pin is high, the output is on the falling edge of CLK considered the 'Right' channel. If this pin is low, the output is on the rising edge, a.k.a 'Left' channel. CLK - PDM clock in, 1-3 MHz square wave required DAT - PDM data out. Adafruit Industries https://learn.adafruit.com/adafruit-pdm-microphone-breakout Page 6 of 9

Wiring & Test At this time we only have example code for the SAMD21 chipset using the I2S peripheral, you'll be limited to what pins you can use and the digital filtering must be done in software but it does work! We don't necessarily recommend this mic for SAMD21 - an analog microphone will work quite well with less hassle! The SAMD21 can be used with PDM but it's not ideal unless you're willing to put in the work to filter data and manage the peripheral - consider this code for test & experimentation! Available I2S Pins As we are using the I2S peripheral, not all pins can be used! For the Feather M0 / Metro M0 / Arduino Zero family, here's the available I2S pins: Available Clock Pins: PA10 a.k.a D1 or TX PB11 a.k.a SCK PA20 a.k.a. D6 Available Data Pins: PA07 a.k.a D9 PA08 a.k.a D4 PA19 a.k.a. D12 Install Library Download the latest version of the ZeroPDM library from github. Install as usual! Adafruit Industries https://learn.adafruit.com/adafruit-pdm-microphone-breakout Page 7 of 9

We have a two examples, one uses the DMA capability to grab data, which means we don't have to do as much work, but there's more setup involved and requires the ZeroDMA library. We recommend starting with the basic demo, which will echo audio data to A0 (the the analog output). Connect up headphones or an oscilloscope to A0 to hear/see the audio! Before uploading, be sure to change the instantiator to match your pinouts: // Create PDM receiver object, with Clock and Data pins used (not all pins available) Adafruit_ZeroPDM pdm = Adafruit_ZeroPDM(1, 4); // Metro M0 or Arduino zero //Adafruit_ZeroPDM pdm = Adafruit_ZeroPDM(34, 35); // CPlay express Adafruit Industries https://learn.adafruit.com/adafruit-pdm-microphone-breakout Page 8 of 9

Downloads Files MP34DT01-M datasheet Schematic & Fabrication Print Adafruit Industries Last Updated: 2018-01-10 10:25:52 PM UTC Page 9 of 9