01 декабря 2025

Ремонт джойстика подрульки Vetus

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

Если вы думаете, что это примитивное устройство с тремя кнопочками, то вы сильно ошибаетесь. Производитель поставил внутрь 8-битный микроконтроллер с флеш-памятью, где записана программа его работы.
Собственно, программа только заставляет пищать биппер внутри разными "морзянками" (справа на стикере) и мигать красно-синим светодиодом на кнопке включения 😀
Это, конечно, немного утрировано, но на 95% так и есть.
При подаче напряжения на один из джойстиков, БП глухо уходил в защиту. Второй же, - уходил в режим overload (судя по его морзянке) и красному светодиоду после включения (а должен быть синий). 
Открываем первый девайс. Для этого отвинчиваем пару гаек на шпильках и снимаем заднюю крышку-стакан. Под ней видим плату с детальками.
В центре - 14-ногий микроконтроллер, справа от него маленький линейный стабилизатор на 5В, под ними - три мощных полевых переключателя. Один - для коммутации реле "право", второй - "лево", третий - общее реле подачи напряжения цепи подрульки (на нем постоянно 12В при включении джойстика).
С обратной стороны платы стоит биппер,  кнопки и десяток пассивных элементов.
Изучив компоненты, нашел пробитый диод в цепи одного полевого переключателя и варистор с КЗ, который и давал срабатывание БП. Заменил, повесил нагрузку, включил...
Вместо включения с нужной мне морзянкой (тире-точка) биппер издал мелодию overload и зажег красный светодиод вместо синего. Маловато будет! 😕
Ищем дальше и изучаем функц. схему работы 5-конт. переключателя и напряжения на его выводах In и Dg.

Прибор показывает в нейтральном положении ручки джойстика 0В на контактах In и 5В на контакте Dg на переключателе LEFT. А должено быть 0В! И при переключении режимов лево-право на выходе переключателей нет никакого напряжения.
Будем искать...
Выпаиваю два переключателя и проверяю их отдельно от схемы джойстика, подав управляющие 4.5В на вход In. На выходе нагрузки появляются искомые 12В, значит дело не в них.
Собственно остается только контроллер, который тоже может глючить по разным причинам. Измеряю напряжение на контактной площадке и вижу, что в нейтральном поожении ручки с выпаянным переключателем там 5В. А должен быть ноль!
Кроме как выхода из строя этого канала микропроцессора (или сбоя прописанной в нем программы), никаких больше мыслей не возникает. Ибо на плате больше нет никаких элементов управления переключателем.
Значит, надо брать программатор, рабочий контроллер, выпаивать и считывать его программу, а потом прошивать новый для первой платы.
Переходника с зажимом под этот тип корпуса микросхемы у меня не оказалось, пришлось поехать и купить плату адаптера и распаять микросхему контроллера на ней.
Подключаю программатор, выбираю из списка нужный тип контроллера и нажимаем READ. Программатор выдает ОК
Иду в закладку FLASH и важу там сплошные нули. При этом указана контр. сумма отличная от нуля, что странно 😓
Значит что-то я не заметил. Иду в закладку CONFIG и смотрю на активные биты регистра

С грустью вижу, что активен седьмой бит регистра СР.
Читаю описание на контроллер про состояния битов регистра по адресу 2007h и вижу, что бит CP означает Code Protection
Вот те на! Приплыли...
В переводе на гражданский язык - установлена защита чтения программы контроллера при ее записи в контроллер и прочитать ее не удасться 😟
Есть какие-то алгоритмы вскрытия подобных защит, но заниматься этим я не готов...
Печалька!
Убить неделю времени и сделать только один джойстик из двух - крайне обидно. Но ничего не поделать, пациент уже не оживет. Точнее, сможет реагировать только на одно положение джойстика.
RIP!