DVD плеер с функцией "Караоке" или 5-ти канальный усилитель с функцией "Харакири"?
Поскольку DVD плеером с караоке сейчас никого не удивишь, речь пойдёт о более редком явлении- усилителе с "Харакири". Компания BBK Electronics  пользуется большой популярностью на российском рынке. Цены на её продукцию весьма привлекательны и для многих людей это оказывается решающим фактором при выборе аппаратуты. Среди множества моделей есть и такие, которые полюбились не только владельцам, но и специалистам по ремонту. Одна из них - усилитель AV-212T.

image001.jpg

За всё время моей работы, мне не попадалось ни одного экземпляра этой модели, который был бы неисправен не так как все остальные. У всех усилителей этой модели болезнь одна, о ней и пойдёт речь. В один прекрасный(или не очень прекрасный) день усилитель просто перестаёт включаться из дежурного режима. Он не реагирует на пульт и на клавиатуру, только синий светодиод намекает на то, что что-то там ещё живое осталось. На сегодняшний день мне известно 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 в еепром заведомо неправильные данные, убедился, что усилитель без проблем включается. Знакомый доволен, а я удовлетворил любопытство. Как оказалось удовлетворение было неполным…..
Ресёрчинг в картинках.
Мне уже давно не приносили таких усилителей. Место работы сменил и здесь они не попадаются. На форумах в интернет несколько раз обсуждалась эта модель - решение пока одно менять еепром или стирать. И чего-то мне вспомнилось, что я прошивку из процессора считывал, и что лежит она у меня в папочке и что может быть… ну и так далее…. Захотел я найти в этой прошивке что-нибудь неправильное и попробовать это исправить. Вооружившись дизассемблером, я начал изучать эту прошивку. Вот как включается наш любимец:

image003.jpg (15832 bytes)

Делается инициализация звукового процессора M62446, затем что-то прописывается в драйвер дисплея PT6311. Затем после небольшой задержки считывается значение из адреса 0x7F еепром. Если там записано 0x53, то работаем дальше, инициализируем таймеры и другие интегрированные штучки. Если же значение не 0x53, выполняется процедура инициализации еепром. Это происходит например в том случае, если еепром чистая и во всех адресах записано 0xFF. Рассмотрим процедуру инициализации еепром.

image005.jpg (21133 bytes)

Записывается 00 по адресу 0x50, записывается 00 по адресу 0x51(наш любимый). Затем нулями заполняется пространство от 0x00 до 0x4F. После этого в еепром записываются пользовательские настройки по умолчанию - регулировки тебра, громкости, баланса и т.д. Они записываются в еепром по адресам 0x5F…0x72.

 

image007.jpg (22310 bytes)

 

После этих процедур записывается значение 0x53 по адресу 0x7F и программа начинает выполняться заново. Проверив адрес 7F, проинициализировав дисплей, внутренние регистры процессор снова читает еепром. Теперь это наш любимый адрес 0x51. Если там 0x00, то программа выполняется дальше. А вот если нет,

image008.gif (2651 bytes)

то выполняется команда перехода в эту же точку, т.е. программа зацикливается и всё, дальше процессор ничего делать не будет. Вот и объяснение проблемы. Зачем это сделано? Не знаю, возможно планировалась какая-то функция и переход должен был выполняться в другое место, но что-то недоделали и осталось так, как мы видим. Здесь можно изменить в прошивке 1-2 байта и программа будет выполняться независимо от того, что записанопо адресу 0x51. Это четвёртый способ ремонта. Но вот интересно, зачем процессор записал туда значение, c которым не хочет работать? Изучая прошивку дальше, я нашёл такой фрагмент, который вызывается при каждом включении усилителя в сеть:

image009.gif (3267 bytes)

Здесь процессор считывает данные из адреса 0x50, прибавляет к считанному значению единицу и записывает обратно в еепром. Если полученное значение 0x00, то он считывает адрес 0x51, прибавляет к данным единицу и также записывает обратно. Зачем это делается? Предположим, что в адресах 0x50 и 0x51 записаны значения 0x00. Каждый вызов этой функции увеличивает на единицу значение, записанное по адресу 0x50. Через 255 вызовов этой функции, по адресу 0x50 будет записано значение 0xFF. В 256-ой раз это значение снова будет 0x00 и теперь на единицу увеличится значение по адресу 0x51. Что будет при следующем включении аппарата? Процессор считает 0x01 по адресу 0x51 и с радостью повиснет! Вот такой замечательный подарок нам приготовили китайские инженеры. Кстати, о китайских инженерах, по ходу исследования прошивки были обнаружены 2 функции, которые не описаны в инструкции. Их можно вызвать с клавиатуры. Одна из них выводит на дисплей название китайской компании SHENGBO и два номера телефона:

image010.gif (28349 bytes)

Не знаю причём тут эта компания, но можно предположить, что они имеют какое-то отношение к разработке этого усилителя. Ещё одна функция - инициализация:

image013.jpg (6249 bytes)

При её вызове, в eeprom записываются заводские установки. Было предположение, что при инициализации могли бы обнуляться значения по адресам 0x50, 0x51, но это не так, к тому же виснет аппарат раньше, чем появляется возможность вызвать эту функцию. Поэтому если усилитель перестал включаться, то оживить его с клавиатуры не получится, а ведь это мог бы быть пятый способ ремонта…..

© Ast

Hosted by uCoz