DF Player mini (MP3-TF-16P)мои грабли
-
Александр МК
- Родился
- Сообщения: 6
- Зарегистрирован: Пт окт 28, 2022 14:28:02
Re: DF Player mini (MP3-TF-16P)мои грабли
5,5 вольт не повредили модуль. Запускал только на минимальных кнопках.
Прицепил динамик 8 Ом 0,5 Вт - модуль его не тянет, уходит в себя. Поставил динамик 50 Ом - стал воспроизводить. На малой громкости в паузах - треск.
Чуть попозже займусь с внешним управлением. Скетч с библой от Робота не установился. Разбираться с ней уже не хочется. Буду писать прямые команды управления.
Прицепил динамик 8 Ом 0,5 Вт - модуль его не тянет, уходит в себя. Поставил динамик 50 Ом - стал воспроизводить. На малой громкости в паузах - треск.
Чуть попозже займусь с внешним управлением. Скетч с библой от Робота не установился. Разбираться с ней уже не хочется. Буду писать прямые команды управления.
- Реклама
- >TEHb<
- Друг Кота
- Сообщения: 5741
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Re: DF Player mini (MP3-TF-16P)мои грабли
Ищите документашку на чип, а не на модуль. Там с контрольными суммами приколюха есть.
"Привет!" - соврал он.
- ejsanyo
- Встал на лапы
- Сообщения: 127
- Зарегистрирован: Чт апр 28, 2016 22:33:47
- Откуда: ARPA Internet
Re: DF Player mini (MP3-TF-16P)мои грабли
Мало ли кому пригодится, вот кусок кода, как я считаю модулю эту его контрольную сумму. Понять суть, думаю, не сложно.
Код: Выделить всё
//например, такая команда БЕЗ стартового и стопового байта и суммы
uint8_t SetVol[] =
{
0xFF, 0x06, 0x06, 0x00, 0x00, 0x1A
};
//считает "контрольную сумму" по правилам модуля
uint16_t CheckSum(uint8_t* Cmd, uint8_t len)
{
uint8_t i;
uint16_t tmp;
tmp = 0xFFFF;
for (i = 0; i < len; i++)
{
tmp -= *Cmd;
Cmd++;
}
tmp++;
return tmp;
}
//отправляет пакет команды плееру
void SendDFPlayer(uint8_t* Command)
{
uint8_t count; //число байтов которые нужно передать
uint8_t i;
uint16_t check;
count = *(Command + 1);
check = CheckSum(Command, count);
sendcharUART1(0x7E); //стартовый байт всегда одинаковый
for (i = 0; i < count; i++)
{
sendcharUART1(*Command);
Command++;
}
sendcharUART1(check >> 8); //передаём "контрольную сумму"
sendcharUART1(check);
sendcharUART1(0xEF); //стоповый байт всегда одинаковый
}
.
.
.
.
void main(void)
{
SendDFPlayer(SetVol);
}
Хоронили кваку - порвали три Rocket Launcherа.©
- ejsanyo
- Встал на лапы
- Сообщения: 127
- Зарегистрирован: Чт апр 28, 2016 22:33:47
- Откуда: ARPA Internet
Re: DF Player mini (MP3-TF-16P)мои грабли
А вот кстати, кто с таким сталкивался? Играет себе плеер всякую музяку с карты, играет. Но изредка в какой-то случайный момент, на ровном месте, на любом файле звук может начать лагать запинаться, как на старом компе.
И потом через какое-то время это само проходит.
Хоронили кваку - порвали три Rocket Launcherа.©
-
Visual_MAG
- Родился
- Сообщения: 1
- Зарегистрирован: Вс фев 25, 2024 05:33:14
Re: DF Player mini (MP3-TF-16P)мои грабли
Друзья, всем здравствуйте!
Если позволите, поделюсь своим опытом по общению с данным модулем. Модуль на чипе MH2024K-24SS. Работаю В CodeVisionAVR с Atmega8 или 32. По началу ничего не получалось. Очень помог комментарий юзверя МОНСТЕР по поводу отправки "$7E$FF$06$0D$00$00$00$EF" (воспроизведение с первого трека) на модуль через терминал. Модуль фурыкает, поёт. Пробовал то же самое отправлять с МК - фиг там. Начал проверять как воспринимает терминалка эту же посылку. При замыкании Rx-Tx на преобразователе PL2304 в HEX прилетает 7E FF 06 0D 00 00 00 EF.
Посмотрел то, что летит в терминалку с МК - вот тут я прозрел. На приёме была реальная шляпа и мусор. Количество полученного не соответствовало отправляемому, да и значения совсем не те. Ломал голову два дня ровно до того момента, как не поменял частоту МК на 8 МГЦ. Со словами - ппц я валенок - начал биндить кнопки по управлению модулем. В общем, всё заработало. Привожу кусок кода, который запускает модуль на проигрывание. Он примитивный, без всяких проверок контрольных сумм. Тупо отправка в модуль. Далее, думаю, по аналогии можно самому нарастить нужный функционал.
Запуск, понятное дело, производится один раз. Если надо, функции кнопок переносим в while. Надеюсь, кого-нибудь это спасёт от головоломания.
Если позволите, поделюсь своим опытом по общению с данным модулем. Модуль на чипе MH2024K-24SS. Работаю В CodeVisionAVR с Atmega8 или 32. По началу ничего не получалось. Очень помог комментарий юзверя МОНСТЕР по поводу отправки "$7E$FF$06$0D$00$00$00$EF" (воспроизведение с первого трека) на модуль через терминал. Модуль фурыкает, поёт. Пробовал то же самое отправлять с МК - фиг там. Начал проверять как воспринимает терминалка эту же посылку. При замыкании Rx-Tx на преобразователе PL2304 в HEX прилетает 7E FF 06 0D 00 00 00 EF.
Посмотрел то, что летит в терминалку с МК - вот тут я прозрел. На приёме была реальная шляпа и мусор. Количество полученного не соответствовало отправляемому, да и значения совсем не те. Ломал голову два дня ровно до того момента, как не поменял частоту МК на 8 МГЦ. Со словами - ппц я валенок - начал биндить кнопки по управлению модулем. В общем, всё заработало. Привожу кусок кода, который запускает модуль на проигрывание. Он примитивный, без всяких проверок контрольных сумм. Тупо отправка в модуль. Далее, думаю, по аналогии можно самому нарастить нужный функционал.
Запуск, понятное дело, производится один раз. Если надо, функции кнопок переносим в while. Надеюсь, кого-нибудь это спасёт от головоломания.
Код: Выделить всё
#include <mega32.h>
// ЧАСТОТА ТАКТИРОВАНИЯ МК СТРОГО 8 МГЦ!!!!
#include <stdio.h>
#include <delay.h>
void UART_Transmit(int data) //прототип отправки
{
while (!(UCSRA & (1<<UDRE)));
// Передаем данные
UDR = data;
}
void main(void)
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
// State: Bit7=P Bit6=P Bit5=P Bit4=P Bit3=P Bit2=P Bit1=P Bit0=P
PORTA=(1<<PORTA7) | (1<<PORTA6) | (1<<PORTA5) | (1<<PORTA4) | (1<<PORTA3) | (1<<PORTA2) | (1<<PORTA1) | (1<<PORTA0);
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
UBRRH=0x00;
UBRRL=0x33;
delay_ms(2000); //задержка МК для прохождения инициализации мр3-модуля
UART_Transmit(0x7E);
UART_Transmit(0xFF);
UART_Transmit(0x06);
UART_Transmit(0x0D);
UART_Transmit(0x00);
UART_Transmit(0x00);
UART_Transmit(0x00);
UART_Transmit(0xEF);
while (1)
- Реклама
Re: DF Player mini (MP3-TF-16P)мои грабли
Наткнулся на статью 2022 г. с обзором разных моделей и прочая разносторонняя инфа, вроде полезная https://garrysblog.com/2022/06/12/mp3-d ... o-library/
Re: DF Player mini (MP3-TF-16P)мои грабли
Подскажите, можно ли уменьшить время переключения между треками? Вообще требуется воспроизводить один трек с минимальной задержкой по нажатию кнопки + с минимальной задержкой без Arduino. Если что- не ругайте, начинающий...Стоит MH2024K-24SS.
Re: DF Player mini (MP3-TF-16P)мои грабли
Я резал паузы в начале и конце треков звуковым редактором. Задержка уменьшилась, но все равно, весьма заметна, при воспроизведении.
Re: DF Player mini (MP3-TF-16P)мои грабли
Хотел попробовать сделать барабаны на основе этого плеера, но с такой задержкой -увы... Буду читать даташит.
Re: DF Player mini (MP3-TF-16P)мои грабли
Думаю, он слишком тормозной, для такого варианта применения. Я сделал "говорилку" на этом плеере. С урезанными паузами, все равно, между фонемами ощутимые задержки. Как вариант, можно было попробовать запоминать время "активного" звучания каждой фонемы, контролировать его и сразу переключаться на следующую. Но, думаю и в этом направлении прогноз пессимистичен.
Re: DF Player mini (MP3-TF-16P)мои грабли
Да я уже понял...Увы.
Re: DF Player mini (MP3-TF-16P)мои грабли
Всем привет!
Мой MP3-TF-16P v3.0 автоматически не стартует при замыкании GND и ADKEY1, это нормально?
Можно ли командой прописать автостарт?
Настройки уровня звука командой 7E FF 06 06 00 15 EF после отключения сбрасываются, может не та команда?
Мой MP3-TF-16P v3.0 автоматически не стартует при замыкании GND и ADKEY1, это нормально?
Можно ли командой прописать автостарт?
Настройки уровня звука командой 7E FF 06 06 00 15 EF после отключения сбрасываются, может не та команда?
- >TEHb<
- Друг Кота
- Сообщения: 5741
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Re: DF Player mini (MP3-TF-16P)мои грабли
Есть подозрение, что модуль реагирует на событие замыкания, а не на само по себе замкнутое состояние.
"Привет!" - соврал он.
Re: DF Player mini (MP3-TF-16P)мои грабли
Так и есть.
Вопрос в том, возможно ли добиться автозапуска при замкнутом состоянии или настройками?
Вопрос в том, возможно ли добиться автозапуска при замкнутом состоянии или настройками?
Re: DF Player mini (MP3-TF-16P)мои грабли
[uquote="301",url="/forum/viewtopic.php?p=4588271#p4588271"]Всем привет!
Мой MP3-TF-16P v3.0 автоматически не стартует при замыкании GND и ADKEY1, это нормально?
Можно ли командой прописать автостарт?
Настройки уровня звука командой 7E FF 06 06 00 15 EF после отключения сбрасываются, может не та команда?[/uquote]
Подниму ка тему, пришел модуль V3 на замыкание не реагирует. Библиотеки какие только не пробовал не отвечает. Напрямую к компьютерному терминалу подключить пока нет возможности.
Этот модуль вообще работает? Читал отзывы покупателей,народ жалуется , что запустить не могут
Мой MP3-TF-16P v3.0 автоматически не стартует при замыкании GND и ADKEY1, это нормально?
Можно ли командой прописать автостарт?
Настройки уровня звука командой 7E FF 06 06 00 15 EF после отключения сбрасываются, может не та команда?[/uquote]
Подниму ка тему, пришел модуль V3 на замыкание не реагирует. Библиотеки какие только не пробовал не отвечает. Напрямую к компьютерному терминалу подключить пока нет возможности.
Этот модуль вообще работает? Читал отзывы покупателей,народ жалуется , что запустить не могут
Re: DF Player mini (MP3-TF-16P)мои грабли
это правильно. Тоже такой есть, но руки не доходят пока..smagluk писал(а):Подниму ка тему,
правильнее обсуждать не библиотеки, а алгоритмыsmagluk писал(а):Библиотеки какие только не пробовал не отвечает.
Re: DF Player mini (MP3-TF-16P)мои грабли
[uquote="smagluk",url="/forum/viewtopic.php?p=4686233#p4686233"]модуль V3 на замыкание не реагирует. Напрямую к компьютерному терминалу подключить пока нет возможности.
Этот модуль вообще работает? Читал отзывы покупателей,народ жалуется , что запустить не могут[/uquote]
Сварганил значит из старого дата-кабеля USB-UART на PL2303 в выходные и подключил этот чертов плеер к компьютеру. Ни хрена он не работает, на любую команду дает ответ "...40....03...". Или вообще не дает ответа. Их у меня уже две штуки,ведут одинаково.
На одном чип плохо пропечатан,на втором получше, значит партия( или подвал) были разные.
Хочу совета, куда ткнуть , желательно кувадой, чтобы он заработал...

Этот модуль вообще работает? Читал отзывы покупателей,народ жалуется , что запустить не могут[/uquote]
Сварганил значит из старого дата-кабеля USB-UART на PL2303 в выходные и подключил этот чертов плеер к компьютеру. Ни хрена он не работает, на любую команду дает ответ "...40....03...". Или вообще не дает ответа. Их у меня уже две штуки,ведут одинаково.
На одном чип плохо пропечатан,на втором получше, значит партия( или подвал) были разные.
Хочу совета, куда ткнуть , желательно кувадой, чтобы он заработал...
- >TEHb<
- Друг Кота
- Сообщения: 5741
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Re: DF Player mini (MP3-TF-16P)мои грабли
В документашку на чип. Не на модуль, а на сам чип.
"Привет!" - соврал он.
Re: DF Player mini (MP3-TF-16P)мои грабли
[uquote=">TEHb<",url="/forum/viewtopic.php?p=4691865#p4691865"]В документашку на чип. Не на модуль, а на сам чип.[/uquote]
Читал я эту инструкцию , там написано 7E FF 06 40 00 00 03 xx xx EF Serial receiving error(a frame has not been received
completely yet) - Ошибка приема... Ставил резистор по RX,убирал его . Ничего не помогает. Уже думаю,что может и правда питать от 3 вольт... Но это ж не по феншую.
PS Команды шлю из примера инструкции. Те которые без контрольной суммы , сразу с ошибкой возвращают, те которые с контролькой , иногда вообще ничего не возвращают.
Читал я эту инструкцию , там написано 7E FF 06 40 00 00 03 xx xx EF Serial receiving error(a frame has not been received
completely yet) - Ошибка приема... Ставил резистор по RX,убирал его . Ничего не помогает. Уже думаю,что может и правда питать от 3 вольт... Но это ж не по феншую.
PS Команды шлю из примера инструкции. Те которые без контрольной суммы , сразу с ошибкой возвращают, те которые с контролькой , иногда вообще ничего не возвращают.


