Adafruit PDM MEMS Microphone Breakout
An exotic new microphone has arrived from Adafruit, 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 Adafruit thought they'd offer a breakout.
The first thing to note is that this sensor does not provide an 'analog' output like 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!
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:
- 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. (Adafruit have some example code for this on the ATSAMD21 chip)
- 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 the Adafruit 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!)
Whatever 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 breadboard-compatibility. Check out the full Adafruit guide for wiring details, schematics, example code, datasheet and more!