LINUX.ORG.RU
ФорумTalks

Open hardware STM32 MP3 player

 , , ,


9

5

Hello!

Как то давно я загорелся идеей сделать открытый музыкальный плеер(отдельное устройство). Эта идея была вызвана многими причинами: начиная от банального отсутствия необходимых функций в существующих плеерах и кончая ненадёжностью плееров из смартфончиков и планшетиков(малая продолжительность автономной работы, в дешёвых моделях - качество звука и тд).

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

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

Итак, я начал работы. Собрал макет и стал писать программу.

На макете присутствовал сам кодек на отладочной платке с алиекспресса, MCU - stm32f103cbt6(было достаточно ножек и был в наличии в ближайшем чипдипе)(плату развёл и сделал сам фотки), eeprom(24lc256 - самая дешёвая), уродливый разъём для microsd карточки(внутренний еврей не позволил покупать разъём для макета за 150 рублей. В итоге на макете частоту SDIO пришлось снизить, но на это повлияли больше длинные провода, чем разъём), OLED 0.96" дисплей на контроллере SSD1306(просто обожаю чб олед дисплеи(они няяяшные)) и самодельная 12ти кнопочная клавиатурка.

Фотки макета: https://imgur.com/a/TvJSv

На ютубе можно посмотреть видео с самых первых этапов разработки(тогда даже не была написана система и не был допилен гуй): https://www.youtube.com/channel/UC5pY283jfYVHqjVQ8bXEKBQ

Программил я после учёбы, поэтому затянулось всё на долго. Но в итоге было много чего сделано: драйвер дисплея(его я написал раньше, теперь перевёл на DMA), драйвер кодека, система, которая позволяет запускать отдельные приложения и управляет всем, в том числе и необходимыми харварными частями и отображением всего на экран, библиотека графического интерфейса со множеством необходимых элементов, сам графический интерфейс(менюшки, верхний бар, настройки и тд), музыкальный плеер(тот, что только взаимодействует с драйверами) и три приложения(файловый менеджер, тестовое приложение и приложения для музыкального плеера(интерфейс)). Всё это работало, играло музыку и причём совсем таки не плохо.

В это же время я рисовал схему и разводил плату. В итоге вышло так: фото разводки 1 фото разводки 2 ещё фотки разводки и схема.

Заказать детали для плеера и плату с завода предприятие, где я сейчас подрабатываю. В итоге я получил такую красоту: https://imgur.com/a/w70eH

И всё вместе собрал: https://imgur.com/a/paefn

Нооо... В разводке нашлись ошибки(не принципиальные, но всё же. Это была первая такая сложная плата). Но всё заработало просто великолепно! Даже играло музыку. Почти. Я забыл в схеме сделать фильтр на выходе кодека и допаял его сверху на самой плате. И видимо в результате отладки бедная микросхемка, наверное, сгорела(но лишь наполовину. По SPI она отвечает, говорит и даже, якобы, воспроизводит музыку, хотя на выходе тишина).

Но в итоге я очень расстроился и бросил это дело. Даже не записал ни одно видео работы =с

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

Все исходники: схемы, разводки(KiCad), программа для MCU(в Keil uVizion) и библиотеки лежат тут: https://github.com/SL-RU/sdmplayer

Спасибо за внимание.

★★★★
Ответ на: комментарий от Chaser_Andrey

Без учёта времени и средств, затраченных на разработку

SL_RU ★★★★
() автор топика
Ответ на: комментарий от Chaser_Andrey

Но это всё абсолютно не точно - многое будет зависеть от тестов. Я собираюсь брать самый мощный MCU сейчас, но возможно можно будет сэкономить на нём, если флак будет играть без проблем на более слабом. Нужно тестить и пробовать, а это всё потом.

Так же я хочу ставить туда аппаратную тонкомпенсацию, но мб и откажусь от этой затеи, т.к. приличное количество средств уйдёт на неё.

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

SL_RU ★★★★
() автор топика
Ответ на: комментарий от SL_RU

Я не могу тебе помочь в проектировании, но я заинтересован купить такую железку, если готовый вариант будет в пределах 50-100$.

Кастани меня, когда будет что предложить.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от SL_RU

О, приятно слышать :) .

А на git есть схема электрических цепей? А то я залез в сорцы и ничего не понял. Я так понимаю, что там только развязка плат для ide. В чем хоть смотреть это?

EmgrtE ★★★★
()
Ответ на: комментарий от SL_RU

Понятненько. Спасибо, на досуге посмотрю.

EmgrtE ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.