Магнитолы штатной комплектации обычно отличаются от ширпотреба существенным запасом по надежности. Поэтому тот факт, что в 1999-ом году в нашей мастерской побывало в ремонте несколько экземпляров магнитол "AUDI Concert", произведенных фирмой Blaupunkt, с одной и той же проблемой: нарушение работоспособности системы регулирования громкостью, не мог нас не заинтересовать. Проведя первичное исследование указанной проблемы, мы пришли к неутешительным выводам: только в одном случае причиной послужил отвернувшийся винтик в самом регуляторе громкости, во всех же остальных случаях причиной нарушения регулировки громкости был выход из строя внутренней энергонезависимой памяти (EEPROM) основного микроконтроллера системы. Полноценно решалась проблема только заменой этого микросхемы на новую.
Внутренняя энергонезависимая память микроконтроллера (EEPROM) служит для хранения различных данных, определяющих функционирование системы. Записанные в такую память данные сохраняются даже при полном снятии напряжения питания. Как правило, в энергонезависимой памяти хранятся частотные настройки тюнеров, положение всех регулировок на момент выключения аппарата (для того чтобы аппарат даже при отключении его от бортовой сети питания включился именно в то состояние, в котором был отключен). Там могут храниться начало и конец диапазонов регулирования тембров и общего усиления, а также различные другие настроечные данные "привязки к железу". Ресурс у энергонезависимой памяти на современном этапе развития электроники всегда ограничен предельным количеством циклов записи. Износ EEPROM происходит на молекулярном уровне при выполнении процедуры "запись в энергонезависимую память" (Write EEPROM cycle)" и для микроконтроллеров серии MC68HC05 составляет не менее 10000 циклов. Реальное значение числа возможных циклов записи данных в EEPROM может превышать эту гарантированную фирмой Motorola цифру в несколько раз, но ресурс EEPROM все равно конечен.
Разработчики фирмы Blaupunkt, обеспечивая хранение текущих значений громкости, фадера, баланса и состояния тембров, вместо того чтобы, как это принято всеми разработчиками, учесть конечность ресурса EEPROM и производить запись во внутреннюю энергонезависимую память текущих положений всех перечисленных регулировок во время выключения аппарата или, хотя бы, после осуществления пользователем регулировки полностью, решили осуществлять запись данных в EEPROM после каждой минимальной ступеньки регулирования, то есть при перемещении регулятора на один шаг. Таким образом, если от минимума громкости до ее максимума всего имеет место, например, 32 ступени, то при изменении громкости от минимума до максимума такой микроконтроллер произведет 32 цикла записи в EEPROM. Если принять что в среднем пользователь прокручивает ручку громкости на пять ступеней, а ресурс EEPROM не 10000, а например- 50000, то нетрудно посчитать, что микроконтроллер в такой системе умрет уже через 10000 прокручиваний ручки громкости, и если предположить что за один день громкость регулируется 10 раз, то микроконтроллер утратит работоспособность через два- три года.
Связанная с регулировкой громкости и медленно "умирающая" ячейка EEPROM нами локализована, она находится по адресу 01A8h во внутреннем адресном пространстве микроконтроллера. В самом факте инициации лишних циклов записи данных в EEPROM можно легко убедиться, контролируя напряжение на выводе VPP1 (EEPROM charge pump) микроконтроллера во время выполнения каких-нибудь звуковых регулировок.
К тому моменту, когда ресурс EEPROM по регулировкам громкости полностью использован, ячейка памяти по адресу 01A8h начинает "забывать данные". Проявляется это в том, что магнитола может включиться на совершенно случайном уровне громкости, а сам процесс регулирования становится плохо предсказуем. Поначалу "глюки" с уровнем громкости заметны только при пониженных температурах, а с прогревом аппарата процесс регулирования нормализуется. Но процесс разрушения молекулярной структуры EEPROM, тем не менее, происходит при каждом повороте ручки громкости, и поэтому через некоторое время (от недель до месяцев) проблемы будут иметь место уже всегда, независимо от температуры системы. При дальнейшей эксплуатации неисправной системы в негодность придут расположенные рядом физически ячейки памяти, и аппарат может потерять работоспособность полностью.
В таблице приведены выявленные нами модели магнитол от Blaupunkt, в которых программное обеспечение содержит описанную ошибку:
Наименование магнитолы Part number
AUDI Chorus 7 646 243 380 ***
AUDI Chorus *** 4B0 035 152A
AUDI Chorus A8 7 647 243 380
AUDI Chorus M4 7 648 245 380 4B0 035 152B
AUDI Concert 7 646 248 380 4B0 035 186
AUDI Concert A8 7 647 248 380 ***
AUDI Concert M4 7 648 247 380 4B0 035 186C
AUDI Concert M4 7 646 248 380 4B0 035 186B
AUDI Concert TT
AUDI Concert NAV 7 647 247 380
Незамеченным такой ляп, конечно же остаться не мог, и когда перечисленные магнитолы начали массово выходить из строя, то "AUDI Chorus" был просто снят с производства, а перечисленные выше модели "AUDI Concert" также сняты с производства, но заменены новыми моделями, не страдающими описываемой проблемой: "AUDI ConcertPlus".
Диагностировать описанную неисправность довольно просто: если наблюдаются нарушения всех имеющихся регулировок ("Volume", "Balance", "Fader", "Treble", "Bass"), то неисправна всего лишь ручка регулировок, если же проблемы имеют место только при регулировании громкости, а все остальные регулировки выполняются исправно, то имеет место износ EEPROM микроконтроллера, и микросхему необходимо менять.
Для исключения повторения подобной неисправности после замены микроконтроллера мы пошли дальше. Нашими силами была дизассемблирована внутренняя программа микроконтроллера MC68HC05, установленного в перечисленных моделях магнитол, в программе были локализованы все манипуляции с ячейкой памяти 01A8h. После этого в программу были внесены необходимые изменения, в результате которых все эти манипуляции с указанной ячейкой EEPROM успешно переадресовывались в область оперативного запоминающего устройства (RAM), которое, как известно, имеет неограниченный ресурс. Теперь мы покупаем "чистые" однократно программируемые микроконтроллеры и программируем их объектным кодом исправленной программы. После монтажа в магнитолу микроконтроллера с исправленной программой повторение проблем с регулировкой громкости исключено в принципе! Работу исправленной программы можно легко проконтролировать по напряжению на выводе VPP1 микроконтроллера во время изменения уровня громкости.
В процессы выполнения регулировок "Balance", "Fader", "Treble", "Bass" никаких изменений нами не вносилось, так как в силу их нечастого использования ресурс ячеек EEPROM, связанных с этими регулировками по нашим прикидкам превышает в несколько раз возможный период эксплуатации магнитолы.
И в заключение предостережение: нам известно немало случаев, когда не очень порядочные мастера "ремонтируют" микроконтроллер с изношенной EEPROM путем сильного прогревания чипа. Такое воздействие может продлить работоспособность микросхемы на некоторое время, измеряемого, скорей всего, неделями, но не решает проблемы в принципе. Полноценное решение только одно: замена микроконтроллера на чип с исправленной программой.