Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Re: DF Player mini (MP3-TF-16P)мои грабли

Вс фев 19, 2023 18:47:48

5,5 вольт не повредили модуль. Запускал только на минимальных кнопках.
Прицепил динамик 8 Ом 0,5 Вт - модуль его не тянет, уходит в себя. Поставил динамик 50 Ом - стал воспроизводить. На малой громкости в паузах - треск.
Чуть попозже займусь с внешним управлением. Скетч с библой от Робота не установился. Разбираться с ней уже не хочется. Буду писать прямые команды управления.

Re: DF Player mini (MP3-TF-16P)мои грабли

Пн фев 20, 2023 15:14:32

Ищите документашку на чип, а не на модуль. Там с контрольными суммами приколюха есть.

Re: DF Player mini (MP3-TF-16P)мои грабли

Пн авг 07, 2023 21:21:51

Мало ли кому пригодится, вот кусок кода, как я считаю модулю эту его контрольную сумму. Понять суть, думаю, не сложно.
Код:
//например, такая команда БЕЗ стартового и стопового байта и суммы
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);
}

Re: DF Player mini (MP3-TF-16P)мои грабли

Вт авг 08, 2023 17:08:41

А вот кстати, кто с таким сталкивался? Играет себе плеер всякую музяку с карты, играет. Но изредка в какой-то случайный момент, на ровном месте, на любом файле звук может начать лагать запинаться, как на старом компе. :evil: И потом через какое-то время это само проходит.

Re: DF Player mini (MP3-TF-16P)мои грабли

Вс фев 25, 2024 06:34:40

Друзья, всем здравствуйте!
Если позволите, поделюсь своим опытом по общению с данным модулем. Модуль на чипе 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)мои грабли

Сб мар 30, 2024 22:18:19

Наткнулся на статью 2022 г. с обзором разных моделей и прочая разносторонняя инфа, вроде полезная https://garrysblog.com/2022/06/12/mp3-d ... o-library/
Ответить