Решив докопаться до истинных причин, приводящих к выходу из строя внутренней энергонезависимой памяти микроконтроллера, на одном из экземпляров мы провели всестороннее исследование схемотехнических решений, и программного обеспечения микроконтроллера. Результаты оказались неожиданными: основной и единственной причиной выхода из строя микроконтроллера явилась ошибка его программного обеспечения на участке программы, реализующей запись в энергонезависимую память. Программа, медленно убивающая микроконтроллер, любезно подготовлена фирмой Blaupunkt.
Обрисуем данную проблему подробнее:
Внутренняя энергонезависимая память микроконтроллера (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 |
Полное название модели обычно указывается на правом борту магнитолы. |
Источник: http://www.erta.ru