Author Topic: PDM Microphones  (Read 1168 times)

0 Members and 1 Guest are viewing this topic.

Offline itdontgoTopic starter

  • Regular Contributor
  • *
  • Posts: 167
  • Country: gb
    • IoT Manufacturer
PDM Microphones
« on: June 23, 2017, 04:59:56 pm »
To quickly get some audio out of these microphones I used a PIC16 as follows:

PWM @2.67MHz to generate the clock
Timer1 increment on clock positive edge (so connecting T1CKI to the PWM output)
Timer1 Gate connected to the DATA pin on the mic.

My idea was to count the pulses with timer 1 when the data pin is high using the gate.  When data is low it won't count the pulses.  I then read and reset timer 1 giving me the number of pulses in the 125us 8kHz window I am looking for.

That all worked but the sensitivity of the mic is too low.  It works fine when it's right next to my mouth but produces no measurable change when a couple of foot away.  The mic is a 120dB AOP mic.  Not the most sensitive but I would expect to be able to get some background noise out of this mic.  Do you see any value in this method of decoding or will it always be insensitive?

Offline itdontgoTopic starter

  • Regular Contributor
  • *
  • Posts: 167
  • Country: gb
    • IoT Manufacturer
Re: PDM Microphones
« Reply #1 on: June 24, 2017, 02:46:45 pm »
Well I did some work and... Yeah it's OK for loud noises to do it that way but to get the full range needs a bit more signal processing.

Using the timer 1 with gate I managed to get basic 8-bit data and then used the recommended CIC filter which gave the results I was looking for.  It works nicely.


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf