circuitpython/atmel-samd/common-hal
Dan Halbert 43650b6896 Fix PDMIn MEMS microphone support (#479)
Changes:

    * New faster filter loop, by @ladyada. New filter coefficients as well.
    * Turn on microphone clock when PDMIn object is created, and run it all the time, so the user code doesn't have to wait for microphone startup, which can be 10ms or even 100ms.
    * Wait for microphone startup when PDMIn is first created, based on new optional parameter microphone_startup in seconds (takes a float).
    * record() returns number of samples actually recorded, so you can see if it's not keeping up.
    * Fix buffer overflow errors when buffer size was not a multiple of 16 or something like that.
    * Tweak a few peripheral settings.
    * Minimum sampling frequency is now 16kHZ or so, because 8kHz runs microphone at only 0.5MHz, which is too slow for many mics.

Note: I tried 128x oversampling instead of 64x, but the code cannot keep up at 24kHz or above sampling. 128x would reduce the high-frequency noise by 6db.
2017-12-13 10:12:49 -08:00
..
analogio Reinit ADC completely on each call to AnalogIn.value. 2017-10-15 16:59:23 -07:00
audiobusio Fix PDMIn MEMS microphone support (#479) 2017-12-13 10:12:49 -08:00
audioio Do not allow a *io object to be used after deinit(). 2017-10-03 12:07:17 -07:00
board Modernize module and class static dicts; update freetouch 2017-08-27 15:02:50 -04:00
busio add SPI.write_readinto() - bidirectional SPI 2017-12-05 11:17:16 -08:00
digitalio Introduce reset mechanics to microcontroller. 2017-12-05 14:50:58 -08:00
microcontroller Introduce reset mechanics to microcontroller. 2017-12-05 14:50:58 -08:00
neopixel_write Split up nativeio. 2017-04-10 13:32:19 -07:00
nvm Add microcontroller.cpu.temperature, for use as a simple sensor on minimal boards. (#211) 2017-08-31 13:48:30 -04:00
os Introduce a random module that is a subset of CPython's random. It 2017-06-27 17:37:24 -07:00
pulseio Do not allow a *io object to be used after deinit(). 2017-10-03 12:07:17 -07:00
storage Modernize module and class static dicts; update freetouch 2017-08-27 15:02:50 -04:00
time This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
touchio Do not allow a *io object to be used after deinit(). 2017-10-03 12:07:17 -07:00
usb_hid Modernize module and class static dicts; update freetouch 2017-08-27 15:02:50 -04:00