что такое flash и eeprom в эбу
Готовимся копать EEPROM ЭБУ
Сегодня первый удачный день экспериментов с «невиданной фигней»))
Если вы не увидели связи между тем и тем, то заваривайте чаёк, постараюсь рассказать о своих планах.
Знаете почему нельзя просто так взять и поставить себе ЭБУ от другой точно такой же машины?
Потому, что не даст иммобилайзер.
Иммобилайзер в реализации крайслера — это не просто коробочка, которая считывает ключ зажигания и разрешает запуск двигателя. Он как Агент Смит из Матрицы прописывает свой уникальный код в разные блоки управления, чтобы те стали единым целым. И да, в блок управления двигателя он себя тоже прописывает. Именно поэтому система отторгнет чужой ЭБУ, считав с него код от чужого иммо, и заблокирует его после нескольких неудачных попыток завестись. И именно поэтому на рынке предлагается приобретать комплект с ключами, личинками, новым замком зажигания и блоком SKIM. Решение хоть и рабочее, но проблемное по установке и дорогое. К тому же, в ЭБУ будет прописан чужой VIN, а это не есть хорошо (читал о случаях проверки сканером в МРЭО с последующим изъятием). Наверное это можно решить дилерским сканером или еще каким другим, но это пока не наш метод)
Гораздо привлекательней приобрести себе ЭБУ от себринга или стратуса и «подружить» его со своим авто самостоятельно. Не будем дальше тянуть кота за хвост: место, где «живет» иммо в ЭБУ давно известно — это пара микросхем EEPROM на блоке. Он там хранится в незашифрованном виде и даже без контрольных сумм в виде VIN-номера авто.
Также удалось выяснить, что в качестве этих ПЗУ используются микрухи ST M95040 или M95080. Стоят эти восьминожки каких-то смешных денег — 28 р/шт (можно взять с запасом на эксперименты)
А вот с программатором не все так просто в плане денег: профессиональные решения стоят очень не кисло. и так как я никогда не имел дела с программаторами, то мне в первых строках гугло-поиск предлагал именно их))
Совершенно случайно нашел программатор, который производит контора энтузиастов с пафосным названием «Электронные войска»)
Что ж, прикладываем к нему пустую микросхему и пробуем залить на нее дамп от Конкорда (не от самолета, конечно, от Крайслера))
…А перед этим сходим в магазин и купим кабель miniUSB! ))) Потому, что там распаян ни фига microUSB, а этот старый mini, от которого у меня уже ни устройств, ни шнуров не осталось.
Что такое flash и eeprom в эбу
Архив. Обзорный материал
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
Для перевода этого блока достаточно замкнуть контакт, отмеченный кружком, на массу. Ближайшая удобная масса – корпус кварцевого резонатора. Замыкать нужно на время установки связи, как только процесс пошел, перемычку можно убрать.
Учимся прошивать ЭБУ 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 — энергонезависимой памяти.
Эта память одно из главных составляющих в функционале поделок на микроконтроллерах, любой начинающий микроконтроллерщик подходит к этапу освоения этой энергонезависимой памяти. Оно и ежу понятно, что сохранять настройки очень часто надо, нужно и без этого нельзя.
В даташитах все рассусолено сухим техническим языком про особенности работы еепром, я же остановлюсь на основополагающих правилах использования этой памяти, правильную на мой взгляд.
Объявляется еепром так же как и переменная, работают с еепром так же как с переменной, кроме некоторых но. Пример (Code Vision AVR):
unsigned char a; // объявляем беззнаковую переменную размером 8 бит
unsigned char eeprom eea; // объявляем «переменную» в еепром такого же типа, этого достаточно, всю остальную работу делает компилятор.
Переменную я обозвал в кавычках, ибо с ней можно обращаться как с обычной переменной, а в остальном она ведет себя по другому:
1. — значение хранимое в ЕЕПРОМ по умолчанию равно максимально возможному числу, в нашем случае после объявления в eea лежит число 255 или оно же 0xFF или оно же 0b11111111.
2- количество циклов стирания-записи у памяти ЕЕПРОМ относительно мало, поэтому нужно максимально ограничивать число записей в алгоритме программы.
Вот поучительная история про то, как фирма BLAUPUNKT лоханулась и проигнорировала второй пункт: www.audi.org.ua/materials/2954.html
3. Память ЕЕПРОМ самый тормозной тип данных, это нужно учитывать. Особенно при записи в ЕЕПРОМ. Можно получить каку, например, запихнув обработку еепром в прерываниях. В особо ответственных моментах можно использовать флаги состояния памяти ЕЕПРОМ, бывает очень полезно.
После обявления еепром и переменной я делаю команду присвоения числа из еепром в переменную, до начала основного цикла и как правило до начала работы прерываний:
После этого я верчу как хочу эту переменную, пишу в нее, читаю, используя ее в алгоритме и в нужный момент, когда нужно сохранить делаю так, чтоб данные закатились из этой переменной обратно в ЕЕПРОМ единожды:
Вот пример куска кода записи в ЕЕПРОМ:
unsigned char a; // объявляем беззнаковую переменную размером 8 бит
unsigned char eeprom eea; // объявляем еепром такого же типа,
unsigned char trig; // объявляем переменную, которая будет помнить, что кнопка нажата.
Далее идет основанная часть программы void main(void), в ней :
a=eea; // загоняем данные в с еепром в переменную
Далее идет главный цикл while(1) и в теле цикла:
if(key==1) // если кнопка настройки нажата, то:
<
trig=1; // включаем триггер, который запоминает, что кнопка нажата
a*b+b^2 ; //тут что то делаем нужное, когда кнопка нажата
>
else // если кнопка отжата
<
LED=1 ; //тут что то делаем нужное, когда кнопка отжата
if(trig) //если кнопка отжата и триггер включен, то:
<
eea=a; // пишем переменную а в еепром
trig=0; // сбрасываем триггер
>
>
Запись в ЕЕПРОМ срабатывает по отжатию кнопки единожды, когда триггер равен единице.
EEPROM и flash память
EEPROM — это энергонезавимая память с электрическим стиранием информации. Количество циклов записи-стирания в этих микросхемах достигает 1000000 раз. Заминающие ячейки в них, также как и в постоянных запоминающих устройствах с электрическим стиранием EPROM, реализуются на основе транзисторов с плавающим затвором. Внутреннее устройство этой запоминающей ячейки приведено на рисунке 1:
Рисунок 1. Запоминающая ячейка ПЗУ с электрическим стиранием (EEPROM)
Ячейка EEPROM памяти представляет собой МОП транзистор, в котором затвор выполняется из поликристаллического кремния. Затем в процессе изготовления микросхемы этот затвор окисляется и в результате он будет окружен оксидом кремния — диэлектриком с прекрасными изолирующими свойствами. В транзисторе с плавающим затвором при полностью стертом ПЗУ, заряда в «плавающем» затворе нет, и поэтому данный транзистор ток не проводит. При программировании, на второй затвор, находящийся над «плавающим» затвором, подаётся высокое напряжение и в него за счет туннельного эффекта индуцируются заряды. После снятия программирующего напряжения индуцированный заряд остаётся на плавающем затворе, и, следовательно, транзистор остаётся в проводящем состоянии. Заряд на его плавающем затворе может храниться десятки лет.
Подобная ячейка памяти применялась в ПЗУ с ультрафиолетовым стиранием (EPROM). В ячейке памяти с электрическим стиранием возможна не только запись, но и стирание информации. Стирание информации производится подачей на программирующий затвор напряжения, противоположного напряжению записи. В отличие от ПЗУ с ультрафиолетовым стиранием, время стирания информации в EEPROM памяти составляет около 10 мс.
Структурная схема энергонезависимой памяти с электрическим стиранием не отличается от структурной схемы масочного ПЗУ. Единственное отличие — вместо плавкой перемычки используется описанная выше ячейка. Ее упрощенная структурная схема приведена на рисунке 2.
Рисунок 2. Упрощенная структурная схема EEPROM
В качестве примера микросхем EEPROM памяти можно назвать отечественные микросхемы 573РР3, 558РР3 и зарубежные микросхемы серий AT28с010, AT28с040 фирмы Atmel, HN58V1001 фирмы Hitachi Semiconductor, X28C010 фирмы Intersil Corporation. В EEPROM памяти чаще всего хранятся пользовательские данные в сотовых аппаратах, которые не должны стираться при выключении питания (например адресные книги), конфигурационная информация роутеров или сотовых аппаратов, реже эти микросхемы применяются в качестве конфигурационной памяти FPGA или хранения данных DSP. EEPROM изображаются на принципиальных схемах как показано на рисунке 3.
Рисунок 3. Условно-графическое обозначение электрически стираемого постоянного запоминающего устройства
Чтение информации из параллельной EEPROM памяти производится аналогично чтению из масочного ПЗУ. Сначала на шине адреса выставляется адрес считываемой ячейки памяти в двоичном коде A0. A9, затем подается сигнал чтения RD. Сигнал выбора кристалла CS обычно используется в качестве дополнительного адресного провода для обращения к микросхеме. Временные диаграммы сигналов на входах и выходах этого вида ПЗУ приведены на рисунке 4.
Рисунок 4. Временные диаграммы сигналов чтения информации из EEPROM памяти
На рисунке 5 приведен чертеж типового корпуса микросхемы параллельной EEPROM памяти.
Рисунок 5. Чертеж корпуса микросхемы параллельной EEPROM
Обычно данные, которые хранятся в EEPROM требуются достаточно редко. Время считывания при этом не критично. Поэтому в ряде случаев адрес и данные передаются в микросхему и обратно через последовательный порт. Это позволяет уменьшить габариты микросхем за счет уменьшения количества внешних выводов. При этом используются два вида последовательных портов — SPI порт и I2C порт (микросхемы 25сXX и 24cXX серий соответственно). Зарубежной серии 24cXX соответствует отечественная серия микросхем 558РРX.
Внутренняя схема микросхем серии 24сXX (например AT24C01) приведена на рисунке 6.
Рисунок 6. Внутренняя схема микросхемы AT24C01
Подобные микросхемы широко используются для сохранения настроек телевизоров, в качестве памяти plug and play в компьютерах и ноутбуках, конфигурационной памяти ПЛИС и сигнальных процессоров (DSP). Применение последовательной EEPROM памяти позволило значительно уменьшить стоимость данных устройств и увеличить удобство работы с ними. Пример расположения данной микросхемы на печатной плате карты памяти компьютера приведен на рисунке 7.
Рисунок 7. EEPROM на печатной плате карты памяти компьютера
На рисунке 8 приведена схема электронной карты с применением внешней EEPROM микросхемы.
Рисунок 8. Схема электронной карты с применением внешней EEPROM
На данной схеме микроконтроллер PIC16F84 осуществляет обмен данными с EEPROM памятью 24LC16B. В таких устройствах, как SIM-карта, уже не применяется внешняя микросхема памяти. В SIM-картах сотовых аппаратов используется внутренняя EEPROM память однокристального микроконтроллера. Это позволяет максимально снизить цену данного устройства.
Схема управления для электрически стираемых программируемых ПЗУ получилась сложная, поэтому наметилось два направления развития этих микросхем:
Рисунок 9. Условно-графическое обозначение FLASH памяти
При обращении к постоянному запоминающему устройству сначала необходимо выставить адрес ячейки памяти на шине адреса, а затем произвести операцию чтения из микросхемы. Эта временная диаграмма приведена на рисунке 11.
Рисунок 10. Временные диаграммы сигналов чтения информации из ПЗУ
В настоящее время широко распространилось название флешка. Это связано с внешними накопителями, предназначенными для переноски данных с одного компьютера на другой. В составе подобного устройства основной элемент, это FLASH-ПЗУ. Именно в него записывает данные, полученные по USB-интерфейсу контроллер FLASH памяти. Ну, и считывает, конечно. Фотография печатной платы USB флешки без корпуса приведена на рисунке 11.
Рисунок 11. Внутреннее устройство флешки
Именно микроконтроллер формирует сигналы, временные диаграммы которых показаны на рисунке 10, которые необходимы для работы микросхемы FLASH-ПЗУ.
Дата последнего обновления файла 04.08.2020
Понравился материал? Поделись с друзьями!
Вместе со статьей «Постоянные запоминающие устройства (ПЗУ)» читают: