Итак, купил я рестайловую приборную панель взамен своей американской дорестайловой. И все бы ничего, но счастье омрачали несколько нюансов: неработающие некоторые лампочки (данная проблема решается настолько элементарно, что даже описывания не достойна) и отсутствие индикации выбранного положения селектора АКПП.
Для решения этой проблемы необходимо заглянуть в электрический мануал по автомобилю. Индикация в старой приборке осуществляется зажиганием одной из 7 лампочек, соответствующих режиму работы. Управление идет по 7 проводам соответственно.
Рис. 3 - Индикация режима АКПП в старой приборке
В новой же приборной панели управление индикацией идет по одному проводу - В14 на схеме.
Рис. 4 - Индикация режима в новой приборке
Необходимо определить, каким же сигналом идет управление, что надо подавать на этот вход, чтобы получить индикацию. Подключаем к этому пину (В14) провод ТХ от СОМ-порта и выясняем, что это самый обыкновенный UART. Дело за малым - вычислить необходимые комбинации сигналов. Методом научного тыка установлено:
P - E1h
R - 5Bh
N - 69h D - 77h 3 - 74h 2 - F9h 1 - 32h
Итак, имея в распоряжении данную информацию приходим к выводу, что для индикации надо собрать схему преобразователя сигнала параллельного кода в UART со следующей таблицей истинности:
PRND321 0111111 - E1h
1011111 - 5Bh
1101111 - 69h
1110111 - 77h
1111011 - 74h 1111101 - F9h
1111110 - 32h.
Реализовать ее можно добрым десятком различных способов. Я выбрал наиболее удобный для меня - платка Arduino Pro mini и для нее изготовил дополнительный модуль для согласования входных сигналов 12В с уровнем ардуино 5В. Платка представляет собой банальную гальваническую развяку с помощью оптопар - эти убиваем сразу двух зайцев: и согласуем уровни, и защищаем схему от вероятного пробоя высоким напряжением. Заодно на ней же реализуем источник питания 5В для самой Arduino.
Рис. 5 - Схема дочерней платы преобразователя уровня сигналов
Рис. 6 - Подключение преобразователя уровней к Arduino
Далее, чтобы не городить дополнительный преобразователь 5В - 12В, вскрываем приборку, находим ЦП, смотрим его маркировку. Это микроконтроллер Fujitsu MB90520A. В даташите на него ищем ногу, отвечающую за UART. Это оказывается 14 нога микросхемы.
Рис. 7 - MB90520A
Подпаиваемся к ней, подпаиваемся к ногам B1...B7 (это входы PRND321 соответственно), подпаиваемся к питанию - и на этом железная часть завершена. Осталось написать софт, залить в Arduino и смотреть, отлавливать баги. Вся дальнейшая настройка производится только программно, чем и удобно данное решение.
На данный момент данное решение уже вполне себе работает на автомобиле, идет процесс отлавливания багов. Конкретнее - все режимы отображаются верно за исключением повторного возврата в режим P. Как будет свободное время - займусь исправлением этого бага. При необходимости могу выложить скетч прошивки - заодно может знающие люди увидят недочеты в нем и ткнут носом. Ибо я не программист.
За сим позвольте откланяться. С уважением, GA_Traun.
Вопрос
GA_Traun
Итак, купил я рестайловую приборную панель взамен своей американской дорестайловой. И все бы ничего, но счастье омрачали несколько нюансов: неработающие некоторые лампочки (данная проблема решается настолько элементарно, что даже описывания не достойна) и отсутствие индикации выбранного положения селектора АКПП.
Рис. 1 - Старая приборка.
Рис. 1 - Рестайловая пирборка
http://www.club-forester.ru/uploads/monthly_02_2013/post-5462-1362048154.jpg
Для решения этой проблемы необходимо заглянуть в электрический мануал по автомобилю. Индикация в старой приборке осуществляется зажиганием одной из 7 лампочек, соответствующих режиму работы. Управление идет по 7 проводам соответственно.
Рис. 3 - Индикация режима АКПП в старой приборке
В новой же приборной панели управление индикацией идет по одному проводу - В14 на схеме.
Рис. 4 - Индикация режима в новой приборке
Необходимо определить, каким же сигналом идет управление, что надо подавать на этот вход, чтобы получить индикацию. Подключаем к этому пину (В14) провод ТХ от СОМ-порта и выясняем, что это самый обыкновенный UART. Дело за малым - вычислить необходимые комбинации сигналов. Методом научного тыка установлено:
P - E1h
R - 5Bh
N - 69h
D - 77h
3 - 74h
2 - F9h
1 - 32h
Итак, имея в распоряжении данную информацию приходим к выводу, что для индикации надо собрать схему преобразователя сигнала параллельного кода в UART со следующей таблицей истинности:
PRND321
0111111 - E1h
1011111 - 5Bh
1101111 - 69h
1110111 - 77h
1111011 - 74h
1111101 - F9h
1111110 - 32h.
Реализовать ее можно добрым десятком различных способов. Я выбрал наиболее удобный для меня - платка Arduino Pro mini и для нее изготовил дополнительный модуль для согласования входных сигналов 12В с уровнем ардуино 5В. Платка представляет собой банальную гальваническую развяку с помощью оптопар - эти убиваем сразу двух зайцев: и согласуем уровни, и защищаем схему от вероятного пробоя высоким напряжением. Заодно на ней же реализуем источник питания 5В для самой Arduino.
Рис. 5 - Схема дочерней платы преобразователя уровня сигналов
Рис. 6 - Подключение преобразователя уровней к Arduino
Далее, чтобы не городить дополнительный преобразователь 5В - 12В, вскрываем приборку, находим ЦП, смотрим его маркировку. Это микроконтроллер Fujitsu MB90520A. В даташите на него ищем ногу, отвечающую за UART. Это оказывается 14 нога микросхемы.
Рис. 7 - MB90520A
Подпаиваемся к ней, подпаиваемся к ногам B1...B7 (это входы PRND321 соответственно), подпаиваемся к питанию - и на этом железная часть завершена. Осталось написать софт, залить в Arduino и смотреть, отлавливать баги. Вся дальнейшая настройка производится только программно, чем и удобно данное решение.
На данный момент данное решение уже вполне себе работает на автомобиле, идет процесс отлавливания багов. Конкретнее - все режимы отображаются верно за исключением повторного возврата в режим P. Как будет свободное время - займусь исправлением этого бага. При необходимости могу выложить скетч прошивки - заодно может знающие люди увидят недочеты в нем и ткнут носом. Ибо я не программист.
За сим позвольте откланяться.
С уважением, GA_Traun.
Ссылка на комментарий
Поделиться на других сайтах
16 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.