Расширение Функционала Штатной Аудиосистемы

Всем привет. Я владелец десятилетней японской машины, в которой меня устраивало все, кроме штатной аудиосистемы – в ней не было Bluetooth. Есть три способа решить эту проблему: 1. Купите вилку прикуривателя и не выпендривайтесь.

Минусы:

  • Качество звука
  • Нет управления
  • Также нет вывода названия песни.

Никаких преимуществ.

2. Купить на разборке стандартный блок Bluetooth + более новую головку за большие деньги.

Минусы:

  • Проблемы с совместимостью разных блоков
  • Монофонический аудиовыход (на некоторых устройствах)
  • Цена с заменой головы и проводки практически равна нестандартной магнитоле.

  • Никакой поддержки кроме латиницы нет
Плюсы:
  • Стандартное оборудование
3. Сделать что-то самому, но так, чтобы не урезать существующий функционал.

Минусы:

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

    экран не умеет.

Как вы поняли из названия, я выбрал путь №3. Исходные данные.

Стандартная аудиосистема, состоящая из головного устройства и панели, выглядит вот так:

Расширение функционала штатной аудиосистемы

Он имеет режим AUX, который позволяет подключать внешние устройства для прослушивания музыки.

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

Расширение функционала штатной аудиосистемы

С помощью логического анализатора определялась скорость и протокол связи между головой и панелью.

(Частота обновления экрана 10 кадров в секунду, частота сенсорного сканирования 30 мс, 14400E2).

Вместе с Ардуино получился результат в виде Hello World.

Расширение функционала штатной аудиосистемы

Следующим шагом стал выбор микроконтроллера для реализации.

Выбор пал на STM32F103, который имеет на борту целых 3 UART и имеет поддержку CAN шины (почему бы и ее не добавить).

Изначально я купил CSR8645 в качестве модуля Bluetooth, первая версия шла в комплекте, но он не мог отображать названия треков (или я этого не до конца понимал), а также не имел управления цифровой шиной, поэтому я купил модуль под названием Bluegiga напрямую из США WT32i, в котором было все необходимое и даже больше — поддержка цифрового аудиовыхода и кодека AptX. За пару месяцев, когда было свободное время, был разработан прототип.

Были изучены все ужасы HAL и прелести SPL. UART и DMA в микроконтроллере были тщательно изучены, так как нужно было все это связать воедино, чтобы работало без тормозов и глюков.

Немного фото процесса

Расширение функционала штатной аудиосистемы



Расширение функционала штатной аудиосистемы

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

В качестве интерфейса использовался кабель HDMI и разъем от мертвого ноутбука.

Фото на момент отладки, лучше не смотреть Вид изнутри:

Расширение функционала штатной аудиосистемы

Внешний вид:

Расширение функционала штатной аудиосистемы

Дело было в старом блоке питания от ноутбука.

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

В итоге вот такая красота:

Расширение функционала штатной аудиосистемы

Я первый раз в жизни вношу оплату, можно критиковать, но в меру.

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



Расширение функционала штатной аудиосистемы

Далее был добавлен CAN-трансивер TJA1051, с помощью которого можно получать кучу интересных и не очень данных с CAN-шины автомобиля.

Я пока использую только вывод расхода топлива в час, потому что.

Стандартная букмекерская контора не имеет этой функции.



Расширение функционала штатной аудиосистемы

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

Например, письмо час заменяется на ch и т. д., чего невозможно добиться стандартными средствами.

Ну и кроме того поддержка lossless audio. Для тех, кто жаждет подробностей.

Используются все 3 UART. Один для дисплея, один для клавиш и один для модуля Bluetooth. Аудиопоток коммутируется аналоговым мультиплексором.

CAN также используется из STM32. Есть внешний ЦАП PCM5102, звук очень хороший.

Соединяется между головой и проводкой автомобиля.

Разъемы были обнаружены при разборке.

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

В планах сделать возможность настройки функций кастомизации автомобиля (владельцы Митсубиси 2008+ поймут о чем идет речь), протокол уже есть, все проверено, осталось реализовать его в прошивке.

Код можно скачать здесь.

Теги: #Программирование микроконтроллеров #Звук #stm32 #Автомобильные гаджеты #Bluetooth #встраиваемые #автомобильная электроника

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.