Обсуждаем цифровые устройства...
Ответить

Re: Темброблок - анализатор спектра на STM32F103

Пт фев 14, 2020 22:56:19

Отвечу о своих соображениях по поводу всего этого. Будет много слов.
gavi6 писал(а):Автор утверждал недавно что управление по блютус никому не зашло.
Во-первых, акого я не утверждал, а говорил, что мне лично это не понадобилось. Да, интересно было прикрутить управление по UART, сделать кое-какую коммуникацию с ПК. Но реальной необходимости управлять издалека (другая комната, улица и т.п.) лично у меня так и не возникло. Поэтому я особо в развитие этой функции и не вкладывался. Да, навяал какое-то приложение для Android, да и то на Qt, не родное. Но по сравнению с обычным кнопочным ИК-пультом тыкать в виртуальные кнопки на смартфоне однозначно неудобно.

Второй момент - делаю я большей частью то, что актуально для меня. Изучал ATmega микроконтроллеры - активно пилил изначальный проект на m32. Решил влезть в экосистему STM32 - начал пилить этот. Старый усилитель переделал под вариант на STM32, пропилив чуть большее окно в корпусе и ваяю. Соответственно, старый проект мне уже не интересен. Если найдутся реальные баги - поправлю, не проблема. Но новую функциональность туда добавлять уже не планирую.

А вот текущий проект пока вполне живой - в силу того, что я им пользуюсь каждый день, нахожу, что можно улучшить и т.д. А вот несколько более простых моих проектов, что я тут на сайте выкладывал, тоже мне не так интересны, как анализатор спектра. Причины:
- Про предыдущую версию для ATmega32 я уже писал.
- Велокомпьютер - да, тот в сезон весьма полезная вещь, но имеющийся функционал меня вполне устраивает, развивать там уже особо нечего. Хотя есть идеи перейти на дисплей, который можно было бы считывать без подсветки, для экономии заряда аккумулятора и продления автономности (на подсветку уходит львиная доля батареи)
- FM приёмник с часами - это, можно сказать, стандартный проект для начинающего AVR-щика. Как бы девайс на руках есть, но им не пользуюсь ввиду имеющегося аналогичного функционала в спектроанализаторе. Соответственно, развивать чисто приёмник особого желания нет.
- Матричные часы - тоже просто забавный проект. Лично не пользуюсь. На работе поставил эти часики - работают, что-то добавлять туда смысла не вижу.
- Внешний USB ЦАП на PC2705 - делался тоже ради интереса для конкурса буквально за неделю. Были микросхемы, надо было что-то с ними делать. Но в целом штука малопопулярная оказалась.
- Темброблок с матричным индикатором - стоит у родителей между ТВ и усилителем уже который год и просто работает. Что-то добавлять туда тоже смысла не вижу.

В третьих, подход у меня к проектам достаточно консервативный. Я очень сильно не люблю менять что-то, что заставит тех, кто уже пользуется устройством, напрягаться лишний раз. Кто следит за проектами, должен помнить. Из ATmega16 я долго выжимал всё по максимуму, пока реально не упёрся в нехватку места. И только тогда позволил себе перейти на ATmega32, где удалось немного развернуться и сделать многие из хотелок. Но и то, всё ограничилось только сменой МК, так что никому не понадобилось что-то менять в плате или разводке.

Так и здесь. Проект изначально придумывался для STM32F103CBT6. Просто ввиду того, что построенная на ней (ну ладно, на C8T6, но мы то знаем, что там внутри :)) BluePill легко доступна, и каждый мог хотя бы на макетке повторить и решить для себя, стоит ли связываться с нормальной платой. И я очень долго продумывал, куда какие порты подключить, чтобы при замене МК на что-то более "жирное" (типа F303 в том же корпусе) не пришлось ничего переделывать, кроме смены прошивки. И при всё при этом максимально получить доступ к имеющимся аппаратным интерфейсам. Чтобы не вышло, как в версии для ATmega32, что UART оказался занят кнопками, и полноценное управление с обратной связью стало невозможным без изменений в схеме.

По поводу возможного перехода на STM32F103VET6 - большого смысла нет - так как контроллер по сути тот же самый. От лишних ножек особой пользы нет, и имеющися в CBT6 вполне хватает. А многоногий МК сразу оттолкнёт ограничит число тех, кто сможет его собрать.

По поводу ESP32 - да, возможно, в будущем мне и захочется с ними повозиться. Но это целая новая экосистема, со своими заморочками в виде SDK, которую надо изучать с нуля. В общем, если и будет, то очень нескоро.

Пока у меня в ближайших приоритетах - восстановление вот этого агрегата. По сути, из родного останется только блок усилителя (там же и трансформатор питания для всех блоков), и аналоговая часть тюнера. Во все остальные блоки (пока, как минимум, тюнера и анализатора спектра) будет ставиться аналогичная этому проекту система, на STM32F103CBT6 (хороший вариант использовать купленные в китае МК и забыть серию F1 как страшный сон). В каждом блоке будет свой микроконтроллер, управляющий только своей частью системы. Но один из этих микроконтроллеров будет главным, и управлять работой других (забирать от них нажатия кнопок, сообщать, как реагировать на действия пользователя). Да, дисплеи будут на базе SSD1322 (длинные и невысокие).

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

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

P.S. Долбаная почта уже два месяца не может доставить платы - с 24 декабря никакого движения по треку. Сильно тормозят мне весь процесс.

Re: Темброблок - анализатор спектра на STM32F103

Сб фев 15, 2020 16:52:30

to WiseLord
Вы c модулем BT201 еще не разбирались? Есть в планах интегрировать его в этот проект?

Re: Темброблок - анализатор спектра на STM32F103

Сб фев 15, 2020 17:25:49

Пока не разбирался. Но хорошо, что напомнили.

Re: Темброблок - анализатор спектра на STM32F103

Сб фев 15, 2020 18:16:52

Пока не разбирался. Но хорошо, что напомнили.

У меня есть документация для BT201 на английском языке и часть переведена русский (гуглом) https://drive.google.com/open?id=15m_kq ... XprQLOkkmw

Re: Темброблок - анализатор спектра на STM32F103

Сб фев 15, 2020 21:02:49

В общем, поигрался с этим модулем по UART с компьютера. В целом, работать с ним можно, хотя больше заточен под работу в качестве BT-колонки.

Песни переключать по командам UART умеет (как BT, так и с внешнего носителя). Режимы (BT => USB => TF) - тоже. Большего особо и не требуется.

Выводить треки на экран не выйдет - выдаёт полную ерунду, если имя файла длиннее 12, что ли, символов, или в имени отличные от латиницы символы встречаются.

Re: Темброблок - анализатор спектра на STM32F103

Сб фев 15, 2020 22:45:41

В общем, поигрался с этим модулем по UART с компьютера. В целом, работать с ним можно, хотя больше заточен под работу в качестве BT-колонки.

Песни переключать по командам UART умеет (как BT, так и с внешнего носителя). Режимы (BT => USB => TF) - тоже. Большего особо и не требуется.

Выводить треки на экран не выйдет - выдаёт полную ерунду, если имя файла длиннее 12, что ли, символов, или в имени отличные от латиницы символы встречаются.

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

Изображение
Зеленым выделены файлы в названии которых часть кириллицей, а часть латиницей.

Re: Темброблок - анализатор спектра на STM32F103

Вс фев 16, 2020 10:14:38

Добавил базовую поддержку модуля BT201.

Пока - только управление воспроизведением (play/next/prev).

Подключается к системе по UART1 (PA9-PA20).

Дополнительно появляется функциональность (тоже пока до конца не дописанная) управления по Bluetooth, так как BT201 поддерживает SPP:

Изображение

Re: Темброблок - анализатор спектра на STM32F103

Вс фев 16, 2020 16:15:59

Добавил базовую поддержку модуля BT201.

Пока - только управление воспроизведением (play/next/prev).

Изображение

Подключил BT201 к AMP через UART1 - управление не работает.

Еще заметил, что время от времени может прыгать картинка допустим при проигрывании радио (похоже на обновление картинки дисплея), а также при повороте энкодера.
Последний раз редактировалось Nadim Вс фев 16, 2020 18:39:05, всего редактировалось 1 раз.

Re: Темброблок - анализатор спектра на STM32F103

Вс фев 16, 2020 17:33:33

Nadim, а где вы покупали BT201?
через ALI заказывать - долго едет, да и не до того сейчас дядюшке Ляо, по местным лавкам не попадается.

Re: Темброблок - анализатор спектра на STM32F103

Вс фев 16, 2020 18:20:13

Nadim, а где вы покупали BT201?
через ALI заказывать - долго едет, да и не до того сейчас дядюшке Ляо, по местным лавкам не попадается.

Заказывал на Али три месяца назад

Re: Темброблок - анализатор спектра на STM32F103

Вс фев 16, 2020 21:28:35

Nadim писал(а):Подключил BT201 к AMP через UART1 - управление не работает
В каком смысле не работет? Если подключить BT201 к UART1, то при выборе Bluetooth входа кнопки 2, 3, 4 на передней панели или настроенные кнопки Play/Prev/Next на пульте будут переключать треки на телефоне, который стримит видео по Bluetooth.

А если имелось в виду, что не работает терминал на телефоне, то вы же, надеюсь, в курсе, что конец строки должен быть '\r\n' (CRLF) для отсылаемых команд?
_____

Раз уж сегодня взялся за Bluetooth, то решил также сделать и базовую версию для управления модулями типа CSR8645 или BK8000L через PCF8574.

В этих модулях (аналогично, возможно, и в других) есть возможность управления плеером на телефоне через кнопки. Кнопки в этих модулях подключатся к питанию.

Таким образом, идея управления следующая. PCF8574 держит на своих выводах (эмулирующих кнопки) уровень 0. Когда на передней панели (или пульте) ampcontrol нажимается медиакнопка (Play/Prev/Next), соответствующий выход PCF8574 на 200мс становится лог. 1, эмулируя нажатие кнопки. Затем снова опускается.

На CSR8645 работает нормально, на BK8000L не проверял, но тоже не вижу причин, почему бы нет. Выводы PCF8574 и BT-модуля соединял через резисторы 10кОм. Но это, вероятно, не критично.

Разводка следующая (можно подсмотреть в bt.h исходников).

Код:
Bluetooth   PCF8574
VOL_MINUS   P7
VOL_PLUS    P6
NEXT_TRACK  P5      - реализовано
PREV_TRACK  P4      - реализовано
POWER       P3
PLAY_PAUSE  P2      - реализовано
LED1        P1
LED0        P0

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

Адрес PCF8574 для контроля BT-модулей задаётся также в настройках, аналогично статусу входов.

Re: Темброблок - анализатор спектра на STM32F103

Вс фев 16, 2020 22:26:08

Управление по BT 201 работает, треки переключает, вот только выбора режима usb - bt нет.
WiseLord есть ли возможность добавить выбор "станции " на Karadio по номеру в плейлисте?

Re: Темброблок - анализатор спектра на STM32F103

Вс фев 16, 2020 22:35:59

Режим USB включиться сам должен, когда флешка вставляется. Я функционал принудительного выбора пока не реализовывал, там надо выхлоп модуля парсить.

По Karadio - пока не знаю, наверное можно сделать. Нужно смотреть, есть ли у KaRadio команды такого плана.

Re: Темброблок - анализатор спектра на STM32F103

Вс фев 16, 2020 23:43:54

BT201 - заработало переключение треков. Пришлось менять скорость UART на модуле на AT+CT05\r\n Baud rate 115200
При работе BT201 почему то включается стерео режим спектра, хотя я выставил смещенный.

Re: Темброблок - анализатор спектра на STM32F103

Пн фев 17, 2020 00:00:39

На моих модулях 115200 было по умолчанию.

Re: Темброблок - анализатор спектра на STM32F103

Пн фев 17, 2020 00:23:25

Кстати в последней прошивке Karadio32 расширили список команд для управления (вчасности добавили режим sleep) .

Re: Темброблок - анализатор спектра на STM32F103

Пт фев 21, 2020 10:36:25

wiselord. hello it is very nice to add soft mute health to your hands. I have a little question. When we use the volume keys after doing a mute, the volume remains completely closed.

Re: Темброблок - анализатор спектра на STM32F103

Пт фев 21, 2020 18:35:04

Yes, it's an expected behaviour

Re: Темброблок - анализатор спектра на STM32F103

Пн фев 24, 2020 15:50:35

Nadim, а где вы покупали BT201?
через ALI заказывать - долго едет, да и не до того сейчас дядюшке Ляо, по местным лавкам не попадается.


В Украине можно купить здесь https://kiev.prom.ua/p1068103895-audio-modul-bt201.html порядка 3 евро за модуль без пересылки

Добавлено after 52 minutes 20 seconds:
WiseLord, приветствую! Пару вопросов, если можно:
1. Я так понимаю, что сейчас модуль ВТ201 подключается по UART1, куда на данный момент также подключается USB-->UART свисток для прошивки STM, но в режиме BOOT. При стационарном исполнении девайса (в корпусе) это не совсем удобно, тк нужно всякий раз при перепрошивке раскручивать корпус и перевтыкать разъем UART1 с BT201 на свисток и обратно. Планируется ли более простое решение, скажем, использование UART2 для одного из устройств выше?
2. Также, судя по последней схеме на гите, разъем MUTE/STBY переехал с разъема J2 (пины 34, 37 на процессоре) на разъем J6 (пины 21, 22 соотвественно). Таким образом, освободившийся теперь разъем J2 стал называться SWD с сигналами SWDIO и SWCLK на пинах 34 и 37 процессора. Поясните, пожалуйста, для чего это теперь используется, т.к. возможно, что-то пропустил, а форум достаточно объемный для быстрого нахождения информации.
PS Устройство работает в комбинации с KaRadio и RDA с августа прошлого года, полет нормальный, мои поздравления с удачной разработкой!

Re: Темброблок - анализатор спектра на STM32F103

Пн фев 24, 2020 16:25:52

1. Нет, так как UART2 занят под KaRadio. А UART1 - самое то для BT201, так как по нему идут отладочные сообщения, которые можно принимать на телефон для внешнего управления с "обратной связью".
2. SWDIO/SWCLK используются для прошивки устройства. Держать там MUTE и STBY неудобно, приходится каждый раз переподключать разъём программатора.
Ответить