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

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







