JQ6500

Летом 2016-го года я прикупил в Ali модуль аудиоплеера на базе YX-5200:

img_1319

Покупал не для конкретного проекта, а вообще — познакомиться с этим направлением, поиграться. А потом начать прикручивать его в свои гаджеты и оборудование. Но сначала мне нужно было получить опыт его использования.

Модуль примечателен тем, что он работает с микро-SD картой:

img_1318

Но как-то так сложились обстоятельства, что мне так и не удалось выкроить времени чтобы поупражняться с модулем . Так он и пролежал у меня на столе.

А пару дней назад передо мной внезапно в полный рост встала задача — освоить работу другого модуля JQ6500:

img_1320

Этот модуль несколько отличается от предыдущего. У него нет разъема для подключения SD-карты. Вместо этого модуль имеет встроенную флеш-память 25L160 (на 2 МБайта) и USB-разъём для заливки аудиотреков.

img_1321

Микросхема 8002A — это звуковой усилитель мощности, работает на 8-омный динамик. Собственно, в интернете на этот модуль имеется некоторая информация.

Модуль не беспроблемный. Первая проблема: для заливки в него аудиотреков подходит только Шиндовс, и ничего акромя её.

Процесс заливки выглядит так. Вы подключаете модуль к компу. Через некоторое время Винда сообщает, что в системе появились два диска.

Один диск вообще какой-то мутный — непонятно для чего он проявляется и что с ним делать. А на втором — имеются три файла:

md-0

Присутствие файла autorun.inf меня поначалу смутило — ВИРУС!!! Но оказалось, что всё нормально — там прописано запустить файл MusicDownload.exe.

MusicDownload.exe — это китайская недоделанная программа для загрузки аудио-файлов в формате mp3 в аудиопроигрыватель.

Я не без труда разобрался, как эта китайская недоделка работает. Если кто надумает играться с этом-чудо недоразумением, то сначала нужно открыть вторую вкладку и выбрать файлы, которые вы хотите загрузить в модуль. Файлы должны иметь наименования

001.mp3
002.mp3
003.mp3

и так далее.

После того, как они появятся в списке (в окне программы):

md-2

нужно перейти на первую вкладку и нажать единственную кнопку.

md-1

У меня все кнопки имеют какие-то странные, ни с чем не ассоциируемые значки, которые даже на китайские иероглифы походят с трудом. Поэтому пришлось прорубаться методом проб и ошибок.

Остальные 4 вкладки в программе — все пустые:

md-3

Это типа «строительные леса», оставленные разработчиком после сдачи объекта что ли? Для чего они — интернет «молчит как рыба об стол» (с).

Процесс загрузки файлов весьма неспешный, примерно 10 кБ/с.

Об окончании процесса загрузки никак не сообщается. Косвенным признаком окончания является достижение прогресс-баром полной шкалы. Но, я так думаю, что после достижения 100 % нужно подождать ещё какое-то время, чтобы процессы закончились.

К сожалению, я так и не смог разобраться в программе как посмотреть, что уже записано в плеере. Более того, я не смог найти каким способом удаляются ненужные треки. Тем не менее, в источниках (взятых на большой помойке «Интернет») утверждается, что помимо файлов с числовыми номерами вместо имен, устройство поддерживает систему поддиректориев (папок). Директории так же должны иметь имена в виде чисел. Но как с ними работать — я не знаю! Похоже, никак! В общем, та ещё китайская поделка!

Внимательные товарищи наверняка заметят, что название программы и имя файла противоречат друг другу. Вообще процессы upload и download — имеют диаметрально противоположную направленность — один выгружает, другой загружает. Узкоглазые специалисты, похоже, сами ещё не разобрались, как правильно. Я представляю, что твориться в исходных кодах у этой крутой программы!

После того, как аудиозаписи были успешно загружены в плеер, его можно отмонтировать (или как это в Винде называется?). С Виндовсом — всё! Но на этом прелести модуля не заканчиваются. Не расходитесь! Мы продолжаем веселиться.

Далее нам предстоит разобраться как теперь вызывать на свет Божий те аудиозаписи, которые мы в него загрузили.

Вообще существует два способа вызывать Джина из кувшина.

Первый — самый простой. У модуля имеется 5 пинов, замыкая которые на землю, мы можем вызывать проигрывание первых пяти треков 001.mp3 — 005.mp3. Остальные треки в этом способе недоступны.

Второй способ — обращение к модулю (точнее — к самой микросхеме аудиокодека) по UART-каналу. Здесь мы располагаем целой серией команд для запуска заданного трека, для запуска следующего/предыдущего трека, определения текущего режима работы плеера, управление громкостью, ну и так далее.

Я проверил работоспособность только некоторых команд. Не всех, которые даны в описании модуля. В принципе, управлять модулем можно.

Для работы с модулем я использовал конвертер USB-UART на базе CH340G и Питон под Линуксом.

Фоток конструкции, собранной с помощью проводков, я не делал. Там ничего уникального нет. Схема подключения описана в документации на модуль. Питание модуля (+5 В) я взял с платы конвертера.

А вот программу, наверно, имеет смысл опубликовать. Программа не коммерческая и не учебная. Эта обычная брутальная программа, которая писалась и переделывалась по ходу изучения модуля. Единственный критерий её оценки был — общая работоспособность программы и максимально быстрое получение результатов.

Прога состоит из двух файлов: главного файла (main.py) и файла класса для этого модуля (jq6500.py).

#!/usr/bin/env python3
# coding:utf-8

''' main.py
    Тест модуля JQ6500
'''

import jq6500

if __name__ == "__main__":
    jq = jq6500.JQ6500()
    
    jq.next()
    #jq.pre()
    #jq.playTrack(4)
#!/usr/bin/env python3
# coding:utf-8

''' jq6500.py '''


import serial


class JQ6500:
  def __init__(self):
    self.ser = serial.Serial(port="/dev/ttyUSB1")
    self.ser.baudrate = 9600


  def sendCmd(self, cmd):
     self.ser.write(cmd)


  def next(self):
    cmd = b'\x7E\x02\x01\xEF'
    self.sendCmd(cmd)


  def pre(self):
    cmd = b'\x7E\x02\x02\xEF'
    self.sendCmd(cmd)


  def playTrack(self, track):
    cmd = bytearray(6)
    cmd[0] = 0x7E
    cmd[1] = 0x04
    cmd[2] = 0x03
    cmd[3] = (track // 256)
    cmd[4] = (track % 256)
    cmd[5] = 0xEF    
    self.sendCmd(cmd)

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

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

Теперь затрону пикантные вопросы харда — энергопотребление модуля и тайминги.

Энергопотребление на «высоте»!

В режиме stand-by модуль жрёт аж 17 мА. Не микроампер, а миллиампер! То есть питать его непосредственно от аккумулятора или батарейки крайне не желательно. Нужно обязательно устанавливать выключатель, иначе он высосет весь источник энергии.

Следующий неприятный момент — модуль требует специфического питания — 4.2 В.

Я пробовал опускаться вниз до 3.3 В. Неудачно. Примерно при напряжении 3.5-3.6 В, модуль вместо звука аудиотрека начинает беспорядочно трещать, а потом и вообще сбивается. То есть ниже указанного напряжения модуль не работоспособен.

Максимальное напряжение питания модуля, оговоренное в документации, составляет 5.2 В. Я поднимался до 5.1 В. Работает, вопросов нет. Но рекомендованное — 4.2 В. Почему именно такое — я не знаю! Спрашивайте у узкоглазых разработчиков.

Сколько миллиампер модуль жрёт во время воспроизведения — это отдельная песня. В интернете указывается цифра до 100 мА. Это не правда! Модуль, который у меня лежит на столе, хавает до 200 мА (усреднённое значение). Потребление я измерял стрелочным прибором ТЛ-4М.

Но самое точное измерение было получено с помощью осциллографа и 1-омного шунта, включённого в разрыв цепи питания:

azh-0339

В клетке 100 мА. На осциллограмме хорошо видно, что на пиках громкости потребление подскакивает до 500 мА и даже чуть больше. Питание модуля было 5.0 В, динамик 8 Ом. Если будете проектировать источник питания для этого модуля, то имейте в виду эти нюансы.

Хорошо. Переходим в временным характеристикам модуля. Если запускать воспроизведение треков с помощью кнопок, то особых проблем нет: ткнул пальцем в кнопку, прослушал трек, ткнул в другую кнопку… А вот если командовать плеером через UART, то можно нарваться.

У модуля есть пин BUSY, который позволяет определить занятость модуля.

Процесс запуска трека выглядит так:

azh-0341

Желтый луч — нажатие на кнопку (кнопка замыкает цепь на общий провод), розовый — состояние сигнала BUSY. Скорость развёртки 50 мс/дел.

Запуск воспроизведения трека осуществляется по отпусканию кнопки. Кнопка может находиться в нажатом состоянии сколь угодно долго.

На осциллограмме видно, что сигнал BUSY выставляется через 150 мс после отпускания кнопки. На самом деле это время может варьироваться от 150 до 170 мс в зависимости от номера пина (номера трека) и, возможно, фазы Луны.

Сам трек начинает воспроизводиться чуть позже поднятия сигнала BUSY:

azh-0342

Здесь розовый луч — по прежнему сигнал Busy. Желтый луч — аудиосигнал, снятый с динамика.

Но судить по началу воспроизведения трека таким образом не совсем корректно. Ведь в начале трека вполне может присутствовать пауза.

Что касается окончания воспроизведения трека, то картинка довольно-таки забавная:

azh-0340

Ну, вот, смотрите — сигнал BUSY уже снят, а аудиотрек всё еще продолжает воспроизводиться, и это продолжается еще примерно 150-170 мс. Обращаю ваше внимание на времена — не микросекунд, а миллисекунд. Это на три порядка медленнее. Так что если будете управлять модулем от микроконтроллера, то имейте в виду, что тут не всё чисто.

Вот такой он «АЙ-6500». («Ай» — это если не переключать раскладку клавиатуры.)

Advertisements

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s