епром в эбу что такое
Готовимся копать EEPROM ЭБУ
Сегодня первый удачный день экспериментов с «невиданной фигней»))
Если вы не увидели связи между тем и тем, то заваривайте чаёк, постараюсь рассказать о своих планах.
Знаете почему нельзя просто так взять и поставить себе ЭБУ от другой точно такой же машины?
Потому, что не даст иммобилайзер.
Иммобилайзер в реализации крайслера — это не просто коробочка, которая считывает ключ зажигания и разрешает запуск двигателя. Он как Агент Смит из Матрицы прописывает свой уникальный код в разные блоки управления, чтобы те стали единым целым. И да, в блок управления двигателя он себя тоже прописывает. Именно поэтому система отторгнет чужой ЭБУ, считав с него код от чужого иммо, и заблокирует его после нескольких неудачных попыток завестись. И именно поэтому на рынке предлагается приобретать комплект с ключами, личинками, новым замком зажигания и блоком SKIM. Решение хоть и рабочее, но проблемное по установке и дорогое. К тому же, в ЭБУ будет прописан чужой VIN, а это не есть хорошо (читал о случаях проверки сканером в МРЭО с последующим изъятием). Наверное это можно решить дилерским сканером или еще каким другим, но это пока не наш метод)
Гораздо привлекательней приобрести себе ЭБУ от себринга или стратуса и «подружить» его со своим авто самостоятельно. Не будем дальше тянуть кота за хвост: место, где «живет» иммо в ЭБУ давно известно — это пара микросхем EEPROM на блоке. Он там хранится в незашифрованном виде и даже без контрольных сумм в виде VIN-номера авто.
Также удалось выяснить, что в качестве этих ПЗУ используются микрухи ST M95040 или M95080. Стоят эти восьминожки каких-то смешных денег — 28 р/шт (можно взять с запасом на эксперименты)
А вот с программатором не все так просто в плане денег: профессиональные решения стоят очень не кисло. и так как я никогда не имел дела с программаторами, то мне в первых строках гугло-поиск предлагал именно их))
Совершенно случайно нашел программатор, который производит контора энтузиастов с пафосным названием «Электронные войска»)
Что ж, прикладываем к нему пустую микросхему и пробуем залить на нее дамп от Конкорда (не от самолета, конечно, от Крайслера))
…А перед этим сходим в магазин и купим кабель miniUSB! ))) Потому, что там распаян ни фига microUSB, а этот старый mini, от которого у меня уже ни устройств, ни шнуров не осталось.
Учимся прошивать ЭБУ Bosch ME7.5 / Правим Eeprom (на примере 06A906032SG)
Сразу предупреждаю, что я не программист и не электрик, все проделанные операции были на свой страх и риск, я никого не призываю повторять или считать данный пост руководством к действию. Представляю вашему вниманию мурзилку, которую я составил на основе найденной в сети и на драйве информации (список сайтов и литературы в конце поста).
Для тех, кто говорит, что можно прошить галетой, мппс и прочее — на момент написания поста в наличии лишь китайский синий FTDI.
I. Подключение ЭБУ на столе.
II. Считывание Eeprom на столе.
III. Подключение ЭБУ на автомобиле (bootmode).
IV. Считывание Eeprom на автомобиле (bootmode).
V. Правка Eeprom.
VI. Работа с флеш-памятью.
В блоке управления двигателя содержатся несколько типов памяти, каждая из которых выполняет свою функцию. Нас интересуют микросхемы памяти 95040 и AM29F800BB (и аналогичные). Каждая из них содержит в блоке очень важную информацию, при несоответствии которой блок может быть недееспособен.
95040 содержит в себе информацию о «паспорте» блока управления. В зависимости от версии иммобилайзера может содержать в себе все данные иммобилайзера, такие как логин, immo ID, immo Data, вин-номер и прочее. Тип данных этой микросхемы обозначается как EEPROM.
Другой тип неизменяемой памяти, хранящейся в AM29F800BB (или подобных), называется «флеш-памятью». Она содержит в себе все данные о работе двигателя, всех его режимах работы, его оснащенности и взаимосвязи между всеми его компонентами.
Поскольку я произвел полный свап ДВС, ЭБУ, приборной панели, ключей и прочего-прочего, то мне хотелось, чтобы все блоки отображали реальный вин-номер моей тачки. Для приборной панели это не составляет совершенно никаких проблем (Eeprom Programmer 1.19g). А вот с мозгами пришлось провести некоторые манипуляции.
I. Подключение ЭБУ на столе.
ЭБУ прикуривал используя компьютерный блок питания (чтобы он работал без компьютера, необходимо поставить перемычку между зеленым и черным проводом). +12В берем с желтого провода, землю с черного (предварительно лучше убедиться и все проверить мультиметром), также я повесил 12В лампочку на БП, чтобы он не работал вхолостую, в некоторых источниках указано, что работа БП без нагрузки может быть губительна для него.
Цепляем проводами к шнурку:
Пин 4, 5 > Масса
Пин 7 > К-линия (пойдет на 43 пин ЭБУ)
Пин 16 > +12В
к блоку управления:
Пин 1 > Масса
Пин 2 > Масса
Пин 3 > +12В
Пин 43 > К-линия (от 7 пина шнурка)
Пин 62 > +12В
Получилось что-то в этом духе:
Маленькие пинчики для подключения к блоку брал от разъема приборной панели (VAG N 907 647 01).
II. Считывание Eeprom на столе.
Для того, чтобы мы могли считать Eeprom нам потребуется ввести блок управления в бут-режим. Для этого необходимо указанную ногу флеш-памяти замкнуть на массу через 10 кОм резистор.
Для контроля над своими действиями и самим собой я повторял описанную выше процедуру несколько раз подряд, сравнивая слитый Eeprom в редакторе (Araxis Merge, например).
Eeprom слит, значит вы защищены от непредвиденных ошибок чтения/записи и всегда можете вернуть как было.
III. Подключение ЭБУ на автомобиле (bootmode).
Если вам не хочется заморачиваться с блоком питания, искать и подключать эти пины, то есть второй вариант подключения блока. Снимаем минусовую клемму АКБ, извлекаем ЭБУ из автомобиля, снимаем верхнюю крышку с блока, несем обратно в авто. Выворачиваем разъемы проводки таким образом, чтобы ЭБУ был подключен и при этом лежал на лобовом стекле (это касаемо шкоды, на других авто может отличаться).
IV. Считывание Eeprom на автомобиле (bootmode).
Шнур подключаем в разъем OBD. Все, что касается программной части и командной строки, то все остается как в части «II.». Изменяется лишь алгоритм ввода ЭБУ в бут-режим. Итак, мозги подключены и лежат на лобовом стекле. Один человек замыкает контакты, как показано в части «II.» Другой при этом поворачивает замок зажигания в включенное положение. Также ждем 3 сек, контакты размыкаем, начинаем через командную строку считывать Eeprom. Добавлю, что необходимо будет извлечь предохранитель приборной панели, чтобы приборка не мешала компьютеру соединиться с ЭБУ! При этом при возвращении предохранителя на место у вас загорится ошибка по подушкам «Нет связи с приборной панелью», которую придется потом стирать.
Работа с параметрами в EEPROM, как не износить память
Введение
Доброго времени суток. Прошлая моя статья про параметры в EEPROM была, мягко говоря, немного недопонята. Видимо, я как-то криво описал цель и задачу которая решалась. Постараюсь в этот раз исправиться, описать более подробно суть решаемой проблемы и в этот раз расширим границы задачи.
А именно поговорим о том, как хранить параметры, которые необходимо писать в EEPROM постоянно.
Особенность таких параметров заключается в том, что их нельзя писать просто так в одно и то же место EEPROM, вы просто израсходуете все циклы записи EEPROM. Например, если, необходимо писать время работы один раз в 1 минуту, то нетрудно посчитать, что с EEPROM в 1 000 000 циклов записей, вы загубите его меньше чем за 2 года. А что такое 2 года, если обычное измерительное устройство имеет время поверки 3 и даже 5 лет.
Кроме того, не все EEPROM имеют 1 000 000 циклов записей, многие дешевые EEPROM все еще производятся по старым технологиям с количеством записей 100 000. А если учесть, что 1 000 000 циклов указывается только при идеальных условиях, а скажем при высоких температурах это число может снизиться вдвое, то ваша EEPROM способно оказаться самым ненадежным элементом уже в первый год работы устройства.
Поэтому давайте попробуем решить эту проблему, и сделать так, чтобы обращение к параметрам было столь же простым как в прошлой статье, но при этом EEPROM хватало бы на 30 лет, ну или на 100 (чисто теоретически).
Итак, в прошлой статье, я с трудом показал, как сделать, так, чтобы с параметрами в EEPROM можно было работать интуитивно понятно, не задумываясь, где они лежат и как осуществляется доступ к ним
Для начала проясню, для чего вообще нужно обращаться по отдельности к каждому параметру, этот момент был упущен в прошлой статье. Спасибо товарищам @Andy_Big и @HiSER за замечания.
Если использовать способ, который предложил пользователь @HiSER- это будет означать, что для перезаписи одного параметра размером в 1 byte, я должен буду переписать всю EEPROM. А если алгоритм контроля целостности подразумевает хранение копии параметров, то для 200 параметров со средней длиной в 4 байта, мне нужно будет переписать 1600 байт EEPROM, а если параметров 500, то и все 4000.
Малопотребляющие устройства или устройства, питающиеся от от токовой петли 4-20мА должны потреблять, ну скажем 3 мА, и при этом они должны иметь еще достаточно энергии для питания модема полевого интерфейса, графического индикатора, да еще и BLE в придачу. Запись в EEPROM очень энергозатратная операция. В таких устройствах писать нужно мало и быстро, чтобы средний ток потребления был не высоким.
Очевидно, что необходимо, сделать так, чтобы микроконтроллер ел как можно меньше. Самый простой способ, это уменьшить частоту тактирования, скажем до 500 КГц, или 1 Мгц (Сразу оговорюсь, в надежных применениях использование режима низкого потребления запрещено, поэтому микроконтроллер все время должен работать на одной частоте). На такой частоте, простая передача 4000 байт по SPI займет около 70 мс, прибавим к этому задержку на сохранение данных в страницу (в среднем 7мс на страницу), обратное вычитывание, и вообще обработку запроса микроконтроллером и получим около 3 секунд, на то, чтобы записать один параметр.
Поэтому в таких устройствах лучше чтобы доступ к каждому параметру был отдельным, и обращение к ним должно быть индивидуальным. Их можно группировать в структуру по смыслу, или командам пользователя, но лучше, чтобы все они не занимали больше одной страницы, а их адреса были выравнены по границам страницы.
Как работать с EEPROM, чтобы не износить её
Те кто в курсе, можете пропустить этот раздел. Для остальных краткое, чисто мое дилетантское пояснение.
Как я уже сказал, число записей в EEPROM ограничено. Это число варьируется, и может быть 100 000, а может и 1 000 000. Так как же быть, если я хочу записать параметр 10 000 000 раз? И здесь мы должны понять, как внутри EEPROM устроен доступ к ячейкам памяти.
Итак, в общем случае вся EEPROM разделена на страницы. Страницы изолированы друг от друга. Страницы могут быть разного размера, для небольших EEPROM это, скажем, 16, 32 или 64 байта. Каждый раз когда вы записываете данные по какому-то адресу, EEPROM копирует все содержимое страницы, в которой находятся эти данные, во внутренний буфер. Затем меняет данные, которые вы передали в этом буфере и записывает весь буфер обратно. Т.е. по факту, если вы поменяли 1 байт в странице, вы переписываете всю страницу. Но из-за того, что страницы изолированы друг от друга остальные страницы не трогаются.
Таким образом, если вы записали 1 000 000 раз в одну страницу, вы можете перейти на другую страницу и записать туда еще 1 000 000 раз, потом в другую и так далее. Т.е. весь алгоритм сводится к тому, чтобы писать параметр не в одну страницу, а каждый раз сдвигаться в следующую страницу. Можно закольцевать эти действия и после 10 раз, снова писать в исходную страницу. Таким образом, вы просто отводите под параметр 10 страниц, вместо 1.
Анализ требований и дизайн
Все требования можно сформулировать следующим образом:
Пользователь должен задать параметры EEPROM и время обновления параметра
На этапе компиляции нужно посчитать количество необходимых страниц (записей), чтобы уложиться в необходимое время работы EEPROM. Для этого нужно знать:
Количество циклов перезаписи
Время обновления параметра
Время жизни устройства
Хотя конечно, можно было дать возможность пользователю самому задавать количество записей, но что-то я хочу, чтобы все считалось само на этапе компиляции.
Каждая наша переменная(параметр) должна иметь уникальный начальный адрес в EEPROM
Мы не хотим сами руками задавать адрес, он должен высчитываться на этапе компиляции
При каждой следующей записи, адрес параметра должен изменяться, так, чтобы данные не писались по одному и тому же адресу
Это также должно делаться автоматически, но уже в runtime, никаких дополнительных действий в пользовательском коде мы делать не хотим.
Мы не хотим постоянно лазить в EEPROM, когда пользователь хочет прочитать параметр
Обычно EEPROM подключается через I2C и SPI, передача данных по этим интерфейсам тоже отнимает время, поэтому лучше кэшировать параметры в ОЗУ, и возвращать сразу копию из кеша.
При инициализации мы должны найти самую последнюю запись, её считать и закешировать.
За целостность должен отвечать драйвер.
За алгоритм проверки целостности отвечает драйвер, если при чтении он обнаружил несоответствие он должен вернуть ошибку. В нашем случае, пусть в качестве алгоритма целостности будет простое хранение копии параметра. Сам драйвер описывать не буду, но приведу пример кода.
Ну кажется это все наши хотелки. Как и в прошлой статье давайте прикинем дизайн класса, который будет описывать такой параметр и удовлетворять нашим требованиям:
Посмотрим на то, как реализуются наши требования таким дизайном.
Пользователь должен задать параметры EEPROM и время обновления параметр
При каждой следующей записи, адрес параметра должен изменяться, так, чтобы данные не писались по одному и тому же адресу
Еще одной особенностью нашего противоизносного параметра является тот факт, что кроме самого значения, мы должны хранить еще и его индекс. Индекс нужен нам для двух вещей:
По нему мы будет рассчитывать следующий адрес записи
Для того, чтобы после выключения/включения датчика найти последнюю запись, считать её и проинициализировать значением по адресу этой записи кеширумое значение в ОЗУ.
Давайте посмотрим как реализован метод расчета текущего адреса записи:
Мы не хотим постоянно лазить в EEPROM, когда пользователь хочет прочитать параметр
Теперь самое интересное, чтобы проинициализировать копию в ОЗУ правильным значением, необходимо при запуске устройства считать все записи нашего параметра и найти запись с самым большим индексом. Наверняка есть еще разные методы хранения данных, например, связанный список, но использование индекса, показалось мне ну прямо очень простым.
В общем-то и все класс готов, полный код класса:
Результат
Собственно все, теперь мы можем регистрировать в списке любые параметры:
Что произойдет в этом примере, когда мы будем писать 10,11,12. 15 в наш параметр. Каждый раз при записи, адрес параметра будет смещаться на размер параметра + размер индекса + размер копии параметра и индекса. Как только количество записей превысит максимальное количество, параметр начнет писаться с начального адреса.
На картинке снизу как раз видно, что число 15 с индексом 5 записалось с начального адреса, а 10 теперь нет вообще.
В данном случае после сброса питания, при инициализации, будет найдена запись с индексом 5 и значением 15 и это значение и индекс будут записаны в кэшируемую копию нашего параметра.
Вот и все, надеюсь в этой статье цель получилось пояснить более детально, спасибо за то, что прочитали до конца.
Епром в эбу что такое
Архив. Обзорный материал
EEPROM – многократно перезаписываемая память, используемая для хранения временной информации, сохраняемой при отключении питания. В EEPROM хранится коэффициент коррекции СО (в системах, где есть СО-регулирование), пароль и коды иммобилизатора, а так-же паспортные данные автомобиля: VIN, номер кузова, двигателя, имя прошивки и т.д. Доступ к этой памяти возможен как извне, с помощью программ – загрузчиков, так и изнутри управляющей программы. (Например, регулировка с тестера или компьютера уровня СО).
Все ЭБУ, упомянутые в этой статье, в полном объеме поддерживаются универсальным программатором CombiLoader (опция) и программой ChipTuning PRO (опция).
При записи ЭБУ обновляется только основная часть программы и калибровки. Бутлоадер по умолчанию не обновляется.
Если после записи в ЭБУ прошивки, бутлоадер которой отличается от исходной, появляется «Ошибка ПЗУ», рекомендуется считать из ЭБУ прошивку (уже с исходным бутлоадером), открыть ее в редакторе калибровок CTPro, сохранить (будет пересчитана контрольная сумма) и снова записать в ЭБУ.
Для обновления бутлоадера необходимо нажать клавишу Shift до нажатия на кнопку Запись и удерживать ее до начала процесса «Стирание FLASH». Однако при этом следует иметь ввиду, что при ошибке записи бутлоадера ЭБУ может перестать выходить на связь.
В случае, когда при записи с обновлением бутлоадера произошла ошибка, и ЭБУ не выходит на связь, необходимо произвести запись ЭБУ через бутлоадер процессора. Для этого необходимо произвести доработку ЭБУ.
М 73 пр-ва АВТЭЛ (идентификатор ПО A 3 xxxxxx):
Процессор ЭБУ защищен. При записи обновляется только основная часть программы и калибровки.
Если после записи в ЭБУ прошивки, бутлоадер которой отличается от исходной, появляется «Ошибка ПЗУ», рекомендуется считать из ЭБУ прошивку (уже с исходным бутлоадером), открыть ее в редакторе калибровок CTPro, сохранить (будет пересчитана контрольная сумма) и снова записать в ЭБУ.
ВНИМАНИЕ! Работа с этим типом ЭБУ через бутлоадер процессора после доработки недопустима и может привести к необходимости замены процессора!
Памятка: Следует иметь ввиду, что после снятия при установке блока на авто необходимо придерживаться следующего нехитрого правила.
Никакого «самообучения» и дополнительной «адаптации» не производится, шаманские пляски с бубном, рекомендованные на некоторых сайтах ставят своей целью озадачить клиента всей значимостью процедуры и облегчить его страдания при расставании с денежными знаками :). Данные, потерянные из ОЗУ при снятии питания восстановятся через некоторое время.
Ручной перевод ЭБУ в режим программирования
Для перевода контроллера в режим программирования необходимо подать + 12 В на вход разрешения программирования 47 и на 18 контакт (не отключаемое питание контроллера) перед (!) имитацией включения зажигания ( 27 контакт ЭБУ). Ну и «масса» электроники – 19 контакт.
A. Соколов (UncleSam) рекомендует подключать контроллер, как показано на рисунке справа. Суть, в принципе, не меняется. Горящий светодиод сигнализирует о том, что контроллер НЕ НАХОДИТСЯ в режиме программирования.
* Как видно из таблицы, использование 37 контакта необязательно на большинстве систем. Но, при постоянном подключении этого контакта, различие систем только в выборе ножки разрешения программирования.
Если контроллер не выходит на связь, необходимо выключателем S 2 снять питание с 13 ноги (IGN, зажигание) и сделать паузу не менее 7 – 10 секунд, после чего повторить попытку соединения.
Универсальный программатор ЭБУ CombiLoader автоматически все сделает за Вас без всяких переключателей. Следует иметь ввиду что этот программатор считывает/записывает прошивки не в простом бинарном виде, а в формате, доступном для редактирования программой Chip Tuning Pro.
Как известно, многие ЭБУ (по-видимому, в целях снижения себестоимости ЭБУ) не содержат элементов, необходимых для перевода в режим программирования. Такие ЭБУ требуют доработки. Подробнее об этом здесь. Но это, так сказать «официальный путь», до есть, доработка, предусмотренная, но неустановленная производителем. Здесь же мы рассмотрим «альтернативные» пути, которые, как правило, несколько проще.
Для перевода этого блока в режим программирования достаточно замкнуть контакт, отмеченный треугольником на массу через резистор 4 – 6 кОм. Можно (и даже нужно) изготовить щуп с резистором внутри и крокодилом с другой. Он понадобится Вам и для работы с любыми другими ЭБУ, переводимые в бутстрап. Замыкать нужно на время установки связи, как только процесс пошел, перемычку можно убрать.
Есть еще один вариант – аккуратно «нарисовать» резисторы очень мягким простым карандашом, графит выполнит функции резистора. После программирования следует тщательно удалить следы графита.
МИКАС 11
Для перевода этого блока достаточно замкнуть контакт, отмеченный кружком, на массу. Ближайшая удобная масса – корпус кварцевого резонатора. Замыкать нужно на время установки связи, как только процесс пошел, перемычку можно убрать.
Программатор, редактор прошивок ЭБУ автомобилей для перепиновки блока управления двигателем от угона
Рекомендованные сообщения
Доброго времени суток всем!
Простите за невежество начинающего, почитал некоторые ветки в форуме и мануалы к программам и возник такой вопрос по теории работы ЭБУ – после прошивки блока рекомендуют очищать EEPROM – зачем это нужно делать(это вроде бы память ЭБУ в которой хранятся ошибки и некоторые параметры)
Доброго времени суток всем!
Простите за невежество начинающего, почитал некоторые ветки в форуме и мануалы к программам и возник такой вопрос по теории работы ЭБУ – после прошивки блока рекомендуют очищать EEPROM – зачем это нужно делать(это вроде бы память ЭБУ в которой хранятся ошибки и некоторые параметры)
Не во всех эбу можно очищать епром.
Как раз в еепроме и есть “смысл”…
Тогда конкретный вопрос – имеется Микас 7.1 241.3763 000-63 по 538, при перепрошивке стоит чистить EEPROM?
Тогда конкретный вопрос – имеется Микас 7.1 241.3763 000-63 по 538, при перепрошивке стоит чистить EEPROM?
Я менял регулятор ХХ на Калине. После этого у меня обороты начинают зависать на 3000 обмин. Может это быть вызвано не сброшенной EEPROM? ЭБУ с процессором ST10F273. Какая прошивка я еще не знаю.
А еще скажите пожалуйста. Часто возникает вопрос. EEPROM сбрасывается при отключении АКК или нет?
А еще скажите пожалуйста. Часто возникает вопрос. EEPROM сбрасывается при отключении АКК или нет?
Это энергонезависимая память, данные не сбрасываются.
EEPROM – многократно перезаписываемая память, используемая для хранения временной информации, сохраняемой при отключении питания. В EEPROM хранится коэффициент коррекции СО (в системах, где есть СО-регулирование), пароль и коды иммобилизатора, а так-же паспортные данные автомобиля: VIN, номер кузова, двигателя, имя прошивки и т.д. Доступ к этой памяти возможен как извне, с помощью программ – загрузчиков, так и изнутри управляющей программы. (Например, регулировка с тестера или компьютера уровня СО).
Что то я не понял насчёт УОЗ? А на 797+надо стирать?
Сотрёшь,потом не заведёшь.
Если не сбрасываются, то почему существует мнение, что при отключении АКК сбрасываются ошибки.
Вообщем чтобы сбросить EEPROM нужен хотя бы диагностический тестер, или OBD-II, и все сбросится через диагностичес кий разъем.
Если не сбрасываются, то почему существует мнение, что при отключении АКК сбрасываются ошибки.
А почему Вы решили, что коды ошибок храняться в eeprom? Ну а насчет существующих мнений. я промолчу..
Еще раз внимательно прочитайте по ссылке или погуглите..
Вообщем чтобы сбросить EEPROM нужен хотя бы диагностический тестер, или OBD-II, и все сбросится через диагностичес кий разъем.
Ничего Вы там не сбросите сканером..
Значит если тебе говорят где нить в СУПЕРМАСТЕРСКОЙ, что вот мол я щас тебе скину все твои ошибки, или скину тебе контроллер, а имеют только лишь тестер подключаемый через диагностический разъем, то можно их сразу посылать?
Значит если тебе говорят где нить в СУПЕРМАСТЕРСКОЙ, что вот мол я щас тебе скину все твои ошибки, или скину тебе контроллер, а имеют только лишь тестер подключаемый через диагностический разъем, то можно их сразу посылать?
Ну почему же посылать. со сканера можно сделать сброс ошибок и адаптаций, вот только еепром здесь не при делах.
)) улыбнула тема )) Как можно очистить ЕЕПРОМ? Откуда потом, если говорить понятным языком, блок управления двигателем, а именно его процессор, будет нужные для работы и управления данные брать?
Изменено 12 августа 2010 пользователем lexie
)) улыбнула тема )) Как можно очистить ЕЕПРОМ? Откуда потом, если говорить понятным языком, блок управления двигателем, а именно его процессор, будет нужные для работы и управления данные брать?
Ничего тут “улыбчивого” нет, все зависит от типа контроллера, на некоторых из них можно снести всю информацию, без всяких последствий, на некоторых просто удалить данные иммобилайзера. ну и т.д.
EEPROM – многократно перезаписываемая память, используемая для хранения временной информации, сохраняемой при отключении питания. В EEPROM хранится коэффициент коррекции СО (в системах, где есть СО-регулирование), пароль и коды иммобилизатора, а так-же паспортные данные автомобиля: VIN, номер кузова, двигателя, имя прошивки и т.д. Доступ к этой памяти возможен как извне, с помощью программ – загрузчиков, так и изнутри управляющей программы. (Например, регулировка с тестера или компьютера уровня СО).
Изменено 12 августа 2010 пользователем Yaroha
У мерседеса, например, ошибки лежат в EEPROM. При снятии клеммы они не сбрасываются. А у тойоты в ОЗУ. Чтобы сбросить ошибки – достаточно скинуть клемму.
Принцип действия [ править | править код ]
Принцип работы EEPROM основан на изменении и регистрации электрического заряда в изолированной области (кармане) полупроводниковой структуры.[1]
Изменение заряда («запись» и «стирание») производится приложением между затвором и истоком большого потенциала, чтобы напряженность электрического поля в тонком диэлектрике между каналом транзистора и карманом оказалась достаточна для возникновения туннельного эффекта. Для усиления эффекта туннелирования электронов в карман при записи применяется небольшое ускорение электронов путём пропускания тока через канал полевого транзистора (явление инжекции горячих носителей).
Чтение выполняется полевым транзистором, для которого карман выполняет функцию затвора. Потенциал плавающего затвора изменяет пороговые характеристики транзистора, что и регистрируется цепями чтения.
Основная особенность классической ячейки EEPROM — наличие второго транзистора, который помогает управлять режимами записи и стирания. Некоторые реализации выполнялись в виде одного трёхзатворного полевого транзистора (один затвор плавающий и два обычных).
Эта конструкция снабжается элементами, которые позволяют ей работать в большом массиве таких же ячеек. Соединение выполняется в виде двумерной матрицы, в которой на пересечении столбцов и строк находится одна ячейка. Поскольку ячейка EEPROM имеет третий затвор, то, помимо подложки, к каждой ячейке подходят 3 проводника (один проводник столбцов и 2 проводника строк).
Arduino EEPROM работа с памятью
EEPROM Arduino ➜ позволяет сохранять данные во время работы программы. Рассмотрим, как работать с EEPROM памятью Ардуино – запись и чтение различных типов данных.
EEPROM память Arduino позволяет сохранять важные данные во время работы программы, например настройки работы системы, даже при отключении питания или при перезагрузке микроконтроллера, так как она является энергонезависимой. Рассмотрим, как работать с EEPROM памятью Ардуино с примерами записи и чтения различных типов данных с помощью команд стандартной библиотеки EEPROM.h.
Список производителей EEPROM [ править | править код ]
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.
Литература [ править | править код ]
Как избежать износа EEPROM
Резюме: Если вы периодически обновляете некоторое значение в EEPROM каждые несколько минут (или несколько секунд), вы можете столкнуться с проблемой износа ячеек EEPROM. Чтобы избежать этого, требуется снижать частоту записей в ячейку. Для некоторых типов EEPROM даже частота записи чаще чем один раз в час может быть проблемой.
Самостоятельная диагностика
К несчастью, бывают случаи, когда компьютер не удается подключить к блоку. В этом случае автолюбителю понадобится осциллограф, кабель и специализированное программное обеспечение. Нужный софт найти несложно, а вот с осциллографом могут возникнуть проблемы. Далее, диагностику нужно будет продолжить уже при помощи тестера или же мультиметра. Автолюбителю придется внимательно изучить электрическую схему контроллера и производить замеры сопротивлений. Лучше всего обратиться к специалистам, но если у автолюбитель хорошо подкован в вопросам электротехники и имеет много времени для диагностики, выявить проблему он сможет и самостоятельно.
Прерывание по снижению уровня питания
В некоторых процессорах имеется прерывание по низкому уровню питания, которое можно использовать для записи одного последнего значения в EEPROM, в то время как система выключается по потере питания. В общем случае, вы храните интересующее значение в ОЗУ, и сохраняете его в EEPROM только при выключении питания. Или, возможно, вы записываете EEPROM время от времени, и записываете другую копию в EEPROM как часть процедуры выключения, чтобы убедиться, что самые последние данные запишутся.
Важно убедиться, что есть большой конденсатор по питанию, который будет поддерживать напряжение, достаточное для программирования EEPROM достаточно продолжительное время. Это может сработать, если вам нужно записать одно или два значения, но не большой блок данных. Осторожно, тут имеется большое пространство для ошибки!