Небольшое приключение двух джойстиков. Рассказ о том как починить Rhino Throttle Controller X55 (X56) с минимальными затратами. Читать с осторожностью! Содержит неприемлемое отношение к схемотехнике и правилам коммутации электронных устройств.
Дисклеймер! Делать так как я сделал не правильно, по-хорошему надо делать замену компонента или как минимум TVS диоды ставить!
Есть у меня два джойстика — комплекта Rhino X55 (X56) и у обоих вылетел Throttle Controller. Первый вылетел почти через год после покупки, и так появился второй — прислали по гарантии новый, более свежую модель X56. Но счастье было не долгим, его троттл контроллер тоже перестал определятся через некоторое время.
Мы его забросили, потому что было некогда возиться с гарантией, да и вторая половина — сам джойстик нормально работал.
А тут, неделю назад, сын озаботился заменить и этот по гарантии, потому что фирма Saitek перекочевала в Logitech, почему бы не попробовать?
Но не прокатило, сроки гарантии уже истекли и на второй джойстик.
Ну и раз пошла такая пьянка, то терять больше нечего и я расчехлил осциллограф.
Метода простая: тыкаем осциллографом во все места и смотрим что происходит.
Первым делом я выяснил, что к отдельно стоящей микросхеме SPI FLSAH (W25X40L) контроллер не обращается, а он должен оттуда считать идентификатор USB устройства. Кроме того, я посмотрел рабочий джойстик и там оказался точно такой же чип контроллера CY7C64215-56LTXC и вообщем было понятно что и как там работать должно.
Интереснее стало когда я заметил, что работающий чип джойстика питается 5В через DC-DC up/down преобразователь от 5В входящего с USB. Ну стало понятно что они стабилизируют питание, но на выходе 5В. А вот "погорельцы" питались 3.3В через понижающий стабилизатор. При том что чип по питанию универсальный и может работать в пределах 3.3В — 5.2В. «Хммм» подумал я, может ему питания мало? Но подача 5В не помогла.
Второе отличие было в маленькой буферной микросхеме которая переводила сигналы данных из USB 5V в 3.3V уровень. И вот когда я сравнил сигналы на входах контроллера то увидел что сигналы от компьютера в недостаточных уровнях (см картинки).
Собственно ремонт.
Ну приняв во внимание что в работающем на 5В джойстике сигналы данных ЮСБ идут напрямую в контроллер и там только шунтирующие диоды стоят, я выкорчевал этот преобразователь уровня и завел USB линии данных напрямую в контроллер. И случилось чудо! Оно заработало!
Так что теперь у меня два работающих комплекта джойстика Rhino X55 и Rhino X56 .
Картинки с подписями — объяснением.
Это пациент до операции
Так оно "не работает"
Это обведен кружком злобный буфер. Под ним собственно чип CY7C64215-56LTXC, а еще ниже SPI FLASH W25X40L
Это сигнал USB со стороны компьютера до буфера. Обратите внимание на уровень: 3.5В
Это сигнал тоже со стороны компьютера но это выход из буфера в компьютер
«А вот и он! Больной зуб!»(с) это сигнал после буфера со стороны контроллера. Как видно по уровню едва дотягивает до 2,5В, так что контроллер не распознает логические единички...
Это сигнал со стороны контроллера (выходной) до буфера. Тоже уровень примечательный
Вот он, этот злобный буфер-преобразователь, готовимся к ампутации
Тараканы извлечены!
К сожалению очень сложно их отпаивать — дорожки очень нежные и оторвались кое-где. Ну это не беда, такую мелочь мне паять не впервой.
Готово!
Это надо теперь залить чем-нибудь
Это чем я дорожки соединяю
Результат не заставил себя ждать! Все определяется теперь!
Драйверочки...
Это сигналы без буфера, как видно по уровню они такие-же как давал контроллер без (до) буфера
Это от компьютера в чип — видно уровень вполне достаточный теперь.
Светится! :)
Ну и все. В планах таки поставить защиту на эти линии.
Автор: Alexander Smolyakov