Не включается ресивер bbk

Поступил в ремонт ресивер BBK SMP017HDT2 с неисправностью не включается, этот ресивер передали с магазина так сказать по гарантии я иногда обслуживаю предпродажные неисправности или гарантию. При включении на передней панели горел только светодиод, на пульт не реагировал и при подключении кабеля к телевизору на экране был только черный экран.

Диагностика ресивера BBK SMP017HDT2.

Диагностика началась с замера выходного напряжения 5 вольт, и оно было в норме.

У всех устройств данного типа есть стандартные питающие напряжения и без схемы их можно замерить и определить в норме они или нет, в этом ресивере основные напряжения это 3,3 — 1,2 — 1,8 вольта.

Раз у нас нет реакции на пульт, нет загрузки и все питатели в порядке то можно предположить, что проблема в программном обеспечении и ресивер нужно прошивать.

Ремонт ресивера BBK SMP017HDT2.

Выпаиваем микросхему флешь памяти.

В этом ресивере установлена флешка PM25LQ032 на 4 мегабайта.

Прошивать будем программатором RT809F.

Нюансов по прошивке нету просто жмем две кнопки и все микросхема прошита.

Запаиваем микросхему обратно, при запайке можно не пользоваться феном, а просто запаять паяльником.

Поступил в ремонт ресивер BBK SMP017HDT2 с неисправностью не включается, этот ресивер передали с магазина так сказать по гарантии я иногда обслуживаю предпродажные неисправности или гарантию. При включении на передней панели горел только светодиод, на пульт не реагировал и при подключении кабеля к телевизору на экране был только черный экран.

Диагностика ресивера BBK SMP017HDT2.

Диагностика началась с замера выходного напряжения 5 вольт, и оно было в норме.

У всех устройств данного типа есть стандартные питающие напряжения и без схемы их можно замерить и определить в норме они или нет, в этом ресивере основные напряжения это 3,3 — 1,2 — 1,8 вольта.

Раз у нас нет реакции на пульт, нет загрузки и все питатели в порядке то можно предположить, что проблема в программном обеспечении и ресивер нужно прошивать.

Ремонт ресивера BBK SMP017HDT2.

Выпаиваем микросхему флешь памяти.

В этом ресивере установлена флешка PM25LQ032 на 4 мегабайта.

Прошивать будем программатором RT809F.

Нюансов по прошивке нету просто жмем две кнопки и все микросхема прошита.

Запаиваем микросхему обратно, при запайке можно не пользоваться феном, а просто запаять паяльником.

Девочка моя синеглазая,
Без тебя мне не прожить и дня.
Девочка моя синеглазая,
Ну скажи, что любишь ты меня.

Эти слова, невольно начинал напевать, наверное, каждый обладатель этого усилителя, спустя примерно год – после его приобретения.

А все потому, что в аккурат через год (у кого то чуть раньше у кого то чуть позже) этот чудесный ресивер переставал работать и отказывался включаться – без всяких видимых на то причин. Симптом У ВСЕХ был один и тот же –
Еще вчера все работало хорошо. Послушали – выключили. А сегодня с утра – не включается!
Не реагируя, ни на один орган управления, он хладнокровно светил синим светодиодом.
Поход в сервисный центр был обеспечен каждому! Что происходит за кулисами в самом сервисе – скрыто от глаз клиентов. Но после его посещения, счастливые обладатели – вновь могли наслаждаться исправной работой своих аппаратов.
Ирония всей ситуации в том, что это был не единственный поход к мастерам ремонта. Ровно через такой же промежуток времени Усилитель проявлял все те же признаки: светил диодом, и не включался.
Среди сервисных мастеров, в первое время, тоже не было абсолютного понимания причины неисправности. Проверка всех деталей не выявляла среди них неисправных. Замена управляющего контроллера на другой, с самой последней версией прошивки тоже не давало результата. Официальная поддержка (а это в Китае) не давала разъяснений, поэтому поводу. На что только не шли мастера, что бы выяснить причины повального обращения людей в сервис. Постепенно начало вырисовываться "то место, из которого ноги растут". Оказалось, что усилитель вновь оживал – если в нем заменить маленькую микросхему памяти – на новую. Особо не вдаваясь в подробности, первую "волну" обратившихся в сервис клиентов, осчастливили именно этим. Неужели во всей партии ресиверов попались бракованные микросхемы памяти? Возможно, но нет! Тестирование выпаянных микросхем показало, что они прекрасно работают, данные в них успешно стираются, записываются и считываются. Если такую микросхему вновь вставить в ресивер, предварительно стерев из нее все записанные данные – аппарат включался и работал, как ни в чем не бывало! Но спустя какое то время, люди стали обращаться в сервис повторно. И уже стало очевидным, что корень зла находится в алгоритме работы усилителя. Сервисмэнами были сделаны соответствующие запросы производителю. На что в ответ получили доступ на скачивание свежих, исправленных прошивок. Эта модель ресивера имеет родного брата – усилитель со встроенным радиоприемником, что отображалось в названии модели, в виде дополнительной буквы "Т" (AV 212T). Хоть визуально они и одинаковы – прошивки в них все же были разными (из-за дополнительного модуля – радиоприемника). Что уж там исправили в прошивке Китайцы – не известно, только одному из "братьев" повезло больше, (это модель с тюнером) и после обновления прошивки описанная выше проблема у него больше не проявлялась. А вот второму "брату" повезло меньше – новая "вакцина" ему не помогла.
Так как эта неисправность растянута во времени (между поломками проходил примерно год) то и разбираться никто ни в чем не стал. К тому же, эта модель морально устаревала.
Я как счастливый обладатель (модели без тюнера) пару раз и сам обращался в сервис. Затем при очередной забастовке моего ресивера, решил сам разобраться и уже "РАЗ И НАВСЕГДА" починить аппарат. Перечитал в интернете кучу форумов, где люди делились своими успехами и способами воскрешения отлучившихся в мир иной аппаратов. Кто то просто каждый раз впаивал новую память, кто то впаивал панельку под микросхему для более легкого ее извлечения и каждый раз стирал программатором ее содержимое. Кто-то умудрялся прислонять конденсатор к выводам микросхемы памяти в момент включения. Этот метод действительно работает – я проверял))) Но – крайне нестабильно, что очень неудобно. На файлообменниках лежали в открытом доступе прошивки с громкими словами "ИСПРАВЛЕННАЯ", "ВЫЛЕЧЕННАЯ" или "НОВАЯ" разумеется, многие из них я скачал. Проверка по ХЭШ суммам показала, что это либо самая первая прошивка – с которой эти усилители вошли на рынок, либо та самая прошивка, которую "исправили" разработчики. Но у меня и была та самая "исправленная" прошивка, которая в очередной раз заблокировала аппарат. Все это не подходило к моему желанию – "РАЗ И НАВСЕГДА". И как-то раз наткнулся на статью, где автор описывал свое решение данной проблемы. Выяснив, что виной всему прошивка – он считал ее с микроконтроллера, дизассемблировал и стал по шагам проверять алгоритм программы. Выяснил что при включении питания, контроллер обращается к памяти (той самой отдельной микросхеме) считывает значения определенных ячеек и сверяет с условием. Вот тут и происходит вся магия! Если одно из считанных значений не равно нулю то дальше программа попадала в пустой цикл, тем самым "навечно" закольцовываясь. Для чего это было реализовано инженерами не понятно. Автор же, исправил код путем изменения условия проверки так, что бы программа никогда не попадала в этот пустой цикл и продолжала выполняться. И это действительно помогло! Оказалось, что 2 ячейки памяти микросхемы (с адресами 0x50 и 0x51), хранят в себе количество включений аппарата. Т.к. одна ячейка это 8 бит – то максимальное число, которое может в ней храниться это 255. по достижению этого числа и последующем добавлении к нему единицы ячейка "обнуляется" и счет начинается с нуля. В нашем случае при обнулении первой ячейки с адресом 0x50 вторая 0x51 увеличивается на единицу. т.е. после этого, при очередном включении – произойдет проверка на равенство этой ячейки нулю – и программа закольцуется. Усилитель не включится!
Автору той статьи – большой респект! Снимаю шляпу! ))) К сожалению ссылку на его статью я не нашел, т.к. это было уже давно. ВОТ ЕГО СТАТЬЯ.
И очередная ирония в том, что он делал это для модели усилителя с радиоприемником и использовать его исправленную прошивку я не мог )))
Дизассемблировать – я не умею. Поэтому на основе той статьи – решил сделать небольшую хитрость и "сколхозить". Размер микросхемы памяти AT24C02 и микроконтроллера ATtiny13 одинаков. Более того – ножки по питанию у них совпадают.


Это натолкнуло меня на мысль посадить ATtiny13 – верхом на микросхему памяти и заставить ее при каждом включении питания проверять содержимое ячейки памяти 0x51. И если там не "ноль" – то обнулять ее.

Контроллер общается с памятью, по шине I2C. Мне стало интересно, можно ли к шине подключить еще одно мастер устройство и работать с памятью? Насколько я понимал, в момент включения питания, микроконтроллер усилителя – инициализируется, на что уходит какое то время, а уже потом обращается к памяти, считывая из нее значения. Я же, хотел проверять память до того, как это начнет делать контроллер. Для измерения времени – использовал ардуино. Один из ее входов, я подключил на линию 5v платы усилителя. А второй на линию данных шины I2C. Таким образом, при появлении питания 5v ардуина включала счетчик времени, а при появлении данных на шине I2C – останавливала его. Подобные измерения стабильно показывали временной интервал в 89-90 м.сек. которых могло и не хватить для задуманной махинации. Ради интереса – подключил осциллограф к линии данных SDA.

Оказалось, что опрос памяти происходит постоянно!
Во всех статьях по работе с шиной I2C описана ситуация с одним master и несколькими slave устройствами. Но как оказалось – можно использовать и 2 master устройства. При этом между ними не возникает конфликта. Приоритет распределяется по принципу – "кто раньше встал, того и тапки".
Для испытаний алгоритма, так же использовал ардуино – настроив ее на работу с I2C. Вначале просто подпаял проводки к выводам SDA и SCL микросхемы памяти и пытался считать из нее данные.


Для правильной работы шины I2C оба вывода должны быть "подтянуты" к питанию 5v резисторами, но на схеме их не оказалось. Поэтому первые попытки чтения данных из памяти ни к чему не привели.

Припаяв резисторы на 10 кОм – все заработало!
Ардуина стала присылать в терминал данные из ячеек памяти. Я считывал сразу обе ячейки 0x50 и 0x51. При каждом включении усилителя, значение ячейки 0x50 – увеличивалось на единицу. Далее для испытания – принудительно записал единичку по адресу 0x51 и попытался включить усилитель. И он не включился! Обратно записав в нее "нолик" – Все начинало работать, как и должно! Алгоритм подтвержден и можно приступать к написанию рабочей прошивки.
Создав в CodeVisionAVR новый проект под ATtiny13 – настраиваем ее на частоту 4.8 МГц. Именно на этой частоте она будет работать от внутреннего тактового генератора (это настроится позже FUSE битами). Так же настраиваем работу с I2c и настраиваем выводы микроконтроллера 5 и 6 (PORTB.0 и PORTB.1) – соответствующие выводам микросхемы памяти SDA и SCL. Битрейт шины – оставляем по умолчанию равным 100 кГц.

После инициализации, контроллер (ATtiny13) – будет принудительно удерживать линию SCL притянутой к земле. В этом можно убедиться, симулировав его работу в Proteus.

Поэтому сразу после кода инициализации контроллера, прописываем:

Все. Теперь наш контроллер не мешает работе контроллера усилителя.

Считываем данные из ячеек:

i2c_start(); //посылаем команду "старт" в шину i2c

i2c_write(0xa0); //посылаем в шину адрес Микросхемы памяти

i2c_write(0x50); //посылаем в шину адрес читаемой ячейки (0x50)

Добавить комментарий

Ваш адрес email не будет опубликован.

Adblock
detector
Домострой