Обзор MP3 модуля DFPlayer Mini (DFR0299)
В этом обзоре мы рассмотрим основные характеристики DFPlayer Mini и способы его использования в различных проектах.
Обзор MP3 модуля DFPlayer Mini (DFR0299)
29.02.2024 в 11:38   1117 4
Версия для печати

Обзор MP3 модуля DFPlayer Mini (DFR0299)

logo

Введение

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 также имеет встроенные фильтры, что помогает устранить нежелательные артефакты и шумы в аналоговом сигнале, а также обеспечивает защиту от перегрузок и других электрических помех.

Внешний вид и расположение выводов

Вид спереди

pins

Вид сзади

back pins

Пин Описание Примечание
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 через резисторы разных номиналов. Определение какая конкретно кнопка нажата определяется по номиналу сопротивления на указанных выводах.

Схема номиналов сопротивлений и их значений на рисунке ниже:

AD key mode

 

I/O mode

Это самый простой способ управления модулем. Он, как и AD Key Mode, не требует контроллера. Нужно подключить только динамик, 4 кнопки и подать питание от 3.3 до 5 Вольт.

Обычное нажатие на Pre/Vol+ (Next/Vol-) означает предыдущий или следующий трек, длинное нажатие и удержание — громкость больше или меньше.

Схема подключения кнопок на рисунке ниже:

io mode

Схемы подключения

Логика последовательного порта модуля работает с напряжением 3.3 вольта. Если ваш микроконтроллер работает от напряжения 5В, то рекомендуется выводы RX и TX подключать через резистор 1 кОм. Общая схема подключения по последовательному интерфейсу представлена на рисунке ниже:

serial connect

Пины DACL и DACR служат для подключения внешнего усилителя или наушников. Наушники рекомендуется подключать через резистор 100 Ом для ограничения тока. Общая схема подключения на рисунке ниже:

AUX connect

Пины SPK1 и SPK2 служат для подключения внешнего динамика до 3Вт 4Ом к усилителю 8002D на плате модуля. Общая схема подключения на рисунке ниже:

speaker

При подключении динамика через DAC или SPK пины при слабом источнике питания могут возникнуть такие проблемы как треск в динамике или случайные перезагрузки устройства. Поэтому не рекомендуется подключать к пинам питания микроконтроллера. Они попросту не способны выдать необходимый ток. Лучше использовать внешний источник.

Также модуль можно использовать в качестве внешнего кард ридера подключив его через USB кабель к ПК по следующей схеме:

usb

Заключение

В заключение, можно с уверенностью сказать, что DFplayer mini является надежным и удобным устройством для воспроизведения звуковых файлов в проектах DIY. Его маленький размер, низкий потребляемый ток и простота в использовании делают его идеальным выбором для проектов, где важны компактность и энергоэффективность.

DFplayer mini поддерживает различные форматы аудиофайлов, такие как MP3, WAV и WMA, и может воспроизводить звуки с USB-накопителей или микро-SD карт. Кроме того, он имеет встроенный усилитель, что позволяет воспроизводить звук на небольшом динамике без необходимости внешнего усилителя.

Однако, следует отметить, что  иногда возникают проблемы, связанные с питанием и шумом при использовании DFplayer mini. Чаще всего они решают подключением более мощного источника питания.

В целом, DFplayer mini является отличным выбором для тех, кто ищет простой и надежный способ добавления звуковых эффектов в свои DIY проекты.

Материал также доступен на моем канале: Яндекс Дзен и в группе ВК
Категория: Обзоры модулей | Добавил: :, (10.05.2023)
Просмотров: 1117 | Комментарии: 4 | Теги: Arduino IDE, Arduino, MP3 модуль, DFPlayer mini, MP3, DFR0299, ESP8266 | Рейтинг: 0.0/0
Поделиться:
Всего комментариев: 4
avatar
0
Sz • 18:18, 11.05.2023
Пипец как много тут рекламы, аж блевать захотелось. И кстати, где пример кода для ардуины и есп32 ?
avatar
0
ALT • 16:12, 12.05.2023
Это разве много? Всего 4 инлайн блока в тексте, которые легко прокрутить. Никах полноэкранных блоков или всплывающих баннеров закрывающих половину экрана. В конце-коцов за хостинг же надо чем-то платить.
А по поводу кода на ESP32 или Ардуино, то я просто не увидел смысла в его размещении. Протокол предачи данных по UART я разобрал, пример передачи данных через COM порт был в предыдущей статье по схожему MP3 модулю. А в библиотеке, на которую я дал ссылку очень много встроенных примеров. Зачем повторяться?
avatar
0
sergkz1 • 17:25, 18.05.2023
Что-то ошибка у вас в вычислении чек суммы... Должно быть 0xFEF7
avatar
0
ALT • 16:34, 19.05.2023
спасибо. действительно сумма будет 109 а не 112. тогда и получится 0хf7fe
avatar