Обзор MP3 модуля DFPlayer Mini (DFR0299)
Введение
DFPlayer Mini - это компактный модуль аудио-плеера, который позволяет воспроизводить звуковые файлы в формате MP3, WMA и WAV. Он широко используется в различных проектах, где необходимо воспроизводить звуковые эффекты, музыку, записи голоса и т.д. DFPlayer Mini легко интегрируется в различные электронные устройства и системы, такие как Arduino, Raspberry Pi и другие микроконтроллеры. Он имеет небольшой размер, низкое потребление энергии и простой интерфейс управления, что делает его идеальным выбором для различных проектов DIY и встраиваемых систем. В этом обзоре мы рассмотрим основные характеристики DFPlayer Mini и способы его использования в различных проектах.
Технические характеристики
- Напряжение питания: от 3,2 до 5 В
- Поддерживаемые форматы аудиофайлов: MP3, WMA и WAV
- Максимальная емкость карты памяти: 32 ГБ (Micro SD/TF)
- Максимальное количество папок: до 100
- Количество треков в папке: до 100
- Выходная мощность: 3 Вт (при 4 Ом нагрузке)
- Разрядность ЦАП: 24 бита
- Сигнал-шум: до 85 дБ
- Частотный диапазон: 20 Гц - 20 кГц
- Количество уровней громкости:30
- Режимов эквалайзера: 6 (Normal/Pop/Rock/Jazz/Classic/Base)
- Интерфейс управления: Serial Mode, AD Key Mode, I/O Mode
- Размер модуля: 24 мм х 18 мм
В качестве усилителя мощности аудиосигнала в модуле используется популярная микросхема 8002D, которая имеет выходную мощность до 3 Вт на нагрузку 4 Ом при напряжении питания 5 В. Она обеспечивает высокое качество звука и имеет низкий уровень искажений.
В качестве ЦАП используется микросхема MH2024K-24SS. Она обладает высоким разрешением 24 бит, что обеспечивает высокую точность и качество воспроизведения аудио. Микросхема использует дельта-сигма модуляцию для преобразования цифровых сигналов в аналоговый формат. MH2024K-24SS также имеет встроенные фильтры, что помогает устранить нежелательные артефакты и шумы в аналоговом сигнале, а также обеспечивает защиту от перегрузок и других электрических помех.
Внешний вид и расположение выводов
Вид спереди
Вид сзади
Пин | Описание | Примечание |
---|---|---|
VCC | Входное питания | DC3.2~5.0В; DC4.2В |
RX | UART вход | RX вход |
TX | UART выход | TX выход |
DAC_R | Аудио выход правый | Выход правый на внешний усилитель или наушники |
DAC_L | Аудио выход левый | Выход левый на внешний усилитель или наушники |
SPK2 | Динамик - | Минусовой выход усилителя 3Вт |
GND | Земля | Земля |
SPK1 | Динамик + | Плюсовой выход усилителя 3Вт |
IO1 | Триггер 1 | Короткое нажатие — проиграть предыдущий трек (длинное нажатие — уменьшение громкости) |
GND | Земля | Земля |
IO2 | Триггер 2 | Короткое нажатие — проиграть следующий трек (длинное нажатие — увеличение громкости) |
ADKEY1 | Порт кнопок 1 | Интерфейс управления 10 кнопками |
ADKEY2 | Порт кнопок 2 | Интерфейс управления дополнительными 10 кнопками |
USB+ | USB+ | USB DATA+ для подключения к пк по USB интерфейсу |
USB- | USB- | USB DATA - для подключения к пк по USB интерфейсу |
BUSY | Статус | Low — включено, High — выключено |
Файловая система
Файлы и папки на sd карте для управления по UART должны хранится в определенном формате. Имя файла трека обязательно должно начинаться 4-х цифр. Например: 0001.mp3 или 0010track.mp3. Имена папок состоят из 2 цифр. 00 - 99. В общем виде структура файлов на sd карте должна иметь следующий вид: \0001.mp3. или \02\0001.mp3.
Для остальных режимов управления к именам файлов и папок строгих требований нет.
Интерфейсы управления
Плата поддерживает 3 режима управления: через интерфейс UART(Serial Mode), управление кнопками (AD Key Mode), упрощенный режим(I/O Mode).
Serial Mode
Служит для управления модулем с помощью внешнего микроконтроллера через UART интерфейс. В целом протокол управления очень похож на тот что используется в модуле DY-SV17f. Ознакомиться с ним можно здесь.
Управление осуществляется с помощью отправки через серийный порт микроконтроллера последовательности команд. Настройки порта должны быть следующие: Скорость 9600 бод, Data bits :1 Checkout :none Flow Control :none
Формат команды следующий: $S VER Len CMD Feedback para1 para2 checksum $O
Описание значений параметров в таблице ниже:
Параметр | Значение | Комментарий |
---|---|---|
$S | Стартовый бит 0x7E | Каждая последовательность бит начинается с этого бита 0x7E |
VER | Версия | Информация о версии. Практически всегда равна FF |
Len | Количество байт в команде | Контрольная сумма не учитывается |
CMD | Команда | Код команды управления |
Feedback | Обратная связь | Ожидать ответ на команду? 01 - да, 00-нет |
para1 | Параметр 1 | старший байт данных |
para2 | Параметр 2 | младший байт данных |
checksum | Контрольная сумма | Сумма бит в запросе. Не входят начальный и конечный бит |
$O | Конечный бит 0xEF | Признак завершения последовательности бит. Завершение команды 0xEF |
Управляющие команды в таблице ниже:
Команда | Описание функции | Параметры (16 бит) |
---|---|---|
0x01 | Следующий трек | |
0x02 | Предыдущий трек | |
0x03 | Номер трека | 0-2999 |
0x04 | Увеличить громкость | |
0x05 | Уменьшить громкость | |
0x06 | Указать громкость | 0-30 |
0x07 | Пресет эквалайзера(0,1,2,3,4,5) | Normal/Pop/Rock/Jazz/Classic/Base |
0x08 | Режим воспроизведения | Повтор/Повтор папки/Повтор трека/Случайный выбор |
0x09 | Выбор источника воспроизведения | U/TF/AUX/SLEEP/FLASH |
0x0A | Перейти в спящий режим. Низкое потребление энергии | |
0x0B | Рабочий режим | |
0x0C | Сброс модуля | |
0x0D | Воспроизведение | |
0x0E | Пауза | |
0x0F | Указать папку для воспроизведения | 1~10(папки создаются пользователем) |
0x10 | Настройка регулировки громкости | (DH=1 простая регулировка громкости, DL: усиление 0~31) |
0x11 | Включить повтор трека | 1 - включить, 0-выключить |
Команды запросов:
Команды | Описание функции | Параметры (16 бит) |
---|---|---|
0x3C | STAY | |
0x3D | STAY | |
0x3E | STAY | |
0x3F | Отправить параметры инициализации | 0x0F(каждый бит обозначает одно устройство из 4 младших битов) |
0x40 | Возвращает ошибку, требует повторной передачи | |
0x41 | Повторить | |
0x42 | Запросить текущий статус | |
0x43 | Запросить установленную громкость | |
0x44 | Запросить установленную настройку Эквалайзера | |
0x45 | Запросить установленный режим воспроизведения | |
0x46 | Запросить номер версии прошивки | |
0x47 | Запросить количество файлов на SD карте | |
0x48 | Запросить количество файлов на U-disk | |
0x49 | Запросить количество файлов во флеш памяти | |
0x4A | Продолжить | |
0x4B | Запрос текущего трека на sd карте | |
0x4C | Запрос текущего трека на U-disk | |
0x4D | Запрос текущего трека во флеш памяти |
Например, нам необходимо выбрать первый файл для воспроизведения. Для этого необходимо направить модулю через последовательный интерфейс следующий набор байтов:
7E FF 06 03 00 00 01 FE EE EF
7E - стартовый байт
FF - версия
06 - количество передаваемых байт данных
03 - команда выбора номера трека
00 - ответ от модуля получать не нужно
00 - старший байт номера трека. Здесь 0 так как номер для указания 1 трека достаточно 1 байта
01 - младший байт номер трека. Для первого трека равен 1
FE - старший байт контрольной суммы
EE - младший байт контрольной суммы
EF - Конец команды
В данном примере для передачи номера трека использовался только один параметр - младший байт. Если номер трека больше 255, то для передачи его номера в команде нужно уже 2 байта данных. Например для выбора трека 1000.mp3 необходимо перевести 1000 в шестнадцатеричный формат. Получится число 0x03E8. Соответственно старший байт будет равен 03, а младший E8.
Отдельно стоит упомянуть параметр Len. Его значение вычислить тоже довольно просто. В данном примере он вычисляется так 1 байт на команду + 1 байт на флаг ответа + 2 байта на номер трека + 2 байта на контрольную сумму. Итого получаем 6 байт передаваемых данных.
Контрольная сумма - эта сумма всех байт между начальным и конечными байтами команды умноженная на -1. Также делится на старший и младший байт. То есть (FF+06+03+00+00+01) *-1=112*-1=FEEE. Старший байт FE, младший байт EE.
Данный формат передачи в целом очень прост, но не очень понятен для визуального восприятия. Для более простого управления по UART существует специальная библиотека DFRobotDFPlayerMini.
AD Key Mode
Используя всего два входа ADKEY1 и ADKEY2 мы можем подключить 20 кнопок, которые позволят воспроизводить произвольно 14 файлов и управлять громкостью.
Кнопки подключаются к выводу ADKEY1 и ADKEY2 через резисторы разных номиналов. Определение какая конкретно кнопка нажата определяется по номиналу сопротивления на указанных выводах.
Схема номиналов сопротивлений и их значений на рисунке ниже:
I/O mode
Это самый простой способ управления модулем. Он, как и AD Key Mode, не требует контроллера. Нужно подключить только динамик, 4 кнопки и подать питание от 3.3 до 5 Вольт.
Обычное нажатие на Pre/Vol+ (Next/Vol-) означает предыдущий или следующий трек, длинное нажатие и удержание — громкость больше или меньше.
Схема подключения кнопок на рисунке ниже:
Схемы подключения
Логика последовательного порта модуля работает с напряжением 3.3 вольта. Если ваш микроконтроллер работает от напряжения 5В, то рекомендуется выводы RX и TX подключать через резистор 1 кОм. Общая схема подключения по последовательному интерфейсу представлена на рисунке ниже:
Пины DACL и DACR служат для подключения внешнего усилителя или наушников. Наушники рекомендуется подключать через резистор 100 Ом для ограничения тока. Общая схема подключения на рисунке ниже:
Пины SPK1 и SPK2 служат для подключения внешнего динамика до 3Вт 4Ом к усилителю 8002D на плате модуля. Общая схема подключения на рисунке ниже:
При подключении динамика через DAC или SPK пины при слабом источнике питания могут возникнуть такие проблемы как треск в динамике или случайные перезагрузки устройства. Поэтому не рекомендуется подключать к пинам питания микроконтроллера. Они попросту не способны выдать необходимый ток. Лучше использовать внешний источник.
Также модуль можно использовать в качестве внешнего кард ридера подключив его через USB кабель к ПК по следующей схеме:
Заключение
В заключение, можно с уверенностью сказать, что DFplayer mini является надежным и удобным устройством для воспроизведения звуковых файлов в проектах DIY. Его маленький размер, низкий потребляемый ток и простота в использовании делают его идеальным выбором для проектов, где важны компактность и энергоэффективность.
DFplayer mini поддерживает различные форматы аудиофайлов, такие как MP3, WAV и WMA, и может воспроизводить звуки с USB-накопителей или микро-SD карт. Кроме того, он имеет встроенный усилитель, что позволяет воспроизводить звук на небольшом динамике без необходимости внешнего усилителя.
Однако, следует отметить, что иногда возникают проблемы, связанные с питанием и шумом при использовании DFplayer mini. Чаще всего они решают подключением более мощного источника питания.
В целом, DFplayer mini является отличным выбором для тех, кто ищет простой и надежный способ добавления звуковых эффектов в свои DIY проекты.