В этой статье представлен высококачественный цифровой аудиоусилитель, разработанный для платы Raspberry Pi Zero.
Модуль будет полезен при создании мультимедийных приложений, таких как сетевые проигрыватели, интернет-радиоприемники. Благодаря использованию понижающего преобразователя для конечного приложения требуется только один источник питания.
Несмотря на небольшой размер, плата объединяет два канала усилителя мощностью 2×10 Вт на 8 Ом и блок питания 12 В постоянного тока. Кроме того, в него входит импульсный стабилизатор на 5 В мощностью 2 А, что позволяет питать Raspberry Pi. В результате для всего требуется только одно напряжение в диапазоне 9…14 В, что облегчает использование усилителя, в том числе с аккумулятором.
В основе модуля лежит микросхема SSM3582, внутреннее устройство которой показано на рисунке ниже:
SSM3582 включает в себя два мостовых силовых каскада и стереопреобразователь ЦАП, работающий с шиной I2S или TDM. Конфигурация и мониторинг состояния системы происходит через шину I2C, что облегчает удаленное управление работой усилителя в сетевых приложениях.
Устройство и работа
Принципиальная схема модуля представлена на следующем рисунке:
Выходной звуковой сигнал I2S (BCLK, LRCK, SDO) с разъема GPIO Raspberry Pi через согласующие резисторы R1…R3 поступает на схему U1. Там он преобразуется через встроенный ЦАП в управляющий сигнал для двухканального мостового усилителя мощности, работающего в классе D. Настраиваются все параметры цифрового интерфейса I2S — регулировка уровня, усиление звукового тракта, настройки лимитера через интерфейс I2C.
В качестве базового адреса на шине I2C заданы выводы ADR1, ADR0, в системе это 0x10. Для целей диагностики в SSM3582 встроен датчик температуры, монитор напряжения питания и сигнализация аварийных состояний, благодаря которым мы получаем основную информацию о состоянии системы.
В случае работы от батареи монитор напряжения может использоваться для ограничения выходной мощности в зависимости от состояния батареи, что защищает громкоговорители от перегрузок усилителя мощности и обеспечивает минимально возможный уровень искажения сигнала.
SSM3582 дополняется только выходными фильтрами EMI, FB1…FB4, C12…C15, которых достаточно, когда длина акустических кабелей не превышает нескольких сантиметров. Усиленный сигнал выводится на разъемы OUTL, OUTR. Конденсаторы С5…С8 являются поляризационными элементами выходных силовых транзисторов, остальные конденсаторы развязывают питание.
Микросхема U1 имеет встроенный стабилизатор, обеспечивающий питанием все функциональные блоки системы. Работает усилитель от напряжения 9…14 В через разъем PWR, переход TVS1 защищает U1 и U2 от воздействия бросков напряжения в линии питания. Диод LD1 сигнализирует о включении.
Понижающий преобразователь на ADP2302-5.0 типа U2 обеспечивает питание 5В для компьютера Raspberry Pi. Нагрузочная способность преобразователя составляет около 2 А, чего достаточно для большинства применений. Если мы хотим повысить КПД примерно до 3 А, мы можем заменить U2 на ADP2303-5.0 без каких-либо системных изменений, одновременно увеличив емкости C18, C19 до 33 мкФ.
Установка и ввод в эксплуатацию
Аудиомодуль смонтирован на небольшой двусторонней печатной плате, которая механически совместима с RPi Zero, но ничто не мешает использовать его и с другими компьютерами. Способ сборки классический и не требует описания. Усилитель может работать и с нагрузкой 4 Ом, но к микросхеме U1 следует присоединить небольшой радиатор, обеспечивающий достаточную эффективность и сечения кабелей питания.
Правильно собранная система не требует запуска, конечно необходима настройка системы Linux и самой системы SSM3582. Raspbian — лучший выбор, так как он имеет встроенную поддержку программного обеспечения (совместим с Hifi-Berry dac). На всякий случай в начале следует обновить систему, введя команду:
sudo rpi-update sync sudo reboot
Затем в файле /boot/config.txt удалите строку:
dtparam=audio=on
и добавьте строки:
dtparam=i2 c_arm=on
dtparam=i2 s=on
dtoverlay=hifiberry-dac
Активация поддержки шины I2C, I2S и ЦАП. После перезагрузки системы проверяем поддержку ЦАП командой:
aplay -l
**** List of PLAYBsudo aplayACK Hardware Devices **** card 0: sndrpihifiberry [snd_ rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102 a-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0
Затем командой:
i2 cdetect -y 1
проверяем наличие микросхемы SSM3582 на шине I2C — она должна быть видна по адресу 0x10. Для того, чтобы быстро проверить работу усилителя, создан простой скрипт (SSM3582.sh), настраивающий регистры схемы, содержание которого приведено в листинге 1:
После запуска схемы она будет настроена на воспроизведение звук в формате I2S стерео 44,1 кГц. Командой aplay или другого плеера можно проверить работу усилителя. Громкость управляется регистрами 0x07 и 0x08. Значение 0x00 соответствует максимальной громкости, 0xFF — минимальной:
- i2cset -y 1 0x10 0x07 0xFF (мин.)
- i2cset -y 1 0x10 0x08 0xFF (мин.)
- i2cset -y 1 0x10 0x07 0x00 (макс.)
- i2cset -y 1 0x10 0x08 0x00 (макс.)
Коэффициент усиления усилителя мощности можно изменить командой:
- i2cset -y 1 0x10 0x05 0x88 (+ 13 дБ)
- i2cset -y 1 0x10 0x05 0x89 (+ 16 дБ)
- i2cset -y 1 0x10 0x05 0x8A (+ 19 дБ)
- i2cset -y 1 0x10 0x05 0x8B (+ 21 дБ)
Полный список регистров SSM3582 находится в архиве в конце статьи. Для одновременного воспроизведения и изменения параметров, если мы тестируем усилитель в консоли, стоит запустить команду aplay в фоновом режиме, например
aplay _file.wav &
тогда можно будет изменить конфигурацию SSM3582 командами:
i2cget/i2 cset
во время воспроизведения, что значительно упрощает проверку настроек макета.
Скачать файлы проекта (133,9 KiB, скачано: 159)