Данный проект ещё не завершен на сто процентов, однако доведён до некой рабочей стадии, на которой им уже можно пользоваться. Пост начинаю потому что работа над проектом затянулась, времени всё меньше и меньше, боюсь что до финала могу и не довести, но не хочу чтобы мои наработки пропали даром. Надеюсь, что данный материал послужит кому-то отправной точкой для собственного проекта или кто-то, кому нужно больше чем мне, сможет довести дело до конца.
И так, имеем штатный монитор 16:9 автомобиля BMW в кузове e46:

(фото не моё, найдено в Интернете)
Многие поклонники марки BMW не любят портить эстетику интерьера и экстерьера своего автомобиля не штатными изделиями. Некоторым из них не хватает функционала родной аудио системы. Как же расширить функционал системы не испортив внешнего вида? Правильно, выкинуть внутренности штатного монитора, заменив их на свои.
Представленный здесь контроллер является контроллером кнопок и энкодеров лицевой части штатного монитора, а так же резистивного сенсорного экрана.
Думаю, фотографии расскажут больше чем слова.
Разобранная лицевая панель со вставленным не родным
6,5" экраном с контроллером. У контроллера выпаяны разъёмы VGA и композитного видеовхода, они не подходили по высоте.
Часть корпуса с первой половиной контроллера:
Разъёмы покрупнее:
Основная часть контроллера. В правой нижней части источник питания. Я его предусмотрел на основной плате, но он не заработал как нужно, пришлось "прикорячить" китайский готовый сбоку.
Вид с обратной стороны:
В собранном виде:
Со стороны кнопок:
Короткое видео, как это работает:
Контроллер подключается к CarPC по USB. Сам же контроллер должен быть запитан от аккумулятора, в режиме сна он потребляет мизерно мало. Как только CarPC включается, контроллер включает LCD панель. О включении CarPC контроллер узнаёт по появлению питания в USB порту.
Известные недоработки на данный момент:
- не реализован функционал чтения данных с I-BUS, для подключения к I-BUS можно воспользоваться
отдельным контроллером.
- глючит связь через виртуальны COM-порт. Т.е. программы для калибровки сенсорного экрана и настройки клавиатуры часто не видят контроллер. Однако, если увидели, то связь стабильна.
Прикрепляю архив со схемой, прошивкой, программами калибровки и настройки клавиатуры. Схема выполнена в KiCAD, разводка платы в Sprint Layout 5.0, прошивка в Atmel Studio 6.1, программы настройки в Delphi XE2.
Используемый микроконтроллер - ATxmega256A3U.