MyTetra Share
Делитесь знаниями!
Руководство по модулю Adafruit VS1053 Codec (MP3/AAC/Ogg/MIDI/WAV)
Время создания: 03.07.2026 10:54
Автор: alensav
Текстовые метки: vs1053
Раздел: DESSY
Запись: alensav/MyTetra2/main/base/1783065264d1i3f6cbij/text.html на raw.githubusercontent.com

Ниже представлен подробный перевод руководства по модулю Adafruit VS1053 Codec. Для удобства чтения удалены повторяющиеся технические колонтитулы и номера страниц из исходного PDF-файла.



Руководство по модулю Adafruit VS1053 Codec (MP3/AAC/Ogg/MIDI/WAV)

Автор: Bill Earl

Оглавление

  1. Обзор
  2. Сборка
  3. Начало работы — Программное обеспечение VS1053
  4. Подключение простого аудиоплеера
  5. Аудио подключения
  6. MIDI подключения
  7. GPIO (Пины общего назначения)
  8. Ogg Рекордер
  9. Справочник по библиотеке
  10. Загрузки и ссылки



1. Обзор

Этот модуль — идеальный компаньон для DSP-кодека VLSI VS1053B. VS1053 может декодировать широкий спектр аудиоформатов, таких как MP3, AAC, Ogg Vorbis, WMA, MIDI, FLAC, WAV (PCM и ADPCM). Его также можно использовать для записи аудио как в PCM (WAV), так и в сжатом формате Ogg Vorbis. Вы можете выполнять различные манипуляции со звуком, например, цифровую регулировку басов, высоких частот и громкости. Также имеются 8 пинов GPIO, которые можно использовать для управления небольшими светодиодами или опроса кнопок.

Вся эта функциональность реализована через легковесный SPI-интерфейс, поэтому практически любой микроконтроллер может воспроизводить аудио с SD-карты. Также существует специальный MIDI-режим, в который можно загрузить чип: он будет считывать «классические» MIDI-данные (31250 бод) через UART-пин и работать как синтезатор/драм-машина (встроены десятки эффектов ударных и сэмплов).

Сам чип сложен в пайке и требует множества дополнительных компонентов, поэтому мы создали лучшую плату-адаптер (breakout), которая идеально подходит для Arduino и других микроконтроллеров, не обладающих вычислительной мощностью для декодирования MP3.

Модуль достаточно тонкий, чтобы поместиться на макетной плате, оставив один ряд отверстий для проводов. На плате установлены регуляторы на 3.3В и 1.8В с ферритовыми фильтрами и аналоговой фильтрацией для качественного звука. Есть порт для микрофона, к которому можно подключить линейный вход или микрофон для записи сжатого аудио. Все 8 пинов GPIO разведены и имеют встроенные подтягивающие резисторы 100 кОм к земле; просто подключите кнопку от пина GPIO к 3.3В для активного высокого уровня.

Для воспроизведения музыки с microSD-карты на модуле установлен слот. Поскольку многие наши клиенты используют 5-вольтовые микроконтроллеры (например, Arduino), все интерфейсные пины сделаны 5-вольтоустойчивыми с помощью преобразователей уровней, что позволяет питать чип и логiku как от 3В, так и от 5В.

  • Версии платы: Модули v1.0 поставлялись с двумя электролитическими конденсаторами по 100 мкФ для линейного выхода. В версии v2.0 эти конденсаторы интегрированы прямо на печатную плату.
  • В комплект входят штыревые разъемы (0.1") для пайки и бонусный стерео-разъем для наушников.



2. Сборка

Модуль поставляется с уже распаянными и протестированными SMD-компонентами. Для использования на макетной плате вам нужно установить штыревые разъемы.

  1. Подготовка разъемов: Отрежьте штыревые линейки по длине и вставьте их длинными ножками вниз в макетную плату.
  2. Установка платы: Поместите модуль поверх штырей.
  3. Пайка: Припаяйте каждый пин для обеспечения надежного электрического контакта.
  4. (Процесс сборки одинаков для версий v1 и v2).



3. Начало работы — Программное обеспечение

Для начала работы скачайте библиотеку Adafruit VS1053 Library.

Скопируйте папку из ZIP-архива в папку Libraries внутри вашей папки скетчей Arduino и переименуйте её в Adafruit_VS1053.



4. Подключение простого аудиоплеера

VS1053 можно настроить как простой аудиоплеер под управлением Arduino. Arduino считывает данные с SD-карты и воспроизводит их через кодек по интерфейсу SPI.

Подготовка макетной платы

Установите модуль на макетную плату так, чтобы с каждой стороны оставался один ряд свободных отверстий. Подключите разъем для наушников, а также питание и землю:

  • VCC -> 5V
  • GND -> GND

Подключение SPI и Reset

  • CLK -> Arduino #13 (Mega #52)
  • MISO -> Arduino #12 (Mega #50)
  • MOSI -> Arduino #11 (Mega #51)
  • CS -> Arduino #10
  • RST -> Arduino #9

Остальные цифровые сигналы

  • XDCS -> Arduino #8
  • SDCS -> Arduino #4
  • DREQ -> Arduino #3

Подключение разъема для наушников

  • Для версии v2 (с круглыми серебряными конденсаторами):
    • AGND -> Центральный 'земляной' пин
    • LOUT -> Левый пин
    • ROUT -> Правый пин
  • Для версии v1:
  • GBUF -> Центральный 'земляной' пин
  • LOUT -> Левый пин
  • ROUT -> Правый пин
  • (Примечание: Для v1 такое подключение подходит ТОЛЬКО для наушников, не для активных колонок! Для v2 можно подключать что угодно).

Загрузка MP3 файлов

Скопируйте 2 MP3 файла на microSD карту и назовите их track001.mp3 и track002.mp3. Установите карту в слот модуля. Используйте качественные карты памяти, дешевые безымянные карты могут не работать!

Скетч простого плеера

Подключите Arduino к компьютеру, вставьте наушники.

Перейдите в File -> Examples -> Adafruit_VS1053_Codec -> player_simple. Вы должны услышать MP3 файлы.

Также есть пример player_interrupts, который демонстрирует воспроизведение в фоновом режиме с использованием прерываний, позволяя выполнять другие задачи в скетче во время игры музыки.



5. Аудио подключения

И версии v1, и v2 могут напрямую управлять парой наушников. Просто подключите LOUT и ROUT к левому и правому пинам разъема, а центральный пин — к GBUF (или AGND для v2).

Обе версии могут напрямую управлять аудиоустройствами с дифференциальным входом (например, стереоусилителем Class D на 3.7 Вт). Подключите LOUT и ROUT к L+ и R+, а L- и R- к пинам AGND.

Важно для версии v1: Если вы подключаете v1 к активным колонкам или линейному входу компьютера/стереосистемы, ВЫ ДОЛЖНЫ ИСПОЛЬЗОВАТЬ КОНДЕНСАТОРЫ ИЗ КОМПЛЕКТА! Это полярные электролитические конденсаторы. Подключите положительные (длинные) ножки к пинам LOUT и ROUT, а отрицательные — к пинам L и R разъема/устройства. Центральный пин разъема подключается к AGND.

Для версии v2 эти конденсаторы уже встроены в плату, внешние не нужны.



6. MIDI подключения

С помощью нескольких перемычек плату можно загрузить в режим MIDI. Она будет считывать классические MIDI-данные (31250 бод) через UART и работать как синтезатор/драм-машина.

Настройка для MIDI

  • VCC -> 5V, GND -> GND
  • GPIO-0 -> GND
  • GPIO-1 -> 3.3V
  • Rx -> Arduino Digital #2
  • RST -> Arduino Digital #9
  • Разъем наушников подключается так же, как и в предыдущих примерах (AGND/GBUF, LOUT, ROUT).

Скетч

Загрузите пример: File -> Examples -> Adafruit_VS1053_Codec -> player_miditest. Вы должны услышать повторяющуюся серию восходящих тонов.



7. GPIO (Пины общего назначения)

У VS1053 есть 8 пинов GPIO, которые можно читать и записывать через библиотеку.

  1. Подключение: Используйте базовую схему подключения аудиоплеера.
  2. Светодиоды: Добавьте перемычку между шинами земли. Подключите светодиоды от пинов GPIO к земле. Длинная ножка (анод) — к GPIO, короткая (катод) — к земле.
    • Примечание: В примере скетча светодиоды горят очень короткое время, поэтому токоограничивающие резисторы можно не использовать. Для постоянного использования резисторы обязательны!
  3. Скетч: Загрузите player_gpiotest. Вы услышите звуковой сигнал, а затем последовательное мигание светодиодов. В Serial Monitor будут отображаться значения пинов.
  • ВНИМАНИЕ: Пины GPIO НЕ рассчитаны на 5В. Не подавайте на них напряжение выше 3.3В.



8. Ogg Рекордер

Скетч record_ogg превращает ваш модуль в записывающее устройство, которое в реальном времени создает файлы в формате OGG на SD-карте.

Подключение

  • Питание: VCC -> 5V, GND -> GND
  • SPI: SCLK -> #13, MOSI -> #11, MISO -> #12, CS -> #10
  • Управление: SDCS -> A0, XDCS -> #8, RST -> #9, DREQ -> A1
  • Кнопка Start/Stop (без фиксации): от Arduino #7 к GND
  • Электретный микрофон: Подключается согласно схеме из даташита (земля микрофона подключается к аналоговой земле AGND).
  • Примечание: Микрофоны очень чувствительны к шумам. Схема, собранная на макетной плате, скорее всего, будет звучать плохо. Для хорошего звука рекомендуется паять на качественной печатной плате.

Плагины (Plug-Ins)

Запись в OGG не поддерживается чипом "из коробки", а реализуется через плагин. Бинарный файл плагина загружается с SD-карты при старте.

  • Запись: Нажмите кнопку Start/Stop для начала, нажмите еще раз для остановки. Каждая запись сохраняется в отдельный .ogg файл.
  • Воспроизведение: Используйте любой OGG-плеер на компьютере или воспроизведите через VS1053 в режиме простого плеера.



9. Справочник по библиотеке

Класс Adafruit_VS1053_FilePlayer

Наследуется от Adafruit_VS1053 и предоставляет функции высокого уровня для воспроизведения файлов с SD-карты.

Основные методы:

  • Adafruit_VS1053_FilePlayer(...) - Конструкторы (для Software SPI и Hardware SPI).
  • boolean begin(void) - Инициализация и сброс чипа.
  • boolean useInterrupt(uint8_t type) - Выбор прерывания для фонового воспроизведения (TIMER0_INT или PIN_INT).
  • boolean startPlayingFile(char* trackname) - Начало воспроизведения файла в фоне (с прерываниями).
  • boolean playFullFile(char* trackname) - Воспроизведение файла до конца (блокирующая функция).
  • Переменные: currentTrack (текущий файл), playingMusic (флаг воспроизведения).

Класс Adafruit_VS1053

Базовый интерфейс для работы с чипом.

Основные методы:

  • begin(), reset(), softReset() - Инициализация и сбросы.
  • sciRead(), sciWrite() - Чтение/запись регистров чипа.
  • setVolume(uint8_t left, uint8_t right) - Установка громкости.
  • playData(), readyForData() - Работа с аудиоданными.
  • applyPatch(), loadPlugin() - Загрузка патчей и плагинов.
  • GPIO: GPIO_digitalWrite(), GPIO_digitalRead(), GPIO_pinMode().
  • Запись: prepareRecordOgg(), startRecordOgg(boolean mic), stopRecordOgg(), recordedWordsWaiting(), recordedReadWord().



10. Загрузки и ссылки

  • Библиотека: Adafruit VS1053 Library
  • Техническая информация:
    • Даташит на чип VS1053B
    • Документация по кодировщику/рекордеру Ogg Vorbis
    • Application Note по подключению аналоговых выходов
  • Габариты: 27.72 мм (1.09") x 58.08 мм (2.28")


Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования