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

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


1. Купить затычку в прикуриватель и не выпендриваться.

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

3. Сделать что-либо самому, но так, чтобы не урезать имеющийся функционал.


Как вы поняли из названия, я выбрал путь номер 3. (не тот, о чем вы подумали)


Итак, имеем:


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

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

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


Задача: выяснить, как осуществляется обмен данными между панелью и головой.


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

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

Далее был пущен в ход логический анализатор, которым была определена скорость и протокол обмена между головой и панелью. (Частота обновления экрана 10 кадров в секунду, частота сканирования нажатий 30 мс). В итоге был получен результат в виде Hello World, знакомого каждому программисту =)

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

Следующим шагом был этап выбора микроконтроллера для реализации этой содомии) Выбор пал на STM32F103, на борту которого целых 3 UART и есть поддержка CAN шины (почему бы не добавить и ее). В качестве Bluetooth модуля изначально был куплен CSR8645, первая версия была с ним, но он не мог выводить названия треков, а также не имел управления по цифровой шине, поэтому был куплен прямо from USA модуль под названием Bluegiga WT32i, в котором было все, что нужно и даже больше - поддержка вывода цифрового звука и поддержка lossless кодека AptX. В течение пары месяцев, когда было свободное время велась разработка прототипа. Были познаны все ужасы HAL и прелести SPL. Досконально изучены UART и DMA в микроконтроллере, т.к. связать все это вместе и чтобы оно работало без тормозов и сбоев было необходимо.


Отладка обмена:

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

Отладка и настройка Bluetooth-модуля с внешним ЦАПом

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

Затем все это добро было внедрено в головное устройство, но так, чтобы можно было без проблем прошить и снять для доработки. В качестве интерфейса был задействован кабель HDMI и разъем из мертвого ноутбука. Изнутри все выглядело так:

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

Снаружи вот так:

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

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


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

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

Ну и результат после месяца ожидания:

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

На фото и модели платы немного отличаются, был добавлен CAN трансивер и еще по мелочи.


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

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

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


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

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

Вид в сборе

Расширяем функционал штатной аудиосистемы Своими руками, Электроника, Mitsubishi, Embedded, Stm32, Видео, Длиннопост

Ну и видео работы

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


Если кто захочет повторить, пишите, у меня еще осталось 9 плат. Прошивку скину :)


Тем, кто жаждет подробностей. Задействованы все 3 UART. Один на дисплей, один на клавиши и один на Bluetooth модуль. Звуковой поток переключается аналоговым мультиплексором. CAN используется тоже из STM32. Стоит внешний ЦАП PCM5102, звук очень недурный. Подключается между головой и проводкой автомобиля. Разъемы были найдены на разборке за дофига денег)


Вышло дороже, чем купить штатную систему Bluetooth, но удовольствия от разработки оно принесло намного больше)


iam@kolyandex.su

24
Автор поста оценил этот комментарий
Хех, помню в конце 90х у кого то в тачке видел вкоряченый по середине панели муз.центр, колонки стояли с зади. Тюнинг блеать)))
раскрыть ветку
28
Автор поста оценил этот комментарий

Я более ленив, чем ты, поэтому поставил тебе такое устройство. То, что ты делаешь - это очень правильно и увлекательно. Ведь 10-й лансер по сути - это конструктор для взрослых мальчиков. Я начал свой путь с подсветки бардачка у не смог остановиться до сих пор. Электрозамок багажника, штатный ксенон, омыватели фар, автокорректор, KOS-система, шумка, штатный патронник, цветная приборная панель, ASC, адаптивный свет, ходовые огни и много много всего... тут главное начать, а дальше уже не остановиться...  Желаю твоему другу долгих лет и дорог без выбоин.

Иллюстрация к комментарию
раскрыть ветку
6
Автор поста оценил этот комментарий

я юзаю yatour, он подключается в штатную систему вместо сд ченджера, аукс, флещка, блютуз все берет, управляется с рудя, цена тыщи 3

раскрыть ветку
9
Автор поста оценил этот комментарий

А я блютуз модуль купил за 150 рублей на алике https://www.drive2.ru/l/506925164135449130/. Один только минус, с руля не переключает, а так, звук четкий и без лишнего геммора

раскрыть ветку
5
Автор поста оценил этот комментарий

Ну ты крут! Не женат, наверное?

раскрыть ветку