Перейти к содержанию

MP3-DY-SV5W мини плеер, Кто нибудь работал с таким?


Рекомендуемые сообщения

Кто нибудь работал с таким? Я запустил в режиме паралельного 80 и битного выбора трека, звук устраивает, но инфа по всем режимам отсутствует, особенно по Uart. Нужен даташит или хотя бы примерные сведения для теста. 

 

ссылка на продавца https://www.ebay.com/itm/283409038500?ul_noapp=true

фото.jpg

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Сдается мне, все эти модули делаются на одном и том же чипе, и имеют одинаковый интерфейс управления по USART... Во всяком случае, попробовать стоит - это ведь даром :) 

Вот здесь дока на очень похожий внешне на ваш модуль: http://www.flyrontech.com/uploadfile/download/20188151711406530.pdf

В нем протокол точно такой же, как и в вот таком, сильно отличающемся внешне (я такой реально щупал):

HTB1lTvvHXXXXXbkXVXXq6xXFXXXN.jpg?size=9

Много информации о модулях с доками здесь: http://www.flyrontech.com

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Запустить не получается(( В DFплеером (как по ссылке) работаю успешно, но там Ардуино+Библа - ее см. не хочется. Итак: железо - TX ардуино - 1 ком - RX плеера. Светодиодов на плеере нет - визуально проверить получение команд не могу. Обратной связь не делаю, читать состояние плеера пока не хочу. 9600. Команды по ДШ, в котором прописано, что нужны задержки. Но что есть команда? - это каждый байт? Т.е. после каждого байта ставить от 40 до 200 мс? К примеру: 7F +пауза+ FF +пауза .... 06 0D 00 00 00 FE EF. 

Что такое ONE_Line в плеере? Я полагаю это I2C. Т.е. проблема перевода... Но тогда какой провод/вывод отвечает за SCL? За SDA - видимо IO4. И то - не факт(((

Изменено пользователем dim3740
Ссылка на комментарий
Поделиться на другие сайты

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

Очень рекомендую начать именно с приема: модуль должен уведомлять о вставке SD-карты, о выемке её, и после сброса тоже уведомляет о готовности. Если его ответы совпадут с тем, что описано в даташите - вам повезло: это значит, модуль и управляться будет так же, как описано в даташите. Ну а если нет - увы... придется искать дальше.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

О

if (Serial.available() > 0) {  //если есть доступные данные
    // считываем байт
    incomingByte = Serial.read();

    // отсылаем то, что получили
    Serial.print("I received: ");
    Serial.println(incomingByte,HEX);
  }

 Т.е. после сброса (подачи питания) делаю задержку (200-1500 мс), и, якобы, затем модуль САМ должен выдать свое состояние. ОК. Инициализирую свой Уарт на 9600. А для чтения ответа в цикле ставлю вышеприведенный код...  Полная тишина... RX свето на арудино также не мигает. 

1. Плеер от DF отличается тем что имеет некий 3-ой переключатель. Ставлю 100 - т.е. работа с UART. Но описание только на китайском. Переписка с продавцами АЛИ уже с неделю ничего не дает. Гугл переводит ужасно((((

2. Ответу плеера должен предшествовать запрос в виде команды. В ней важен бит - feedback, контр.сумма... НО, при инициализации же запрос не нужен? Плеер САМ обязан выдать ответ, а его нет(((

3. Пробовал применить библиотеку DFPlayer_Mini_Mp3.h. Не ругается, но и не работает. По ней файлы д иметь формат 0001.mp3, а мой - 00001.mp3, т.е. полной аналогии нет.

4. При этом плеер работает, если управлять им по кнопкам. Т.е. исправен. 

5. Ссылка на китайский даташит https://detail.tmall.com/item.htm?id=585759418352

 

Изменено пользователем dim3740
Ссылка на комментарий
Поделиться на другие сайты

22 минуты назад, dim3740 сказал:

Инициализирую свой Уарт на 9600. А для чтения ответа в цикле ставлю вышеприведенный код...  Полная тишина... RX свето на арудино также не мигает. 

Для начала вместо ардуйни возьми USB-UART адаптер и работай с модулем через-что-то вроде COM Port Toolkit, чтобы быть 1005 уверенным в том, что ты получаешь данные с модуля.

 

25 минут назад, dim3740 сказал:

5. Ссылка на китайский даташит https://detail.tmall.com/item.htm?id=585759418352

Нет там даташита...

Ссылка на комментарий
Поделиться на другие сайты

Ну, это не даташит... но это максимум что нашлось с сети. Все таблицы там есть, но на китайском

 COM Port Toolkit, да наверно, придется идти более сложным путем((( 

Изменено пользователем dim3740
Ссылка на комментарий
Поделиться на другие сайты

13 минуты назад, dim3740 сказал:

придется идти более сложным путем

Это наоборот, более простой путь. И достаточно любого терминала, способного передавать/показывать бинарные данные...

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

 COM Port Toolkit + преоб UART-TTL запустил. Для теста успешно прочитал созданную посылку с Ардуино, т.е. провода верно подключены. С модуля: включил кнопку в разрыв красного провода преобразователя и +5 модуля. Прерываю питание, сброс и жду ответа. Ничего нет. Попробовал на RX, т.к. иногда китайцы пишут "куда, а не откуда" название порта. Нет эффекта.  Достаточно ли такого эксперимента, или все же надо как-то запрашивать состояние/ или инициализировать модуль?

М.б. начать тестить ONE_Line интерфейс? Но тоже инфы мало.

Прикладываю фотки, чтоб  было удобнее все же подсказать, где копать.... Заранее спасибо. 

 

уарт 1.jpg

перевод1.jpg

Й1.jpg

Изменено пользователем dim3740
Ссылка на комментарий
Поделиться на другие сайты

Карту попробуйте вставить-вынуть. И, судя по вашей последней табличке, ONE_LINE это online - сигнал активации USART для управления. Во всяком случае, я так предполагаю :) Наверное, надо что-то на него подать - 0, наверное...

Да, имейте ввиду, что есть вероятность опроса входа online только в момент подачи питания, поэтому если после его заземления ничего не происходит (на кату не реагирует), это еще ни о чем не говорит. В этом случае попробуйте сначала заземлить линию, а потом подать питание.

Изменено пользователем ARV

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

Хм... а теперь я уже и сомневаюсь... Может эта линия именно "однопроводный" интерфейс управления... Тогда USART по идее должен быть активирован постоянно

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

Я не знаю что такое "однопроводной...." ИМХО синхроимпульсы должны быть обязательно. 

7.jpg

Задача: произвольная, по номеру выборка треков. И кнопочное управление громкостью (Режим последней строки на таблице обеспечит).

Но выборка - делается только режимами строк 1..4 .  Режимы выбираются переключателем CON , т.е. нет возможности программно его переключать. Хотя... в вашем плеере порты переключателя выведены,... но все это костыли "скакать между режимами". Думаю, УАРТ бы все обеспечил сам. 

Изменено пользователем dim3740
Ссылка на комментарий
Поделиться на другие сайты

Вы попробовали картой потыкать, следя при этом через монитор за USART модуля?

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

На COM Port Toolkit справа окно "прием"... Это же и есть монитор поступающих по USART команд.  Тогда - да... пробовал. В мониторе никаких строк не появляется. Только если повыдергивать ЗЕМЛЮ, то появляются ложные строки 

Вообщем костыльное решение, но работающее - это счетчик треков на арудино, и последовательный переход через инкремент/декремент к нужному номеру. Т.е. некий индекс. Но так, чтобы промежуточные не запускались надо. 

Изменено пользователем dim3740
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Кстати, стал натыкаться на али на точно такие модули, к которым сразу прилагаются таблички с английским описанием всего - команд, сигналов и т.п.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

  • 4 года спустя...

Приветствую. Подскажите, пожалуйста, по подключению (модуль заказал, ещё не получил).

Задача- необходимо проигрывать один мр3 файл (на карте) при подачи питания на данный модуль (DY-SV5W), без нажатия дополнительных кнопок, просто подал питание и началось воспроизведение файла. Я правильно понимаю, что надо просто сделать перемычку между GND и IO0? 

Спасибо.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Сам спросил, сам отвечу ))))) Приехал модуль, да, работает как я предполагал -поставил перемычку и при подачи питания включается воспроизведение файла 0001, бесконечно. Поставил в электрокамин, теперь есть звук горящих дров )

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • А как же вы квазар спаяли? Или ЛУТом не владеете? Можно даже маркером все прорисовать. А за осцил боятся не стоит, ему на вход будет приходить допустимое напряжение (указано в хар-ках осциллографа).
    • Релюхи не причём. При неисправности релюх симптомы были бы другие. И ИБП даже не клацает когда переходит в  "аварию".   Да. Аккум новый. Более того - 2 новых пробовал. И без АКБ тоже. Не влияет. Да мелкие особо не вздуваются ж. Хотя С21 под подозрением..   Спасибо. Буду иметь ввиду.
    • #include <Wire.h> #include <Oregon_TM.h> #include <BME280I2C.h> //////////////////////////////////////////////////////////////////////////////////////////////////////////// //Скетч для устройства, передающего данные датчика BME280 в формате Oregon Scientific THGN132N //Принципиальная схема прилагается. //Для работы необходима библиотека https://github.com/finitespace/BME280/ //Устройство работает от 3-ех пальчиковых батареек, для экономии электричества заливать скетч нужно через ISP //////////////////////////////////////////////////////////////////////////////////////////////////////////// //Также возможна передача данных в формате - THP (температура, влажность, давление, напряжение батареи) //Пример с приёмником поддерживает расшифоовку THP //////////////////////////////////////////////////////////////////////////////////////////////////////////// # define THGN_SEND 1 // Передавать ли данные в формате THGN132 # define THP_SEND 0 // Передавать ли данные в формате THP # define DEVICE_LOG 1 //Писать ли лог В Serial # define DONE_PIN 15 // вывод сигнала об окончании работы на таймер # define BME_WAIT 10 // Сколько мс ожидать датчик BME # define BATTERY_THR 3.5 // Порог напряжения для выставляения флага разряда батарейки (THGN) ///////////////////////////////////////////////////////////////////////////////////////////////// //Ниблы датчика THP //Во всех полях младшие ниблы идут вперёд!!! // 1-2 - тип (55) // 3 - канал (0-7) // 4-6 - (температура от -100С) * 10. Т.е. +25.1С = 1251 = 4E3h // 7-9 - Влажность *10 Т.е. 25.1% = 251 = 0FBh // 10-12 - (давление от 500ммртст) * 10. Т.е. 765мм = 2650 = A5Ah // 13-15 - данные с АЦП (A0) // 16-17 - CheckSUM // 18-19 - CRC8 (poly 0x07 start 0x00) ///////////////////////////////////////////////////////////////////////////////////////////////// Oregon_TM transmitter(4); BME280I2C bme; bool bme_present = false; float bme_temp(NAN), bme_hum(NAN), bme_pres(NAN); ///////////////////////////////////////////////////////////////////////////////////////////////// void setup() { digitalWrite(DONE_PIN, LOW); pinMode(DONE_PIN, OUTPUT); #ifdef DEVICE_LOG Serial.begin(115200); Serial.println("Waiting for BMEsensor..."); #endif //Обмен данными с BME////////////////////////////////// Wire.begin(); while(!bme.begin()) { if (millis() > BME_WAIT) break; } if (!bme.begin()) { #ifdef DEVICE_LOG Serial.println("No BME sensor found"); #endif bme_present = false; } else { switch(bme.chipModel()) { case BME280::ChipModel_BME280: bme_present = true; bme.read(bme_pres, bme_temp, bme_hum); #ifdef DEVICE_LOG Serial.println("Found BME280 sensor! Success."); Serial.print("Temperature = "); Serial.print(bme_temp, 1); Serial.println("C"); Serial.print("Humidity = "); Serial.print(bme_hum, 1); Serial.println("%"); Serial.print("Pressure = "); Serial.print(bme_pres * 0.75, 1); Serial.println("mmHg"); #endif break; default: #ifdef DEVICE_LOG Serial.println("Found UNKNOWN sensor! Error!"); #endif bme_present = false; } } //Напряжения батареи/////////////////////////////////////////// word battvotage = (word)(((float)(1.1 * 16368) / Vbg()) * 100); #ifdef DEVICE_LOG Serial.print("Battery voltage = "); Serial.println(battvotage,HEX); #endif //Подготовка и отправка данных THGN////////////////////////////////////// transmitter.protocol == 2; if (THGN_SEND) { transmitter.setType(THGN132); transmitter.setChannel(3); transmitter.setBatteryFlag(battvotage < BATTERY_THR); if (bme_present) { if (bme_hum > 98) bme_hum = 98; if (bme_hum < 2) bme_hum = 2; if (bme_temp > 70) bme_temp = 70; if (bme_temp < -50) bme_temp = -50; transmitter.setTemperature(bme_temp); transmitter.setHumidity(bme_hum); transmitter.setComfort(bme_temp, bme_hum); } else { transmitter.setTemperature(-49.9); transmitter.setHumidity(2); transmitter.setComfort(-49.9, 2); } transmitter.SendPacket(); } // Если отправляются оба формата пакетов, межу ними надо выдержать паузу if (THP_SEND && THGN_SEND) delay(100); //Подготовка и отправка данных THP////////////////////////////////////// if (THP_SEND) { transmitter.setType(THP); transmitter.setChannelTHP(1); transmitter.setBatteryTHP( battvotage); if (bme_present) { transmitter.setTemperatureTHP(bme_temp); transmitter.setHumidityTHP(bme_hum); transmitter.setPressureTHP(bme_pres * 0.75); // перевод Pa в mmHg } else { transmitter.setErrorTHP(); } transmitter.SendPacket(); } #ifdef DEVICE_LOG Serial.println(); Serial.print(millis()); Serial.println("ms"); Serial.println(); #endif //Команда на отключение питания digitalWrite(DONE_PIN, HIGH); } ///////////////////////////////////////////////////////////////////////////////////////////////// void loop(){} ///////////////////////////////////////////////////////////////////////////////////////////////// int Vbg() { ADMUX = (1<<REFS0)|(0<<REFS1)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(0<<MUX0); long buffersamp=0; for (int n=0x0; n<=0xff; n++ ) { ADCSRA = 0xc7; while (bit_is_set(ADCSRA,ADSC)); buffersamp += ADC; } buffersamp >>=4; //16368 full scale 14bit ADCSRA &= ~(1 << ADEN); // отключаем АЦП return buffersamp; } Вот код программы. Пробовал по разному и от 5в запитывал и всю систему от 3,3 в. Причем голая ардуинка с таймером работает в нормальном режиме некоторое время, но потом все равно слетает и начинает питать мк постоянно( Причем это происходит всегда через разный промежуток времени.
    • На фото может быть название , характеристики и т.д. И по этому фото я смогу выбрать такой же в инете.. самому мне не собрать..
    • А что даст фотка? Тот же щуп, только чуть крупнее и с проводами питания.
    • Для меня наверное лучше купить готовый.. цель повысить чувствительность до 1 mV.. Наверное на Авто стоит покупать , мне бы фотку какую нить..такого активного щупа..))
×
×
  • Создать...