Поскольку DVD плеером с караоке сейчас никого не удивишь, речь пойдёт о более редком явлении- усилителе с "Харакири". Компания BBK Electronics пользуется большой популярностью на российском рынке. Цены на её продукцию весьма привлекательны и для многих людей это оказывается решающим фактором при выборе аппаратуты. Среди множества моделей есть и такие, которые полюбились не только владельцам, но и специалистам по ремонту. Одна из них - усилитель AV-212T. |
За всё время моей работы, мне не попадалось ни одного экземпляра этой модели, который был бы неисправен не так как все остальные. У всех усилителей этой модели болезнь одна, о ней и пойдёт речь. В один прекрасный(или не очень прекрасный) день усилитель просто перестаёт включаться из дежурного режима. Он не реагирует на пульт и на клавиатуру, только синий светодиод намекает на то, что что-то там ещё живое осталось. На сегодняшний день мне известно 4 способа лечения этой болезни. |
Когда принесли первый аппарат с такими симптомами, я, поковырявшись в нём увидел, что процессор нормально питается, и всё вроде в порядке, но он не реагирует на кнопки и пульт. Рядом с ним есть микросхема еепром, в которой сохраняются пользовательские настройки. При включении усилителя в сеть, процессор что-то считывал из еепром и больше не подавал никаких признаков жизни. Появилась мысль, что процессор, возможно прочитал в еепром что-то неприличное и по каким- либо причинам не желает дальше работать. Я считал содержимое еепром, затем стёр её и из любопытства включил усилитель с чистой еепром. Так был найден первый способ ремонта. Усилитель включился и нормально заработал. О причинах гадать не стал- народная мудрость гласит "Электричество до конца не изучено". В современной аппаратуре програмные сбои достаточно частое явление, можно уже и определение ввести- склероз электроники, например. Вобщем ремонт произведён и все довольны. Через какое-то время принесли ещё парочку таких экземпляров, они были отремонтированы также, а ещё через какое-то время один из отремонтированных таким способом усилителей попал в ремонт повторно. В чём причина? Однозначно можно сказать, что с еепромкой что-то не так. Возможно её содержимое меняется под воздействием чего-то, но это не телевизор со стреляющим кинескопом и возможную причину сходу и не придумаешь. Другой вариант- некачественная микросхема еепром. Неплохой вариант. Предположим, что на завод поступила партия микросхем и их поставили в наши усилители. Через какое-то время они начинают забывать то, что в них записано и усилитель в ремонте. Вобщем начал я менять эти микросхемы. Так был найден второй способ ремонта- ничего не надо стирать, ставим новую микросхему и всё. Пообщавшись с одним знакомым мастером, узнал, что и к нему приносят такие аппараты и он меняет эти микросхемы. У него даже статистика была такая- меняешь на 24с02- возвращается через какое-то время, а если на 24с04, то не возвращается. Я не мог себе представить причины, которая порождала бы такую зависимость- процессору одинаково будет работать и с 2402 и с 2404, думал, что скорее всего это совпадение. Но теперь появилась информация, что с новыми микросхемами усилители тоже ломаются. |
К тому времени я уже понаблюдал за тем, что же не нравится процессору в еепром. Оказалось, что "неправильным" был один байт- 0x51. Записываешь в него 0x00 - работает, записываешь то значение, с которым принесли - не работает. Третьим способом это не назовёшь, скорее это продолжение первого. Наблюдая за попадающими в ремонт аппаратами, заметил, что в "неправильном байте" в неисправных аппаратах всегда одно и то же значение- 0x01. Это опровергало все предположения про инопланетные воздействия и глючные еепромки. Налицо система и все дальнейшие подозрения были в сторону процессора- P89C52X2BN (также в этих моделях ставят AT89S52). На всякий случай считал прошивку из процессора и положил в папочку, наивно надеясь на то, что когда-нибудь будет время и может быть что-нибудь там…. Ну и так далее. А сам, руководствуясь принципом "Лень - двигатель прогресса" продолжал переписывать один адрес в еепром. Подпаивать три провода к еепром было лень, пользовался разъёмом подходящего размера. Такой ремонт длился минут 10-15(с разборкой и сборкой) и на полгода хватало. А потом усилитель делал себе "харакири" и его несли в ремонт. Любопытство не покидало, интересно было придумать способ, который бы искоренял эту проблему, но здравый смысл и жадность говорили о другом- зачем искать этот способ, если есть один, который без затрат позволяет вернут аппарат к жизни за 15 минут, а через полгода- год появляется потенциальная возможность снова заработать немного казначейских билетов? |
В голове крутилась мысль: надо, чтобы процессору нравилось то, что он читает из еепром. Главное сам написал и потом это ему не нравится… Один мой знакомый(учились в одной группе) оказался счастливым обладателем именно такого усилителя. Он рассказал свою историю. Он купил усилитель, тот отработал около полугода и сломался. Знакомый отнёс его в магазин, а те отвезли в сервисный центр в другой город. Там усилитель пробыл чуть больше месяца. Его отремонтировали, после ремонта он отработал 3 месяца и вот теперь снова сломался. 3 месяца- это уже слишком мало, подумал я , рассказал о моих наблюдениях за этими чудными девайсами и предложил знакомому попробовать доработать усилитель. Он конечно согласился, перспектива отдавать аппарат снова на месяц уже не привлекала. Так я придумал третий способ ремонта- уже более эффективный. Я немного увлекаюсь программированием микроконтроллеров PIC и вот сделал я такую штучку на PIC12F629. PIC припаивается к еепром в усилителе. При включении он считывает содержимое еепром по адреcу 0x51 и если там не 0, то он записывает этот 0x00 туда. К этому времени процессор в усилителе начинает читать, что он тут написал раньше и считав данные из 0x51 понимает, что всё в порядке и можно работать. Теперь даже если он и пропишет туда что-то не то, наш маленький PIC при следующем включении всё исправит. Внедрил это чудо в усилитель знакомого, записал раз 10 в еепром заведомо неправильные данные, убедился, что усилитель без проблем включается. Знакомый доволен, а я удовлетворил любопытство. Как оказалось удовлетворение было неполным….. |
Мне уже давно не приносили таких усилителей. Место работы сменил и здесь они не попадаются. На форумах в интернет несколько раз обсуждалась эта модель - решение пока одно менять еепром или стирать. И чего-то мне вспомнилось, что я прошивку из процессора считывал, и что лежит она у меня в папочке и что может быть… ну и так далее…. Захотел я найти в этой прошивке что-нибудь неправильное и попробовать это исправить. Вооружившись дизассемблером, я начал изучать эту прошивку. Вот как включается наш любимец: |
Делается инициализация звукового процессора M62446, затем что-то прописывается в драйвер дисплея PT6311. Затем после небольшой задержки считывается значение из адреса 0x7F еепром. Если там записано 0x53, то работаем дальше, инициализируем таймеры и другие интегрированные штучки. Если же значение не 0x53, выполняется процедура инициализации еепром. Это происходит например в том случае, если еепром чистая и во всех адресах записано 0xFF. Рассмотрим процедуру инициализации еепром. |
Записывается 00 по адресу 0x50, записывается 00 по адресу 0x51(наш любимый). Затем нулями заполняется пространство от 0x00 до 0x4F. После этого в еепром записываются пользовательские настройки по умолчанию - регулировки тебра, громкости, баланса и т.д. Они записываются в еепром по адресам 0x5F…0x72. |
После этих процедур записывается значение 0x53 по адресу 0x7F и программа начинает выполняться заново. Проверив адрес 7F, проинициализировав дисплей, внутренние регистры процессор снова читает еепром. Теперь это наш любимый адрес 0x51. Если там 0x00, то программа выполняется дальше. А вот если нет, |
то выполняется команда перехода в эту же точку, т.е. программа зацикливается и всё, дальше процессор ничего делать не будет. Вот и объяснение проблемы. Зачем это сделано? Не знаю, возможно планировалась какая-то функция и переход должен был выполняться в другое место, но что-то недоделали и осталось так, как мы видим. Здесь можно изменить в прошивке 1-2 байта и программа будет выполняться независимо от того, что записанопо адресу 0x51. Это четвёртый способ ремонта. Но вот интересно, зачем процессор записал туда значение, c которым не хочет работать? Изучая прошивку дальше, я нашёл такой фрагмент, который вызывается при каждом включении усилителя в сеть: |
Здесь процессор считывает данные из адреса 0x50, прибавляет к считанному значению единицу и записывает обратно в еепром. Если полученное значение 0x00, то он считывает адрес 0x51, прибавляет к данным единицу и также записывает обратно. Зачем это делается? Предположим, что в адресах 0x50 и 0x51 записаны значения 0x00. Каждый вызов этой функции увеличивает на единицу значение, записанное по адресу 0x50. Через 255 вызовов этой функции, по адресу 0x50 будет записано значение 0xFF. В 256-ой раз это значение снова будет 0x00 и теперь на единицу увеличится значение по адресу 0x51. Что будет при следующем включении аппарата? Процессор считает 0x01 по адресу 0x51 и с радостью повиснет! Вот такой замечательный подарок нам приготовили китайские инженеры. Кстати, о китайских инженерах, по ходу исследования прошивки были обнаружены 2 функции, которые не описаны в инструкции. Их можно вызвать с клавиатуры. Одна из них выводит на дисплей название китайской компании SHENGBO и два номера телефона: |
Не знаю причём тут эта компания, но можно предположить, что они имеют какое-то отношение к разработке этого усилителя. Ещё одна функция - инициализация: |
При её вызове, в eeprom записываются
заводские установки. Было предположение, что при
инициализации могли бы обнуляться значения по
адресам 0x50, 0x51, но это не так, к тому же виснет
аппарат раньше, чем появляется возможность
вызвать эту функцию. Поэтому если усилитель
перестал включаться, то оживить его с клавиатуры
не получится, а ведь это мог бы быть пятый способ
ремонта….. © Ast |