
MAX98357A I²S Amplifier · Adafruit #3006
Adafruit; микросхема Analog Devices / Maxim · I2S 3W Class D Amplifier Breakout, mono MAX98357A, Product #3006
Преобразование цифрового PCM-потока I²S в звук на одном пассивном динамике.
Автор: SLDV LAB
Опубликовано · Обновлено
О МОДУЛЕ
Что делает I2S 3W Class D Amplifier Breakout, mono MAX98357A, Product #3006
Adafruit #3006 объединяет цифровой аудиоприёмник, ЦАП и моноусилитель класса D. На вход подают уже декодированные PCM-отсчёты в стандартном I²S; файл MP3 или поток Wi-Fi усилитель самостоятельно не декодирует. MAX98357A и MAX98357B отличаются форматом входа: пример относится именно к версии A, а не к left-justified B и не к стереоплате Dual MAX98357A.
Выход мостовой: динамик включён между двумя активными выходами. Это не обычная пара «сигнал и земля». Соединение любого вывода динамика с GND, общим минусом соседнего канала либо заземлённым щупом осциллографа способно повредить схему. Для измерения нужен подходящий дифференциальный метод. Нельзя подавать эти выходы на вход другого усилителя.
Заявленная мощность достигается при конкретном питании, нагрузке и заметных искажениях; она не равна чистой непрерывной мощности любого мини-динамика. Начинайте с небольшой цифровой амплитуды. Слабое питание проявляется треском и перезапуском контроллера. Для первого опыта выбрана нагрузка с запасом по мощности. Вариант #3006 до июня 2024 года и последующая сборка с установленным клеммником различаются механически; подписи и электрическую схему нужно сверить по своему экземпляру.
Фотография
Adafruit #3006 MAX98357A mono: раннее исполнение платы без установленного клеммника и штыревого разъёма. Вид со стороны компонентов.
Фото: lady ada / Adafruit, CC BY-SA 3.0. Источник: https://learn.adafruit.com/assets/32638 . Лицензия: https://creativecommons.org/licenses/by-sa/3.0/ . Изменения: исходный фон и видимый фон в двух монтажных отверстиях удалены ручной маской; плата пропорционально увеличена в 1,5 раза и размещена на предоставленном фоне SLDV LAB; JPEG-сжатие. Маркировка, реальные детали, ракурс и пропорции сохранены; генерация и дорисовка не применялись. Нативные RGB-пиксели сохранены. Исходник без ICC; при компоновке принят sRGB, профиль sRGB встроен в результат. Адаптация фотографии: CC BY-SA 3.0. Фон предоставлен пользователем.
Справочная распиновка
Adafruit #3006 MAX98357A mono: оригинальная справочная распиновка SLDV LAB, вид со стороны компонентов. Показано раннее исполнение без установленного клеммника; компоненты условно опущены. VIN отделён от логики I²S. Динамик подключается только между двумя BTL-выходами.
Оригинальная справочная схема SLDV LAB по открытым фактам: Adafruit #3006, https://www.adafruit.com/product/3006 ; описание mono pinouts, https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/pinouts ; EagleCAD mono board/schematic, https://github.com/adafruit/Adafruit-MAX98357-I2S-Amp-Breakout ; MAX98357A/MAX98357B, Maxim Rev. 7 (2/16), https://cdn-shop.adafruit.com/product-files/3006/MAX98357A-MAX98357B.pdf . Рисунок создан заново; графика производителя и фотография не воспроизводятся. Положение выводов сверено с .brd/.sch. Фон предоставлен пользователем.
Характеристики
- Выход
- Один мостовой BTL-канал
- Поддерживаемая частота I²S
- 8–96 кГц
- При 5 В, 4 Ом и THD 10%
- 3.2 Вт
- При 5 В, 8 Ом и THD 10%
- 1.8 Вт
- Требуется MCLK
- Нет
- Аппаратное усиление
- 3 / 6 / 9 / 12 / 15 дБ
- Питание модуля
- Adafruit #3006: VIN 2,7–5,5 В; входы I²S принимают логику 3,3 или 5 В. В примере VIN=5 В от отдельного источника, сигналы ESP32=3,3 В.
ПРАКТИКА
Подключение
| Контакт модуля | Контакт платы | Назначение |
|---|---|---|
| VIN | Отдельный стабилизированный источник 5 В | Не питать динамик от GPIO; источник с достаточным запасом тока. |
| GND | GND источника и ESP32-DevKitC WROOM-32 | Общая земля сигнала; силовые провода короткие. |
| BCLK | GPIO26 | I²S bit clock. |
| LRC | GPIO25 | I²S word select. |
| DIN | GPIO22 | Выход данных ESP32 → вход усилителя. |
| GAIN | VIN усилителя | 6 дБ; подключить при выключенном питании, не к GPIO. |
| SD / MODE | Не подключать | Штатный моно-микс (L+R)/2; GND выключает усилитель. Не путать с картой SD. |
| + / −, выход динамика | Один динамик 8 Ом, не менее 3 Вт | Оба провода только к выходам; ни один не к GND, наушникам или линейному входу. |
Подходит для ESP32. Выберите контакты по документации своей платы.
ВАШ ПРОЕКТ · ВАШ ДАТЧИК
Интегрируйте модуль с ChatGPT
Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.
Помоги подключить Adafruit #3006 MAX98357A mono. Сначала уточни точное исполнение компонента, модель контроллера, среду и версию ядра, питание и задачу. Не переноси распиновку и напряжения с похожих модулей. Подготовь согласованные подключение, зависимости, минимальный пример, обработку доступных ошибок и пошаговую проверку. Не называй пример испытанным на оборудовании, если нет протокола испытаний. Уточни номинал и мощность динамика. Не подключай BTL-выход к земле, линейному входу или общему проводу наушников. Раздели напряжение VIN и уровни I²S. Дай короткий тихий сигнал по явной команде, обработку ошибок I²S и безопасную проверку без нагрузки на GPIO. Не обещай 3 Вт чистого звука на любом питании.
Библиотеки
Установите библиотеку для своей среды и откройте пример из её документации.
Что именно прописать
- Плата и ядро
ESP32-DevKitC WROOM-32 / Arduino-ESP32 3.0.7Используется встроенная ESP_I2S; отдельный драйвер MAX98357A не нужен.
- I²S
I2S.setPins(26, 25, 22)BCLK, WS, DOUT ESP32; SD/MODE не подключён.
- Аудио
16000 Hz; 16-bit stereo; GAIN=VINЛевый и правый отсчёты одинаковы; сигнал 1 кГц около 3% цифровой амплитуды.
ESP32: короткий тихий тон по команде p
cpp#include <Arduino.h>
#include <ESP_I2S.h>
#include <math.h>
I2SClass I2S;
int16_t pcm[512];
uint32_t phase = 0;
bool playing = false;
unsigned long started = 0;
void setup() {
Serial.begin(115200);
I2S.setPins(26, 25, 22);
if (!I2S.begin(I2S_MODE_STD, 16000, I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO)) {
Serial.println("I2S init failed");
while (true) delay(1000);
}
Serial.println("Send p for a quiet 200 ms tone");
}
void loop() {
if (Serial.available() && Serial.read() == 'p') { started = millis(); playing = true; }
bool audible = playing && (millis() - started < 200UL);
if (!audible) playing = false;
for (size_t i = 0; i < 256; ++i) {
int16_t v = audible ? (int16_t)(1000.0 * sin(2.0 * PI * (phase % 16) / 16.0)) : 0;
pcm[2 * i] = v;
pcm[2 * i + 1] = v;
++phase;
}
if (I2S.write(reinterpret_cast<uint8_t *>(pcm), sizeof(pcm)) != sizeof(pcm)) {
Serial.printf("I2S write error: %d\n", I2S.lastError());
I2S.end();
while (true) delay(1000);
}
}
Полный скетч для ESP32-DevKitC с ESP32-WROOM-32, Arduino-ESP32 3.0.7. API сверены с исходниками; компиляция и проверка на оборудовании не выполнялись. Эти GPIO не являются универсальными для ESP32-C3/S3 и других плат. Периоды тишины тоже передаются как PCM-нули. Программная громкость не заменяет согласование мощности нагрузки.
Проекты с этим компонентом
Все проектыСвязанные проекты пока не опубликованы.


