Микрофоны для микроконтроллера: аналоговые и цифровые MEMS, PDM и I²S
MEMS-микрофон бывает аналоговым, с выходом PDM или сразу с I²S, и от этого зависит, что стоит между ним и программой — усилитель с АЦП, дециматор или ничего. Разбираем по документам TDK InvenSense, как читать чувствительность в дБВ и дБFS, чем шум и перегрузка ограничивают динамический диапазон, как подключить I²S-микрофон ICS-43434 и пересчитать его отсчёты в децибелы звукового давления.
Обновлено Редакция GAW
Микрофон превращает звуковое давление в электрический сигнал. В устройствах на микроконтроллерах теперь почти всегда ставят MEMS-микрофоны: чувствительный элемент — по сути переменный конденсатор с выходным сопротивлением порядка гигаом, за ним в том же корпусе — предусилитель, который понижает сопротивление и формирует выход (InvenSense, Design Considerations). Выход бывает трёх видов: аналоговый — напряжение звука, PDM — однобитный поток высокой частоты, I²S — готовые цифровые отсчёты.
Коротко
- Чувствительность меряют синусом 1 кГц при 94 дБ SPL — это звуковое давление 1 Па.
- Аналоговые микрофоны указывают чувствительность в дБВ (относительно 1 В/Па, среднеквадратичное), цифровые — в дБFS (относительно полной шкалы, по пику).
- У цифрового микрофона чувствительность = 94 дБ − уровень перегрузки: ICS-43434 с перегрузкой 120 дБ SPL имеет −26 дБFS.
- ICS-43434: I²S, 24 бита, 1,65–3,63 В, 490 мкА при 23–51,6 кГц и 230 мкА при 6,25–18,75 кГц, SNR 65 дБА.
- На кадр I²S нужно 64 такта SCK: при 48 кГц SCK = 3,072 МГц.
- Уровень звука по отсчётам ICS-43434: дБ SPL = дБFS + 120.
Децибелы, чувствительность и шум
Звуковое давление выражают в децибелах относительно порога слышимости; опорный уровень для микрофонов — 94 дБ SPL, давление 1 Па. Входной уровень в дБ SPL всегда среднеквадратичный (Understanding Microphone Sensitivity). Пересчёт децибелов в разы удобно делать в калькуляторе децибел.
Аналоговый микрофон. Чувствительность — выходное напряжение при 1 Па, в логарифмической форме:
Например, у ADMP504 из примера InvenSense −38 дБВ — это 10−38/20 ≈ 12,6 мВ ср. кв. при 94 дБ SPL (наш расчёт). Усиление перед АЦП подбирают так, чтобы пиковый выход микрофона на максимальном уровне совпал с полной шкалой АЦП: в том же примере 0,25 В микрофона на АЦП с полной шкалой 1,0 В требуют усиления 4, то есть 12 дБ.
Цифровой микрофон. Чувствительность — уровень выхода в дБFS при 94 дБ SPL. Полную шкалу цифрового слова сопоставляют максимальному уровню, который микрофон пропускает, поэтому
где AOP (acoustic overload point) — уровень перегрузки. При AOP = 120 дБ SPL получается −26 дБFS; поднять чувствительность, не понизив перегрузку, нельзя. Цифровые уровни — пиковые: 0 дБFS — синус, пики которого касаются полной шкалы, а прямоугольник полной шкалы имеет среднеквадратичный уровень +3 дБFS (ICS-43434, Digital Microphone Sensitivity). −26 дБFS — это пики 0,05 от полной шкалы.
Расхождение в трактовке. White paper InvenSense 2013 года (Understanding Microphone Sensitivity) пишет, что синус 94 дБ SPL при чувствительности −26 дБFS даёт пик −26 дБFS и среднеквадратичный уровень −29 дБFS — там среднеквадратичное значение отнесено к полной шкале как к пиковой величине. Даташит ICS-43434 называет «−29 дБFS ср. кв.» распространённым заблуждением: если 0 дБFS — это синус полной шкалы, то и среднеквадратичный уровень синуса с пиками 0,05 FS равен −26 дБFS. Числа не противоречат друг другу, но опорные уровни разные; формулы ниже построены по определению даташита.
Шум и динамический диапазон. SNR — разница между 94 дБ SPL и собственным шумом микрофона; эквивалентный входной шум EIN = 94 дБ − SNR. У ICS-43434 SNR 65 дБА, EIN 29 дБА SPL, а динамический диапазон от шума до перегрузки — 120 − 29 = 91 дБ. SNR и AOP выражены в акустических единицах, поэтому по ним можно сравнивать аналоговые, PDM- и I²S-микрофоны между собой.
Аналоговые MEMS-микрофоны
Аналоговый микрофон проще всего по выводам (обычно три) и меньше по размеру, но требует аккуратной аналоговой части (Design Considerations):
- Выходное сопротивление — несколько сотен ом. Нагрузка с малым входным сопротивлением ослабляет сигнал: вход 2 кОм после выхода 200 Ом — почти на 10 %.
- Смещение по постоянному току. Выход сидит где-то между нулём и питанием, чтобы громкие пики не обрезались, поэтому микрофон подключают через разделительный конденсатор. Он с входным сопротивлением следующего каскада образует фильтр высоких частот: 1 мкФ и 10 кОм дают 16 Гц — ниже собственного спада типичного микрофона на 100 Гц.
- Усилитель. Сигнал в десятки милливольт усиливают до шкалы АЦП, например неинвертирующим каскадом на ОУ со смещением в середину питания.
Для микроконтроллера аналоговый путь означает ещё и АЦП с выборкой не меньше удвоенной верхней частоты звука и аналоговый фильтр перед ним — а линия от микрофона до АЦП ловит наводки от радиомодулей.
PDM и I²S: цифровые MEMS-микрофоны
Цифровой микрофон переносит АЦП внутрь корпуса, и по плате идёт уже цифровой сигнал. InvenSense выделяет главное достоинство: цифровые линии меньше страдают от радиопомех Wi-Fi, Bluetooth и сотовой связи, поэтому микрофон можно ставить далеко от процессора. На длинных линиях полезны последовательные согласующие резисторы 20–100 Ом.
| Аналоговый | PDM | I²S | |
|---|---|---|---|
| Выход | напряжение звука | однобитный поток, такт около 3 МГц | 24-битные отсчёты на частоте выборки |
| Что нужно в МК | АЦП, усилитель, фильтр | интерфейс PDM и децимационный фильтр | интерфейс I²S |
| Два микрофона на одной линии | нет | да, на разных фронтах такта | да, в левом и правом каналах |
| Сигналы | выход | такт и данные | такт бита, такт слова, данные |
PDM — самый распространённый цифровой интерфейс микрофонов: два микрофона делят одну линию такта и одну линию данных, каждый выдаёт бит на своём фронте, поэтому каналы синхронны. Но однобитный поток нужно отфильтровать и проредить до частоты звука, и это работа процессора или кодека. I²S-микрофон содержит ту же цифровую часть, что и PDM, плюс децимационный фильтр и последовательный порт, и подключается к интерфейсу I²S микроконтроллера напрямую.
I²S-микрофон ICS-43434
ICS-43434 — микрофон TDK InvenSense с нижним звуковым портом в корпусе 3,50 × 2,65 × 0,98 мм. Режим он выбирает сам по частоте такта слова (WS), то есть по частоте выборки:
| Параметр по даташиту DS-000069 | Высокая производительность | Малое потребление |
|---|---|---|
| Частота выборки fS | 23–51,6 кГц | 6,25–18,75 кГц |
| Ток при 1,8 В | 490 мкА, до 550 мкА | 230 мкА, до 300 мкА |
| Чувствительность | −26 дБFS ± 1 дБ | −26 дБFS ± 1 дБ |
| SNR, EIN | 65 дБА, 29 дБА SPL | 64 дБА, 30 дБА SPL |
| Перегрузка (10 % THD) | 120 дБ SPL | 120 дБ SPL |
| Нелинейные искажения при 105 дБ SPL | 0,2 %, до 1 % | 0,2 %, до 1 % |
Общие параметры: питание 1,65–3,63 В, ниже fS = 3,125 кГц — сон с током 12 мкА, частотная характеристика 60 Гц – 20 кГц, встроенный фильтр высоких частот на 24 Гц убирает постоянную составляющую. Полоса децимационного фильтра — 0,417 · fS (20 кГц при 48 кГц) с неравномерностью ±0,3 дБ, групповая задержка — 2/fS. Допуск чувствительности ±1 дБ позволяет собирать решётки из нескольких микрофонов без калибровки каждого.
Выводы: 1 — WS, 2 — LR, 3 — GND, 4 — SCK, 5 — VDD, 6 — SD.
- LR выбирает канал: низкий уровень — левый (данные после спада WS), высокий — правый (после фронта WS). Для стерео два микрофона ставят на одну линию SD, у одного LR на общий провод, у другого — на питание. Оба делают выборку одновременно, в начале кадра по спаду WS.
- SD в промежутках между своими словами переходит в Z-состояние, и линию разряжает резистор 100 кОм на общий провод; если нужно быстрее — 10 кОм. Выход рассчитан на нагрузку до 85 пФ, вход каждого отключённого микрофона на линии добавляет около 6 пФ.
- WS внутри подтянут к общему проводу резистором 100 кОм: если держать WS в единице в режиме ожидания, через него течёт VDD/100 кОм.
- Питание развязывают керамическим конденсатором 0,1 мкФ X7R у самых выводов VDD и GND, дорожки — короткие, на одном слое, без переходных отверстий.
Кадр. Формат — стандартный I²S: 24 бита в дополнительном коде, старшим битом вперёд, старший бит задержан на один такт SCK от начала полукадра. На кадр (левый плюс правый канал) нужно ровно 64 такта SCK:
Период SCK по даташиту — от 303 до 2500 нс, то есть 0,4–3,3 МГц: при 64 тактах на кадр это и даёт частоты выборки до 51,6 кГц. В интерфейсе I²S микроконтроллера ставят 32-битный слот на канал и забирают из него старшие 24 бита.
Запуск, сон и ожидание. Ниже 3,125 кГц микрофон засыпает за 1 мс и переводит SD в Z-состояние. Проснувшись, он начинает выдавать данные через 32 768 тактов SCK — 10,7 мс при 3,072 МГц, а на уровень в пределах 1 дБ от установившегося выходит не дольше чем за 20 мс. Если частота SCK падает ниже примерно 200 кГц, микрофон уходит в режим ожидания; TDK советует для этого остановить SCK и WS и притянуть их к нулю. Подавать такты на обесточенный микрофон нельзя: постоянно открытые защитные диоды снижают его надёжность.
Уровень звука по отсчётам
Для ICS-43434 из чувствительности −26 дБFS при 94 дБ SPL следует простой пересчёт (наш вывод из определения чувствительности):
где Uср.кв — среднеквадратичное значение 24-битных отсчётов за окно. Множитель √2 нужен потому, что 0 дБFS — синус с амплитудой полной шкалы, у которого среднеквадратичное значение в √2 раз меньше амплитуды. Пример: среднеквадратичное значение 297 000 даёт √2 · 297 000 / 8 388 608 ≈ 0,050 → −26 дБFS → 94 дБ SPL.
// Sound level from ICS-43434 samples (24-bit two's complement in the top bits of a 32-bit slot)
#include <math.h>
float ics43434_db_spl(const int32_t *slot, int n) {
double sum = 0.0;
for (int i = 0; i < n; i++) {
int32_t s = slot[i] >> 8; // keep the 24 data bits, arithmetic shift
sum += (double)s * (double)s;
}
double rms = sqrt(sum / n);
if (rms < 1.0) rms = 1.0; // avoid log of zero
double dbfs = 20.0 * log10(sqrt(2.0) * rms / 8388608.0); // 0 dBFS = full-scale sine
return (float)(dbfs + 120.0); // -26 dBFS at 94 dB SPL
}
Это невзвешенный уровень в полосе микрофона. Шумомер показывает уровень с частотной коррекцией (обычно A) и с нормированным временем усреднения, а погрешность чувствительности ±1 дБ и неравномерность характеристики остаются — для измерений прибор калибруют по эталонному источнику звука.
Монтаж MEMS-микрофона с нижним портом
- Отверстие в плате под звуковым портом делают больше самого порта, не меньше 0,5 мм в диаметре, и не наносят на него паяльную пасту.
- Пайка — оплавлением, не превышая профиль из даташита (пик 260 °C для бессвинцового припоя).
- Отмывка. Вода не должна попадать в порт; продувка и ультразвуковая отмывка запрещены. Нельзя продувать порт и откачивать из него воздух, в том числе вакуумным пинцетом снизу корпуса.
- Толщина и тип платы на работу не влияют; гибкую плату с микрофоном можно приклеить прямо к корпусу прибора — это хорошо уплотняет звуковой канал.
Типичные ошибки
- Неверный формат кадра. Интерфейс настроен на 16-битные слоты или формат с выравниванием влево — данные сдвинуты на бит или обрезаны. ICS-43434 нужен стандартный I²S и 64 такта на кадр.
- Читают не тот канал. LR на общем проводе — данные в левом канале; в правом микрофон линию не ведёт, и программа получает нули от подтяжки SD.
- Нет резистора на SD. Между словами микрофон отпускает линию, и без подтяжки 100 кОм на общий провод, которую требует TDK, её уровень ничем не задан.
- Частота выборки ниже 3,125 кГц. Микрофон спит и данных не выдаёт; самая низкая рабочая частота — 6,25 кГц, режим малого потребления.
- Забыт множитель √2. Если среднеквадратичное значение отсчётов делить на полную шкалу без умножения на √2, уровень в дБFS и дБ SPL выходит на 3 дБ ниже: опорный 0 дБFS по даташиту — синус с амплитудой полной шкалы, а не постоянный сигнал.
- Аналоговый микрофон напрямую на АЦП. Без усиления сигнал в десятки милливольт занимает несколько младших разрядов, а без разделительного конденсатора постоянное смещение съедает шкалу.
Другие датчики — в разделе «Датчики», о шине — в статье «I²S», о децибелах — в статье «Децибел».
Частые вопросы
Чем I²S-микрофон отличается от PDM-микрофона?
PDM-микрофон выдаёт однобитный поток с частотой около 3 МГц, и децимационный фильтр, превращающий его в отсчёты звука, должен работать в микроконтроллере или кодеке. I²S-микрофон, например ICS-43434, делает децимацию сам и выдаёт готовые 24-битные отсчёты на частоте выборки. Оба позволяют посадить два микрофона на одну линию данных: PDM — на разные фронты такта, I²S — в левый и правый каналы.
Как перевести отсчёты ICS-43434 в децибелы звукового давления?
У ICS-43434 синус 94 дБ SPL даёт пики −26 дБFS, то есть уровень в дБ SPL равен уровню в дБFS плюс 120. Уровень в дБFS для синуса — 20 · lg(A/FS), где A — амплитуда, FS — полная шкала 2²³. Если считать по среднеквадратичному значению отсчётов, его сначала умножают на √2, потому что 0 дБFS — это синус с амплитудой FS. Для точных измерений нужны ещё частотная коррекция (например, A) и калибровка по эталонному источнику.
Что значит чувствительность −26 дБFS?
Что синус 1 кГц с уровнем 94 дБ SPL (давление 1 Па) даёт на выходе сигнал, пики которого на 26 дБ ниже полной шкалы цифрового слова, то есть 0,05 от неё. Для цифрового микрофона чувствительность жёстко связана с перегрузкой: −26 дБFS = 94 дБ − 120 дБ, где 120 дБ SPL — уровень, при котором выход достигает полной шкалы.
Почему I²S-микрофон молчит или выдаёт нули?
Частые причины: неверный формат кадра (ICS-43434 нужно 64 такта SCK на кадр и стандартный I²S с задержкой старшего бита на один такт), микрофон в другом канале, чем читает программа (вывод LR), частота выборки ниже 3,125 кГц — микрофон уходит в сон, нет подтяжки SD к общему проводу, а также первые 32 768 тактов после включения — около 10,7 мс при 3,072 МГц, когда данных ещё нет.
Источники
- TDK InvenSense. ICS-43434 Multi-Mode Microphone with I2S Digital Output: Datasheet (DS-000069, Revision 1.2, 08/29/2016) — General Description — MEMS-элемент, АЦП, фильтры, 24-битный I²S, нижний звуковой порт, режимы высокой производительности, малого потребления и сна, AOP 120 дБ SPL, допуск чувствительности ±1 дБ, 3,50 × 2,65 × 0,98 мм; Features — −26 дБFS ± 1 дБ, SNR 65/64 дБА, ток 490/230 мкА, частота выборки 23–51,6 и 6,25–18,75 кГц, 60 Гц – 20 кГц; табл. 1 — 1,65–3,63 В, сон 12 мкА; табл. 2 — EIN 29 дБА SPL, динамический диапазон 91 дБ, THD 0,2 % при 105 дБ SPL; табл. 4 — групповая задержка 2/fS, неравномерность ±0,3 дБ, подавление 58 дБ; табл. 5 — пробуждение 20 мс, SCK 303–2500 нс, нагрузка SD до 85 пФ; табл. 6 — 160 дБ SPL, удар 10 000 g; табл. 8 — выводы 1 WS (внутренняя подтяжка 100 кОм к GND), 2 LR, 3 GND, 4 SCK, 5 VDD с 0,1 мкФ, 6 SD (100 кОм на GND); Theory of Operation — запуск меньше 20 мс, ожидание при SCK ниже ~200 кГц, не подавать такты без питания, синхронизация по спаду WS, I²S 24 бита, дополнительный код, 64 такта SCK на кадр, левый канал после спада WS, правый после фронта, SD в Z-состоянии; Digital Microphone Sensitivity — 0 дБFS — синус, пики которого касаются полной шкалы, прямоугольник полной шкалы — 3 дБFS, 94 дБ SPL дают пики 0,05 полной шкалы; фильтр высоких частот 24 Гц, полоса 0,417 · fS; Sleep Mode — ниже 3,125 кГц, выход через 32 768 тактов SCK (10,7 мс при 3,072 МГц); Power Supply Decoupling — 0,1 мкФ X7R у выводов; PCB — отверстие в плате больше порта, не меньше 0,5 мм, без пасты; Handling — не продувать порт, не мыть порт, без ультразвука
- InvenSense. Lewis J. Understanding Microphone Sensitivity (WP, Revision 1.0, 12/18/2013) — чувствительность измеряют синусом 1 кГц при 94 дБ SPL (1 Па); у аналоговых — дБВ относительно 1 В/Па; пример ADMP504: максимальный выход 0,25 В на АЦП с полной шкалой 1,0 В — усиление 4 (12 дБ), −38 дБВ и SNR 65 дБ; у цифровых — дБFS, чувствительность = 94 дБ − максимальный уровень, 120 дБ SPL → −26 дБFS; входной уровень всегда среднеквадратичный, выход цифрового — пиковый, для синуса среднеквадратичный на 3 дБ ниже
- InvenSense. Lewis J. Analog and Digital MEMS Microphone Design Considerations (WP, Revision 1.0, 12/31/2013) — MEMS-элемент — переменный конденсатор с выходным сопротивлением порядка гигаом и предусилитель; аналоговый выход, PDM и I²S, рис. 1–3; выходное сопротивление аналогового — несколько сотен ом, вход 2 кОм после 200 Ом ослабляет почти на 10 %; выход смещён по постоянному току, нужен разделительный конденсатор: 1 мкФ и 10 кОм дают 16 Гц при собственном спаде микрофона на 100 Гц; цифровые микрофоны устойчивее к радиопомехам; согласующие резисторы 20–100 Ом на длинных линиях; PDM — общий такт около 3 МГц и общая линия данных для двух микрофонов на разных фронтах; I²S — децимация внутри микрофона, два микрофона на одной линии данных, такт слова и такт бита
Нашли ошибку?
Смотрите также
- ДатчикиТок, температура, газы, вес, движение, ИК и звук: подключение к МК, расчёт и калибровка
- I²S (шина цифрового звука)Трёхпроводная шина для передачи звука: такт, выбор канала, данные
- PDM-микрофонЦифровой MEMS-микрофон с 1-битным выходом: такт, выбор канала, децимация
- ДецибелдБ, дБм, дБВ: отношения и уровни сигнала
- Калькулятор децибелдБм ↔ мВт ↔ В, дБВ, дБмкВ, дБ ↔ разы
- SNR — отношение сигнал/шумОтношение сигнала к шуму без гармоник; для идеального АЦП 6,02N + 1,76 дБ
- Динамический диапазонОтношение наибольшего допустимого сигнала к наименьшему различимому, обычно в дБ
- Дополнительный кодTwo's complement: запись отрицательных целых
- Как подключить I²S-микрофон к ESP32?SCK, WS, SD на GPIO, LR на землю, STD Philips 32 бита моно, отсчёт = слово >> 8