Eeprom что за ошибка как исправить

и так, поведаю Вам вот такую интересную и неприятную для меня историю… как то раз, вечером, вернувшись с работы, зашел в гараж, завел машинку, отлично завелась (несмотря на мороз), работала тоже как всегда отлично! выехал, проехал примерно 5 км, остановился, заглушил и пошел в магазин! вернувшись вставил ключ в замок… и тут… включив зажигание сразу понял что что-то не так! бензонасос сработал, но качал не 3 секунды, а максимум 1, и потом отрубался! пробую завести, стартер крутит, но двигатель не заводится! так ещё несколько попыток! звоню вызываю друга, цепляем трос, тащим домой! дома-берем ноутбук и k-line адаптер, подключаем, включаем зажигание- и вот оно! программка показывает ошибку EEPROM! контроллер VS-5.1 (как-то поставил на место боша, так как по плавности работы машины, динамики и расхода бош сильно уступал этому контроллеру).

Фото в бортжурнале LADA 2112

та та самая заклинившая VS-ка)

полез на форумы, написано очень много, но по делу-мало! раздобыл январь 5.1-71, поставил, машина завелась с пол оборота! дорогие друзья, хотелось бы узнать подробнее об этой ошибке, найти пути её исправления, и узнать каким soft-ом эту ошибку можно убрать, если вообще можно))) буду благодарен за все советы и консультации:-)

Цена вопроса: 3 700 ₽
Пробег: 147 000 км

Страница 1 из 2

  1. Предпринял еще одну попытку забороть сбои в EEPROM. На этот раз программным путем. На одном из труднодоступных объектов хранение данных RFID-меток в EEPROM примерно раз в неделю заканчивается тем, что метки приходится сбрасывать и запоминать снова. Не знаю с чем это связано, в других местах такое бывает гораздо реже, примерно раза в два в год, а кое-где не было и ни разу. То ли питание там скачет, то ли статика пробивает, то ли партия МК неудачная, пока не пойму. Перенос данных из начальных ячеек не помог, добавление конденсатора для сглаживания скачков питания не помогло, настройки BOD не помогли.

    В итоге пока что проблема решилась путем трехкратного дублирования данных. При считывании одноименные байты из разных дублей сортируются, берется средний (медиана), он снова размножается на три копии и весь пакет записывается обратно. Предполагается, что сбой затрагивает не весь массив, а единичный байт (бит), в худшем случае несколько байт в разных местах разных меток, в противном случае такой способ вряд ли поможет. Теперь осталось наблюдать и сравнивать. На всякий случай добавил счетчик исправлений (в тот же EEPROM), чтобы было потом что анализировать. Если кому интересно, расскажу потом что из этого получилось.

    Последнее редактирование: 14 июн 2017

  2. Может в критических случаях внешнюю память прикручивать – дешевле в итоге получится?

  3. Круто! RAID 5 Distributed Data Guarding на EEPROM.

    В серверную память SDRAM ставят дополнительные чипы и блок контроля четности (ECC), что позволяет исправлять ошибки на лету, исключать из обращения сбойные страницы памяти.

  4. То ли прошивка кривая — не рассматривали такой вариант, что в функционал прошивки работает не корректно, из-за чего происходит повреждение данных в EEPROM?
    Есть известная проблема с нулевым байтом, подтверждённая производителем. Но больше проблем с EEPROM вроде как быть не должно. С проблемой нулевого байта сам не сталкивался, о ней узнал только от Вас на этом форуме и гугление показало, что проблема есть и желательно её учитывать. А так EEPROM свою работу делает и делает качественно.

    Ещё желательно добавить счётчик считываний меток, если зависимость будет линейная — чем больше считываний, тем больше ошибок — то я бы в первую очередь внимательно ознакомился бы с кодом прошивки.

    Конечно нельзя исключить и аппаратные проблемы — питание, воздействие ЭМИ и т.п. Но из-за отсутствия информации — что за устройства, где установлены, что вокруг — предположить ни чего нельзя. Вам самим придётся оценивать влияют ли аппаратные проблемы или нет.

    Боюсь, что результат будет тем же.

    С RAID5 ни чего общего нет.

  5. Устройство критично к размеру, внешней EEPROM лепить некуда. Да и к себестоимости есть пожелания. А есть уверенность, что внешний не дуркует так же?

  6. Как минимум покажет возможные ошибки в коде. Один образец можно сделать чтобы посмотреть.

  7. Какие могут быть ошибки в коде которые сбивают записи? Запись меток происходит один раз при первом запуске, в дальнейшем они только считываются при подаче питания один раз за сессию. Никаких обращений к EEPROM в процессе дежурства нет.

    Еще вот подсказывают из зала добавить задержку при запуске миллисекунд на 100 до обращения к EEPROM. Поможет избавиться от “дребезжащего” включения при котором работа с EEPROM может некорректно завершаться. Надо попробовать.

  8. Может даже ухудшить ситуацию путем затягивания фронтов при включении-выключении. Внешняя память может помочь, если использовать ногу WP. Вы же метки прописываете однократно? Вот только на это время и разрешайте WP, а потом джамперочек перебросили – и никто память не перепрошьет, даже взбесившийся котроллер.


    ostrov и ИгорьК нравится это.

  9. Совет хороший. Но пока буду стараться сделать без применения внешнего EEPROM, изделие и так бюджетное.

  10. А если данные записывать три раза в разные области памяти (к примеру адреса 1, 512, 1024) и счтиав все три, выводить то значение, которе имеет два и более совпадений.
    Если уж совсем заморочиться, разделить EEPROM на три части и создать там что то типа RAID5.

  11. Ну примерно так и сделано у меня. Ближе скорее к РАЙД 2 чем к 5, избыточность информации повышает ее надежность. Насколько это эффективно покажет время, но сбои вряд ли могут затронуть несколько байт в разных местах памяти.

  12. Тут основное, чтоб в случае обнаружения сбоя, система востанавливала данные автоматически.

  13. Так и есть, и об этом я писал.

  14. Ячейки памяти не независимы. У них есть общие шины для выбора, записи и чтения. Они могут физически находиться рядом и влиять друг на друга.

    Зеркалирование данных не позволяет отличить дефектную копию от исправной. Нужны какие то контрольные суммы, указывающие на то, что копия исправна.

    https://ru.wikipedia.org/wiki/Код_Хэмминга

  15. Небольшое исследование показало, что сбой происходит в одном-двух байтах при обращении к памяти, в т.ч. и при считывании. если в это время творятся нелады с питанием. То есть начали считывать данные, все погасло, данные испортились. Во всяком случае пока что все сбои наблюдались при дребезге питания, которое заказчик какого то хрена не может устранить. Соответственно вить косички из данных методом Хэмминга (реализации чего на С найти пока не удалось) смысла нет никакого. Да и так код уже едва влазит в 8Кб, зачем одну маленькую часть задания раздувать больше чем все остальное вместе взятое? Для вычисления же больного байта достаточно просто сравнивать данные из трех копий находя несовпадение. Теоретически, могут сбойнуть и два байта в копиях, и даже все три, но при таком раскладе и Хэмминг не спасет, у него это называется двойной ошибкой и она неисправима. Так что довольствуемся всего лишь понижением вероятности потери данных в несколько десятков раз, что уже неплохо. А ведь можно сделать и пять копий и больше! Но перфекционизм не моя болезнь. )

    ПС: контрольные суммы штука хорошая, использую их в пакетах данных при передаче с одного контроллера на другой, там где вероятность намотать помеху вполне реальна. Не совпала КС, пакет игнорируем, ждем следующий. А при данных из памяти что это даст? Ну не совпало, дохлый пакет, как жаль…

  16. Значит все равно придется решать проблему с питанием. Что там сейчас имеется и как именно вы пытались ситуацию исправить? Есть возможность организовать для МК отдельно чистое питание на некоторое гарантированное время?

  17. Есть мнение, что с питанием проблемы при включении, при дребезге. Он длится до 100 мс. То есть, теоретически, достаточно эти 100 мс не лезть к памяти. Но ошибка такая, что быстро статистику не собрать.

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

  19. Если есть свободный вход АЦП, то можно мерять напряжение опоры относительно питания и таким образом выждать момент, пока питание не стабилизируется на нужном уровне (за установленное время не просядет ниже порога), а уж потом дергать епром.

  20. Это если проц не будет сбрасываться от дребезга…
    Для выжидания интервала достаточно просто воткнуть задержку в самое начало.

Страница 1 из 2

Ваз 2110 2002г. Январь 5.1 Ошибка EEPROM – ChipTuner Forum

Чип-тюнинг коммерческой техники Кама3, ГАЗ от SMS-Soft



Argutin Motors: VAG Bosch MEDC17   Прошивки Magneti Marelli VAG от Art-Pro   Прошивки Peugeot/Citroen от Art-Pro   Прошивки Renault от А.Юрлова

Ваз 2110 2002г. Январь 5.1 Ошибка EEPROM


Закрытая тема.
  1. Аватар для Kirill

    offline

    ИПГ

    Регистрация:
    03.01.2009
    Сообщений:
    2,446
    Адрес:
    Архангельск

    Сегодня делал машинку и столкнулся с данной ошибкой.
    При попытке изменения RKOD (коррекция СО) , параметр записывается ,но в ошибках вылезает “Ошибка EEPROM”
    Параметр сохраняется только до выключения зажигания. После вкл. выставляется в 0.
    И есть проблема в движении. Поездив 10 минут машина начинает тупить и подтраивать.
    При перевключении зажигания проблема пропадает на такой же срок.
    Свечи,возд.фильтр новые, провода проверены (Мотор-тестером).
    Давл топл.-норм.(2,8-3,4) Компрессия одинаковая около 12 кг.
    АЦП ДМРВ при вкл. зажигании -0,996
    ДПЗ исправен.
    Ошибок при экслуатации нет.
    Не проверены форсунки.
    Предохранители целые.
    СО х.х – 4,4
    СН -180
    СО2- 15,4
    При корректировке -СО можно загнать в нормы.(но только до выкл. заж.)
    Вопрос.
    1. Думаю перепрошить- но в связи с этой ошибкой можно ли “потерять” блок?
    2. В связи с чем может появится данная ошибка?

  2. Аватар для vadik

    offline

    Автодиагност

    Регистрация:
    21.02.2006
    Сообщений:
    13,550
    Адрес:
    Липецкая обл. г.Елец

    Либо EEPROM неисправна, либо до Вас авто криво прошили (что скорее всего)

  3. Аватар для мурзик

    offline

    Диагностика, Чиптюнинг.

    Регистрация:
    19.11.2006
    Сообщений:
    11,213
    Адрес:
    Майкоп или Кот 01

    Полный индефикатор ЕБУ и ПО в студию.

  4. Аватар для vadik

    offline

    Автодиагност

    Регистрация:
    21.02.2006
    Сообщений:
    13,550
    Адрес:
    Липецкая обл. г.Елец

  5. Аватар для Kirill

    offline

    ИПГ

    Регистрация:
    03.01.2009
    Сообщений:
    2,446
    Адрес:
    Архангельск

    ЭБУ 2111-1411020-71 J5V13I02
    Кс не считывал.

  6. Аватар для vadik

    offline

    Автодиагност

    Регистрация:
    21.02.2006
    Сообщений:
    13,550
    Адрес:
    Липецкая обл. г.Елец

    B4CE должна быть , пробовать перешить для начала

  7. Аватар для мурзик

    offline

    Диагностика, Чиптюнинг.

    Регистрация:
    19.11.2006
    Сообщений:
    11,213
    Адрес:
    Майкоп или Кот 01

    По буквачкам похоже на правельную, тогда вопрос, чем смотриш?
    Ваще попробуй перезаписать с сайта ( или попалам, или в дребезги ).

  8. Аватар для MMAGS

    offline

    Диагностика, чиптюнинг, ТО

    Регистрация:
    12.02.2007
    Сообщений:
    12,668
    Адрес:
    Миллерово Ростовской обл

    знаем мы эти букавки, на заборе тоже написанно…., сливать и сравнивать

  9. Аватар для Kirill

    offline

    ИПГ

    Регистрация:
    03.01.2009
    Сообщений:
    2,446
    Адрес:
    Архангельск

    Так и спрашиваю Блок то не сдохнет ? Подмены просто нет.
    Смотрел kwp new

  10. Аватар для Kirill

    offline

    ИПГ

    Регистрация:
    03.01.2009
    Сообщений:
    2,446
    Адрес:
    Архангельск

  11. Аватар для Kirill

    offline

    ИПГ

    Регистрация:
    03.01.2009
    Сообщений:
    2,446
    Адрес:
    Архангельск

    Дерганье было из за забитого топл. фильтра с сетки на насосе.
    По СО все так и осталось. И с ошибкой тоже.
    Клиент побоялся мозги шить. Так уехал.


Закрытая тема.

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
Текущее время: 03:31. Часовой пояс GMT +4.

Введение

   В этом материале мы рассмотрим возможные проблемы при работе с EEPROM. Часть из них связана с аппаратным стороной микроконтроллера, такие как повреждение EEPROM при пониженном напряжении питания и ограниченный ресурс EEPROM, а часть с программным обеспечением, например, при использовании EEPROM в прерываниях. Также рассмотрим способы решения этих проблем и методы повышения надежности хранения данных в EEPROM.

   Одна из старых проблем AVR – это повреждение EEPROM данных при пониженном питании микроконтроллера. Это может происходить в двух случаях:

– Если напряжение питания ниже определенной величины, запись в EEPROM будет выполняться некорректно.
– При пониженном напряжении питания микроконтроллер сам может выполнять команды некорректно.

   Этих повреждений EEPROM данных можно избежать, соблюдая следующие рекомендации:

– Нужно удерживать микроконтроллер AVR в состоянии сброса, если напряжение питания находится ниже нормы. Для этого можно использовать внешние супервизоры питания или встроенный детектор пониженного питания – Brown-out Detector (BOD). Встроенный детектор управляется с помощью fuse битов микроконтроллера – BODEN и BODLEVEL. BODEN – разрешает/запрещает работу детектора, а BODLEVEL – определяет его уровень срабатывания.
   Если сброс микроконтроллера происходит во время процесса записи в EEPROM, то операция записи будет завершена только при достаточном уровне напряжения.

– Также в многие разработчике рекомендуют не использовать 0-ую ячейку EEPROM`a, поскольку именно ее содержимое чаще всего повреждается при снижении питания микроконтроллера.

Проблемы с EEPROM из-за прерываний

   Операция записи в EEPROM состоит из нескольких шагов. Вспомним эту последовательность:

1. Ожидаем готовности EEPROM, опрашивая бит EEWE регистра EECR.
2. Устанавливаем адрес в регистре EEAR.
3. Записываем байт данных в регистр EEDR.
4. Устанавливаем основной флаг разрешения записи EEMWE регистра EECE
5. Устанавливаем флаг разрешения записи EEWE регистра EECE

   Бит EEWE должен быть установлен в течении 4-ех тактов после установки бита EEMWE. Если этого не произойдет по причине прерываний, то запись в EEPROM не будет произведена. Этого легко избежать, если запретить прерывания перед 4-м шагом, а после 5-го снова разрешить их.

   Однако есть еще один подводный камень. Если прерывание возникло после 1-го, 2-го или 3-го шага, и в прерывании тоже используются операции с EEPROM (чтение или запись), то запись может не состояться, или запишутся не те данные и не туда, потому что содержимое регистров EEAR (адрес) и EEDR (данные) будет изменено.

   Описанное выше касается и процедуры чтения EEPROM.

   Лечить это можно следующими способами:

   – Не использовать операции чтения и записи EEPROM в прерываниях.
   Это особенно касается операции записи, потому что она медленная и выполняется с использованием внутреннего RC генератора. Например, для mega16 в даташите указано, что при записи в EEPROM используется внутренний RC генератор с частотой 1 МГц (независимо от установок fuse битов CKSEL) и время записи составляет 8.5 мс. Для прерывания это очень долго.

   – Запрещать прерывания на время всей процедуры записи (чтения) EEPROM, то есть в самом начале.

   – Сохранять в начале обработчика прерывания содержимое регистров EEAR (адрес) и EEDR (данные), а перед выходом восстанавливать их.

   – Использовать флаги (семафоры) для сигнализации о выполнении работы с EEPROM.
   Перед выполнением записи в основном цикле программы (или задаче, если используется ос) устанавливать программный флаг, а в прерывании (или другой задаче) проверять его.

Ресурс EEPROM

   EEPROM имеет ограниченный ресурс. Atmel гарантирует, что количество циклов перезаписи EEPROM составляет не меньше 100000. Цифра довольно большая, однако и она может быть достигнута, если записывать в EEPROM часто и на протяжении долгого времени.
   Есть два приема по “увеличению” ресурса EEPROM.
   Первый – простой и состоит в том, чтобы записывать в EEPROM данные, только если они изменили свое значение.


__eeprom uint8_t data;
uint8_t newData;

...
if (newData != data) {
data = newData;
}

   Второй- хитрый и состоит в том, чтобы хранить данные не в одной ячейки памяти (или группе ячеек, если речь идет о многобайтных переменных), а в нескольких, и записывать в них по очереди.
   Допустим, нам нужно хранить в EEPROM один байт. Выделяем под него 8 байтов и каждый раз записываем в следующую ячейку, когда доходим до последней ячейки, то записываем в первую. И так по кругу, как в кольцевом буфере. Если каждая ячейка EEPROM имеет ресурс 100000, то записывая в 8 ячеек по очереди, мы получаем ресурс перезаписи байта 800000.

EEPROM и оптимизация компилятора

   Переменные, которые объявлены, но не используются, часто удаляются компилятором в процессе оптимизации. Если такие переменные нужны, перед ними следует добавлять ключевое слово volatile.


//для IAR AVR
volatile __eeprom char name[] = "prog 12.3";

   Если используются свои функции для работы с EEPROM, то могут возникнуть проблемы при высоких уровнях оптимизации компилятора. Компилятор может объединить одинаковые (с его точки зрения) части кода в одну подпрограмму и нарушить логику работы вашей функции. Чтобы этого не происходило нужно или запрещать оптимизацию данной функции, или отключать перекрестную оптимизацию (cross call optimization) для функции или файла. Как это делается зависит от компилятора. Как правило, для этого существуют определенные ключи и прагмы.

Программные способы повышения надежности EEPROM

   

Один из простых способов повышения надежности хранения данных в EEPROM – это метод мажоритарного резервирования. Суть метода заключается в том, что для хранения данных выделяется нечетное количество ячеек памяти – N. При сохранении данных – запись производится во все выделенные ячейки. При чтении – читаются тоже все, но решение относительно содержимого принимается на основе равенства (N+1)/2 ячеек.

   Рассмотрим пример тройного мажоритарного резервирования байта данных. Для сохранения байта используются три байта EEPROM, а решение о содержимом принимается на основании равенства 2 байтов. Код приведен для компилятора IAR AVR.


//функция сохранения
void EEPROM_SaveByte(uint8_t value, uint8_t __eeprom *buf)
{
   buf[0] = value;
   buf[1] = value;
   buf[2] = value;
}

//функция считывания
uint8_t EEPROM_LoadByte(uint8_t *value, uint8_t __eeprom *buf)
{
   uint8_t a = buf[0];
   uint8_t b = buf[1];
   uint8_t c = buf[2];

   if ((a == b)||(a == c)){
      *value = a;
      return 0;
   }
   else {
      if (b == c){  
         *value = b;
         return 0;
      }
   }
   return 1;
}

....
//пример использования

__eeprom uint8_t buffer[3];
uint8_t data;

EEPROM_SaveByte(125, buffer);
EEPROM_LoadByte(&data, buffer);

   В случае повреждения одной из ячеек или неудачной записи в одну из них, такой метод поможет избежать ошибки. Но если неправильное значение запишется в две ячейки, то прочитанные данные будут неверными.

   Другой метод повышения надежности хранимых данных состоит в использовании контрольных сумм, например CRC. Я не использовал этот метод в своей практике, поэтому о нем мало чего могу сказать.

   На этом все…

Обновлено: 15.05.2023

В этом материале мы рассмотрим возможные проблемы при работе с EEPROM. Часть из них связана с аппаратным стороной микроконтроллера, такие как повреждение EEPROM при пониженном напряжении питания и ограниченный ресурс EEPROM, а часть с программным обеспечением, например, при использовании EEPROM в прерываниях. Также рассмотрим способы решения этих проблем и методы повышения надежности хранения данных в EEPROM.

Одна из старых проблем AVR – это повреждение EEPROM данных при пониженном питании микроконтроллера. Это может происходить в двух случаях:

– Если напряжение питания ниже определенной величины, запись в EEPROM будет выполняться некорректно.
– При пониженном напряжении питания микроконтроллер сам может выполнять команды некорректно.

Этих повреждений EEPROM данных можно избежать, соблюдая следующие рекомендации:

– Нужно удерживать микроконтроллер AVR в состоянии сброса, если напряжение питания находится ниже нормы. Для этого можно использовать внешние супервизоры питания или встроенный детектор пониженного питания – Brown-out Detector (BOD). Встроенный детектор управляется с помощью fuse битов микроконтроллера – BODEN и BODLEVEL. BODEN – разрешает/запрещает работу детектора, а BODLEVEL – определяет его уровень срабатывания.
Если сброс микроконтроллера происходит во время процесса записи в EEPROM, то операция записи будет завершена только при достаточном уровне напряжения.

– Также в многие разработчике рекомендуют не использовать 0-ую ячейку EEPROM`a, поскольку именно ее содержимое чаще всего повреждается при снижении питания микроконтроллера.

Операция записи в EEPROM состоит из нескольких шагов. Вспомним эту последовательность:

1. Ожидаем готовности EEPROM, опрашивая бит EEWE регистра EECR.
2. Устанавливаем адрес в регистре EEAR.
3. Записываем байт данных в регистр EEDR.
4. Устанавливаем основной флаг разрешения записи EEMWE регистра EECE
5. Устанавливаем флаг разрешения записи EEWE регистра EECE

Бит EEWE должен быть установлен в течении 4-ех тактов после установки бита EEMWE. Если этого не произойдет по причине прерываний, то запись в EEPROM не будет произведена. Этого легко избежать, если запретить прерывания перед 4-м шагом, а после 5-го снова разрешить их.

Однако есть еще один подводный камень. Если прерывание возникло после 1-го, 2-го или 3-го шага, и в прерывании тоже используются операции с EEPROM (чтение или запись), то запись может не состояться, или запишутся не те данные и не туда, потому что содержимое регистров EEAR (адрес) и EEDR (данные) будет изменено.

Описанное выше касается и процедуры чтения EEPROM.

Лечить это можно следующими способами:

– Не использовать операции чтения и записи EEPROM в прерываниях.
Это особенно касается операции записи, потому что она медленная и выполняется с использованием внутреннего RC генератора. Например, для mega16 в даташите указано, что при записи в EEPROM используется внутренний RC генератор с частотой 1 МГц (независимо от установок fuse битов CKSEL) и время записи составляет 8.5 мс. Для прерывания это очень долго.

– Запрещать прерывания на время всей процедуры записи (чтения) EEPROM, то есть в самом начале.

– Сохранять в начале обработчика прерывания содержимое регистров EEAR (адрес) и EEDR (данные), а перед выходом восстанавливать их.

– Использовать флаги (семафоры) для сигнализации о выполнении работы с EEPROM.
Перед выполнением записи в основном цикле программы (или задаче, если используется ос) устанавливать программный флаг, а в прерывании (или другой задаче) проверять его.

EEPROM имеет ограниченный ресурс. Atmel гарантирует, что количество циклов перезаписи EEPROM составляет не меньше 100000. Цифра довольно большая, однако и она может быть достигнута, если записывать в EEPROM часто и на протяжении долгого времени.
Есть два приема по “увеличению” ресурса EEPROM.
Первый – простой и состоит в том, чтобы записывать в EEPROM данные, только если они изменили свое значение.

Второй- хитрый и состоит в том, чтобы хранить данные не в одной ячейки памяти (или группе ячеек, если речь идет о многобайтных переменных), а в нескольких, и записывать в них по очереди.
Допустим, нам нужно хранить в EEPROM один байт. Выделяем под него 8 байтов и каждый раз записываем в следующую ячейку, когда доходим до последней ячейки, то записываем в первую. И так по кругу, как в кольцевом буфере. Если каждая ячейка EEPROM имеет ресурс 100000, то записывая в 8 ячеек по очереди, мы получаем ресурс перезаписи байта 800000.

Переменные, которые объявлены, но не используются, часто удаляются компилятором в процессе оптимизации. Если такие переменные нужны, перед ними следует добавлять ключевое слово volatile.

Если используются свои функции для работы с EEPROM, то могут возникнуть проблемы при высоких уровнях оптимизации компилятора. Компилятор может объединить одинаковые (с его точки зрения) части кода в одну подпрограмму и нарушить логику работы вашей функции. Чтобы этого не происходило нужно или запрещать оптимизацию данной функции, или отключать перекрестную оптимизацию (cross call optimization) для функции или файла. Как это делается зависит от компилятора. Как правило, для этого существуют определенные ключи и прагмы.

Один из простых способов повышения надежности хранения данных в EEPROM – это метод мажоритарного резервирования. Суть метода заключается в том, что для хранения данных выделяется нечетное количество ячеек памяти – N. При сохранении данных – запись производится во все выделенные ячейки. При чтении – читаются тоже все, но решение относительно содержимого принимается на основе равенства (N+1)/2 ячеек.

Рассмотрим пример тройного мажоритарного резервирования байта данных. Для сохранения байта используются три байта EEPROM, а решение о содержимом принимается на основании равенства 2 байтов. Код приведен для компилятора IAR AVR.

В случае повреждения одной из ячеек или неудачной записи в одну из них, такой метод поможет избежать ошибки. Но если неправильное значение запишется в две ячейки, то прочитанные данные будут неверными.

Другой метод повышения надежности хранимых данных состоит в использовании контрольных сумм, например CRC. Я не использовал этот метод в своей практике, поэтому о нем мало чего могу сказать.

P062F Ошибка EEPROM модуля внутреннего управления

Это общий диагностический код неисправности трансмиссии (DTC), который обычно применяется к автомобилям OBD-II. Это может включать, но не ограничивается, автомобили от Buick, Chevy, GMC, Ford, Toyota, Nissan, Mercedes, Honda, Cadillac, Suzuki, Subaru и т. Д. Хотя общие, точные шаги ремонта могут варьироваться в зависимости от года, марки, модели. и конфигурация трансмиссии.

Когда код P062F сохраняется, это означает, что модуль управления трансмиссией (PCM) обнаружил внутреннюю ошибку производительности с электронно стираемым постоянным запоминающим устройством (EEPROM). Другие контроллеры также могут обнаруживать внутреннюю ошибку производительности PCM (в EEPROM) и вызывать сохранение P062F.

В автомобильных приложениях EEPROM предоставляет средства для чтения, стирания и перезаписи небольших объемов (байтов) программируемой памяти. Используя специальное программирование, EEPROM (или любая часть EEPROM) может быть стерта и перезаписана последовательно. EEPROM — это группа транзисторов, состоящая из трех частей. Обычно он съемный и фиксируется в специально разработанном гнезде внутри PCM. Когда неисправный PCM заменяется, EEPROM обычно необходимо удалить и повторно использовать в новом PCM. EEPROM и новый PCM нужно будет программировать как единое целое. Несмотря на то, что EEPROM допускает более 1 миллиона программных изменений и рассчитан на работу в течение сотен лет, он может быть чувствительным к чрезмерному нагреву и влажности.

Всякий раз, когда зажигание включено и PCM находится под напряжением, инициируются самотестирование EEPROM. Помимо выполнения самотестирования внутреннего контроллера, сеть контроллеров (CAN) также сравнивает сигналы от каждого отдельного модуля, чтобы убедиться, что каждый контроллер работает должным образом. Эти тесты выполняются одновременно.

Если PCM обнаруживает несоответствия в функциональности EEPROM, код P062F будет сохранен, и может загореться индикаторная лампа неисправности (MIL). Кроме того, если PCM обнаруживает проблему между любым из бортовых контроллеров, которая указывает на внутреннюю ошибку EEPROM, код P062F будет сохранен, и может загореться индикаторная лампа неисправности (MIL). Для включения контрольной лампы MIL может потребоваться несколько циклов отказа, в зависимости от предполагаемой серьезности неисправности.

P062F Ошибка EEPROM модуля внутреннего управления

Фотография ПКМ со снятой крышкой:

Какова серьезность этого кода неисправности?

Коды процессора модуля внутреннего контроля следует отнести к категории серьезных. Сохраненный код P062F может вызвать различные проблемы с управляемостью.

Каковы некоторые симптомы кода?

Симптомы кода неисправности P062F могут включать:

  • Широкий спектр проблем с управляемостью двигателя / трансмиссии
  • Нет условия запуска
  • Сниженная топливная эффективность
  • Заглох двигателя или остановка на холостом ходу
  • Отсутствие работы охлаждающего вентилятора

Каковы некоторые из распространенных причин появления кода?

Причины этого кода неисправности P062F могут включать:

  • Неисправный контроллер или ошибка программирования
  • Перегретый PCM
  • Повреждение водой
  • Неисправное реле питания контроллера или перегоревший предохранитель
  • Обрыв или короткое замыкание в цепи или разъемах в жгуте CAN
  • Недостаточное заземление модуля управления
  • Неисправный EEPROM

Каковы некоторые шаги по устранению неполадок P062F?

Даже для самого опытного и хорошо оснащенного профессионального специалиста диагностика кода P062F может оказаться сложной задачей. Также существует проблема перепрограммирования. Без необходимого оборудования для перепрограммирования невозможно будет заменить неисправный контроллер и провести успешный ремонт.

Есть несколько предварительных тестов, которые могут быть выполнены до того, как будет объявлено о неисправности отдельного контроллера. Потребуются диагностический сканер, цифровой вольт-омметр (ДВОМ) и источник достоверной информации о транспортном средстве.

Подключите сканер к диагностическому порту автомобиля и получите все сохраненные коды и данные стоп-кадра. Вы захотите записать эту информацию на всякий случай, если код окажется прерывистым. После записи всей соответствующей информации очистите коды и проведите тест-драйв автомобиля, пока код не будет сброшен или PCM не перейдет в режим готовности. Если PCM переходит в режим готовности, код является прерывистым, и его будет сложнее диагностировать. Состояние, из-за которого был сохранен P062F, может даже ухудшиться, прежде чем можно будет поставить диагноз. Если код сброшен, продолжайте с этого короткого списка предварительных тестов.

При попытке диагностировать P062F информация может быть вашим лучшим инструментом. Найдите в источнике информации о транспортном средстве бюллетени технического обслуживания (TSB), которые соответствуют сохраненному коду, транспортному средству (год, марка, модель и двигатель) и отображаемым симптомам. Если вы найдете правильный TSB, он может предоставить диагностическую информацию, которая поможет вам в значительной степени.

Используйте свой источник информации о транспортном средстве, чтобы получить виды разъемов, схемы контактов разъемов, указатели местоположения компонентов, электрические схемы и диагностические блок-схемы, относящиеся к рассматриваемому коду и транспортному средству.

Используйте DVOM для проверки предохранителей и реле блока питания контроллера. Проверьте и при необходимости замените перегоревшие предохранители. Предохранители следует проверять при нагруженной цепи.

Если все предохранители и реле работают должным образом, необходимо провести визуальный осмотр проводки и жгутов, связанных с контроллером. Вы также захотите проверить заземление шасси и двигателя. Используйте свой источник информации о транспортном средстве, чтобы получить местоположения заземления для связанных цепей. Используйте DVOM для проверки целостности заземления.

Визуально осмотрите контроллеры системы на предмет повреждений, вызванных водой, теплом или столкновением. Любой контроллер, поврежденный, особенно водой, считается неисправным.

Если цепи питания и заземления контроллера не повреждены, следует подозревать неисправный контроллер или ошибку программирования контроллера. Замена контроллера потребует перепрограммирования. В некоторых случаях вы можете приобрести перепрограммированные контроллеры на вторичном рынке. Для других транспортных средств / контроллеров потребуется перепрограммирование на борту, которое может быть выполнено только через дилерский центр или другой квалифицированный источник.

  • В отличие от большинства других кодов, P062F, вероятно, вызван неисправным контроллером или ошибкой программирования контроллера.
  • Проверьте целостность заземления системы, подключив отрицательный измерительный провод DVOM к земле, а положительный измерительный провод к напряжению батареи.

Связанные обсуждения DTC

  • Nissan Pathfinder 2019 года выпуска: код P062fЯ сделал полное ускорение, пока ехал, затем двигатель остановился, и я остановился. Я попытался завести двигатель, но он сразу выключился. Я отбуксировал его механику, который проверил OBD и обнаружил ошибку P062F. двигатель работает нормально отдельно от внешнего источника топлива….
  • Buick Regal Hybrid P2012F 062 годаПривет всем, на этой неделе работаю над машиной жены. Автомобиль не заводился, заводился, но, похоже, не хватило батареи, чтобы перевернуться. Будучи гибридом, он действительно может начать с нуля. Запуск двигателя прошел успешно, однако мил. Вставил в него свой сканирующий прибор и вытащил код P062F. Ха …

Нужна дополнительная помощь с кодом P062F?

Если вам все еще нужна помощь по поводу кода ошибки P062F, задайте вопрос в комментариях под этой статьей..

ПРИМЕЧАНИЕ. Эта информация представлена ​​только в информационных целях. Он не предназначен для использования в качестве рекомендаций по ремонту, и мы не несем ответственности за любые действия, которые вы предпринимаете с каким-либо автомобилем. Вся информация на этом сайте защищена авторским правом.

Техническое описание и расшифровка ошибки P062F

Сохраненный код P062F означает, что модуль управления трансмиссией (PCM) обнаружил ошибка электронной стираемой постоянной памяти запоминающего устройства (EEPROM) внутреннего модуля управления. Другие контроллеры также могут обнаружить внутреннюю ошибку работы PCM с электронной стираемой памятью и вызвать сохранение этого кода.

Код ошибки P062F – ошибка электронной стираемой постоянной памяти запоминающего устройства (EEPROM) внутреннего модуля управления

В автомобилях, электронная стираемая постоянная память используется как средство для чтения, стирания и перезаписи небольших объемов программируемой памяти. Используя специальное программирование, EEPROM может быть стерта, а в последствии перезаписана вновь.

EEPROM представляет собой блок транзисторов, состоящий из трех частей. Обычно он съемный и фиксируется в специально разработанном гнезде внутри PCM. При замене неисправного PCM, постоянную память обычно необходимо извлечь и повторно использовать в новом PCM.

EEPROM и новый PCM должны быть запрограммированы как единое целое. Несмотря на то, что EEPROM может быть запрограммирован более чем на 1 миллион изменений и рассчитан на сотни лет, он может быть чувствителен к перегреву и влаге.

При включении зажигания и подаче питания на PCM запускается самотестирование электронной стираемой постоянной памяти (EEPROM). Помимо выполнения самотестирования, сеть контроллеров (CAN) также сравнивает сигналы от каждого отдельного модуля. Чтобы убедиться, что каждый контроллер работает должным образом, эти тесты выполняются одновременно.

Если PCM обнаружит несоответствие в функциональности EEPROM, будет сохранен код P062F. Кроме того, если PCM обнаружит несоответствие между любым из бортовых контроллеров. Что указывает на внутреннюю ошибку EEPROM, данный код также будет сохранен.

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

Симптомы неисправности

Также они могут проявляться как:

Неисправность связанную с внутренним модулем следует отнести к категории серьезных кодов. Сохраненная ошибка P062F может внезапно и без предупреждения привести к серьезным проблемам с управляемостью.

Причины возникновения ошибки

Код P062F может означать, что произошла одна или несколько следующих проблем:

  • Неисправна электронная стираемая постоянная память запоминающего устройства (EEPROM).
  • Повреждение водой или перегревом.
  • Неисправно реле питания контроллера или перегоревший предохранитель.
  • Обрыв или короткое замыкание в цепи проводов.
  • Корродированный электрический разъем.
  • Шина CAN может быть неисправна и иметь короткое замыкание на массу или обрыв провода.
  • Недостаточное заземление модуля управления.
  • Иногда причиной является сам модуль PCM.

Как устранить или сбросить код неисправности P062F

Некоторые предлагаемые шаги для устранения неполадок и исправления кода ошибки P062F:

  1. Считайте все сохраненные данные и коды ошибок с помощью сканера OBD-II. Чтобы выяснить, когда и при каких обстоятельствах появилась ошибка P062F.
  2. Очистите коды ошибок с памяти компьютера и проведите тест-драйв автомобиля, чтобы выяснить, появляется ли неисправность снова.
  3. Проверьте электронную стираемую постоянную память запоминающего устройства (EEPROM).
  4. Если код ошибки появится снова, визуально осмотрите электрические провода и разъем модуля управления (PCM).
  5. Измерьте напряжение аккумуляторной батареи и сравните полученное значение со значением, указанным в технических условиях производителя.
  6. Проверьте целостность цепей питания и заземления модуля управления (PCM) с помощью мультиметра.
  7. Оцените работу модуля управления (PCM), следуя процедуре, установленной производителем автомобиля.
  8. Снова очистите код ошибки с памяти компьютера, проведите тест-драйв автомобиля, чтобы выяснить, решена ли проблема.

Диагностика и решение проблем

Если присутствуют коды питания ECM/PCM, их необходимо устранить, прежде чем пытаться диагностировать ошибку P062F.

Далее необходимо подключить сканер к диагностическому порту автомобиля и извлечь все сохраненные коды и данные. Запишите эту информацию на случай, если код окажется периодическим.

Записав всю необходимую информацию, удалите коды и проведите пробную поездку на автомобиле, пока код не будет сброшен или PCM не перейдет в режим готовности. Если PCM переходит в режим готовности, код является прерывистым и диагностировать его будет сложнее.

Проверка контроллера и электрической части

Используйте мультиметр для проверки предохранителей и реле питания контроллера. При необходимости проверьте и замените перегоревшие предохранители. Предохранители следует проверять при нагруженной цепи.

Если все предохранители и реле работают как положено, необходимо провести визуальный осмотр проводки и жгутов контроллера. Также необходимо проверить заземление шасси и двигателя.

Визуально осмотрите контроллеры системы на наличие признаков повреждения водой, температурой или при столкновении. Любой контроллер, который поврежден, особенно водой, следует считать неисправным.

Если цепи питания и заземления контроллера не повреждены, скорее всего неисправен сам контроллер или существует ошибка программирования. Для замены модуля управления потребуется его перепрограммирование.

В отличие от большинства других кодов, ошибка P062F, скорее всего, вызвана неисправным контроллером или его ошибкой программирования.

Некоторые производители вторичного рынка PCM предлагают предварительно запрограммированные контроллеры для определенных моделей. Обратитесь к поставщику автозапчастей указав серийный номер автомобиля, пробег и другие соответствующие данные.

На каких автомобилях чаще встречается данная проблема

Проблема с кодом P062F может встречаться на различных машинах, но всегда есть статистика, на каких марках эта ошибка присутствует чаще. Вот список некоторых из них:

  • Buick (Бьюик Регал, Энклав)
  • Cadillac
  • Chevrolet (Шевроле Импала, Траверс)
  • Ford (Форд F-150)
  • GMC Acadia
  • Honda
  • Mercedes
  • Nissan (Ниссан Альтима, Верса, Патфайндер, Х-Трейл)
  • Opel (Опель Антара, Виваро)
  • Subaru
  • Suzuki
  • Toyota (Тойота Ленд Крузер, Рав4, Хайлюкс)
  • Volvo
  • МАЗ

С кодом неисправности Р062F иногда можно встретить и другие ошибки. Наиболее часто встречаются следующие: P0625, P0626, P062A, P062C.

P062F Ошибка EEPROM модуля внутреннего управления

Это общий диагностический код неисправности трансмиссии (DTC), который обычно применяется к автомобилям OBD-II. Это может включать, но не ограничивается, автомобили от Buick, Chevy, GMC, Ford, Toyota, Nissan, Mercedes, Honda, Cadillac, Suzuki, Subaru и т. Д. Хотя общие, точные шаги ремонта могут варьироваться в зависимости от года, марки, модели. и конфигурация трансмиссии.

Когда код P062F сохраняется, это означает, что модуль управления трансмиссией (PCM) обнаружил внутреннюю ошибку производительности с электронно стираемым постоянным запоминающим устройством (EEPROM). Другие контроллеры также могут обнаруживать внутреннюю ошибку производительности PCM (в EEPROM) и вызывать сохранение P062F.

В автомобильных приложениях EEPROM предоставляет средства для чтения, стирания и перезаписи небольших объемов (байтов) программируемой памяти. Используя специальное программирование, EEPROM (или любая часть EEPROM) может быть стерта и перезаписана последовательно. EEPROM — это группа транзисторов, состоящая из трех частей. Обычно он съемный и фиксируется в специально разработанном гнезде внутри PCM. Когда неисправный PCM заменяется, EEPROM обычно необходимо удалить и повторно использовать в новом PCM. EEPROM и новый PCM нужно будет программировать как единое целое. Несмотря на то, что EEPROM допускает более 1 миллиона программных изменений и рассчитан на работу в течение сотен лет, он может быть чувствительным к чрезмерному нагреву и влажности.

Всякий раз, когда зажигание включено и PCM находится под напряжением, инициируются самотестирование EEPROM. Помимо выполнения самотестирования внутреннего контроллера, сеть контроллеров (CAN) также сравнивает сигналы от каждого отдельного модуля, чтобы убедиться, что каждый контроллер работает должным образом. Эти тесты выполняются одновременно.

Если PCM обнаруживает несоответствия в функциональности EEPROM, код P062F будет сохранен, и может загореться индикаторная лампа неисправности (MIL). Кроме того, если PCM обнаруживает проблему между любым из бортовых контроллеров, которая указывает на внутреннюю ошибку EEPROM, код P062F будет сохранен, и может загореться индикаторная лампа неисправности (MIL). Для включения контрольной лампы MIL может потребоваться несколько циклов отказа, в зависимости от предполагаемой серьезности неисправности.

P062F Ошибка EEPROM модуля внутреннего управления

Фотография ПКМ со снятой крышкой:

Какова серьезность этого кода неисправности?

Коды процессора модуля внутреннего контроля следует отнести к категории серьезных. Сохраненный код P062F может вызвать различные проблемы с управляемостью.

Каковы некоторые симптомы кода?

Симптомы кода неисправности P062F могут включать:

  • Широкий спектр проблем с управляемостью двигателя / трансмиссии
  • Нет условия запуска
  • Сниженная топливная эффективность
  • Заглох двигателя или остановка на холостом ходу
  • Отсутствие работы охлаждающего вентилятора

Каковы некоторые из распространенных причин появления кода?

Причины этого кода неисправности P062F могут включать:

  • Неисправный контроллер или ошибка программирования
  • Перегретый PCM
  • Повреждение водой
  • Неисправное реле питания контроллера или перегоревший предохранитель
  • Обрыв или короткое замыкание в цепи или разъемах в жгуте CAN
  • Недостаточное заземление модуля управления
  • Неисправный EEPROM

Каковы некоторые шаги по устранению неполадок P062F?

Даже для самого опытного и хорошо оснащенного профессионального специалиста диагностика кода P062F может оказаться сложной задачей. Также существует проблема перепрограммирования. Без необходимого оборудования для перепрограммирования невозможно будет заменить неисправный контроллер и провести успешный ремонт.

Есть несколько предварительных тестов, которые могут быть выполнены до того, как будет объявлено о неисправности отдельного контроллера. Потребуются диагностический сканер, цифровой вольт-омметр (ДВОМ) и источник достоверной информации о транспортном средстве.

Подключите сканер к диагностическому порту автомобиля и получите все сохраненные коды и данные стоп-кадра. Вы захотите записать эту информацию на всякий случай, если код окажется прерывистым. После записи всей соответствующей информации очистите коды и проведите тест-драйв автомобиля, пока код не будет сброшен или PCM не перейдет в режим готовности. Если PCM переходит в режим готовности, код является прерывистым, и его будет сложнее диагностировать. Состояние, из-за которого был сохранен P062F, может даже ухудшиться, прежде чем можно будет поставить диагноз. Если код сброшен, продолжайте с этого короткого списка предварительных тестов.

При попытке диагностировать P062F информация может быть вашим лучшим инструментом. Найдите в источнике информации о транспортном средстве бюллетени технического обслуживания (TSB), которые соответствуют сохраненному коду, транспортному средству (год, марка, модель и двигатель) и отображаемым симптомам. Если вы найдете правильный TSB, он может предоставить диагностическую информацию, которая поможет вам в значительной степени.

Используйте свой источник информации о транспортном средстве, чтобы получить виды разъемов, схемы контактов разъемов, указатели местоположения компонентов, электрические схемы и диагностические блок-схемы, относящиеся к рассматриваемому коду и транспортному средству.

Используйте DVOM для проверки предохранителей и реле блока питания контроллера. Проверьте и при необходимости замените перегоревшие предохранители. Предохранители следует проверять при нагруженной цепи.

Если все предохранители и реле работают должным образом, необходимо провести визуальный осмотр проводки и жгутов, связанных с контроллером. Вы также захотите проверить заземление шасси и двигателя. Используйте свой источник информации о транспортном средстве, чтобы получить местоположения заземления для связанных цепей. Используйте DVOM для проверки целостности заземления.

Визуально осмотрите контроллеры системы на предмет повреждений, вызванных водой, теплом или столкновением. Любой контроллер, поврежденный, особенно водой, считается неисправным.

Если цепи питания и заземления контроллера не повреждены, следует подозревать неисправный контроллер или ошибку программирования контроллера. Замена контроллера потребует перепрограммирования. В некоторых случаях вы можете приобрести перепрограммированные контроллеры на вторичном рынке. Для других транспортных средств / контроллеров потребуется перепрограммирование на борту, которое может быть выполнено только через дилерский центр или другой квалифицированный источник.

  • В отличие от большинства других кодов, P062F, вероятно, вызван неисправным контроллером или ошибкой программирования контроллера.
  • Проверьте целостность заземления системы, подключив отрицательный измерительный провод DVOM к земле, а положительный измерительный провод к напряжению батареи.

Связанные обсуждения DTC

  • Nissan Pathfinder 2019 года выпуска: код P062fЯ сделал полное ускорение, пока ехал, затем двигатель остановился, и я остановился. Я попытался завести двигатель, но он сразу выключился. Я отбуксировал его механику, который проверил OBD и обнаружил ошибку P062F. двигатель работает нормально отдельно от внешнего источника топлива….
  • Buick Regal Hybrid P2012F 062 годаПривет всем, на этой неделе работаю над машиной жены. Автомобиль не заводился, заводился, но, похоже, не хватило батареи, чтобы перевернуться. Будучи гибридом, он действительно может начать с нуля. Запуск двигателя прошел успешно, однако мил. Вставил в него свой сканирующий прибор и вытащил код P062F. Ха …

Нужна дополнительная помощь с кодом P062F?

Если вам все еще нужна помощь по поводу кода ошибки P062F, задайте вопрос в комментариях под этой статьей..

ПРИМЕЧАНИЕ. Эта информация представлена ​​только в информационных целях. Он не предназначен для использования в качестве рекомендаций по ремонту, и мы не несем ответственности за любые действия, которые вы предпринимаете с каким-либо автомобилем. Вся информация на этом сайте защищена авторским правом.

Читайте также:

      

  • Ошибка cat ауди а8
  •   

  • Мазда код ошибки 17
  •   

  • Схема трансмиссии нива шевроле
  •   

  • Пежо 406 схема спидометра
  •   

  • Эл схема магнитолы philips

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