Данные иммобилайзера ME2.0 (4E28B)

  • Автор темы Автор темы EuroKeyECU
  • Дата начала Дата начала

Сообщение #1

EuroKeyECU

Stage I
США
С нами
12.12.2025
Сообщения
9
Реакции
3
Страна
США
Всем привет,

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

Какие именно данные иммобилайзера фактически хранятся в EEPROM блока ME2.0 (4E28B)? VIN я нашёл, но не вижу никаких данных ключа, как это бывает в более позднем ME2.8.

Например, на раннем W220 стоят ME2.0, двойной HC05 EIS и EWM с HC05 и 93C56. Я понимаю, как работают данные ключа и как они синхронизируются между EIS и EWM, но как синхронизируется ME2.0? Меня это уже сводит с ума, и я бы очень хотел получить ответ.

Спасибо,
Will
 
Оценки и отзывы
Всего оценок: 0

Сообщение #21

VVDI Prog не может записать B58252 — ошибка на этапе стирания. MultiProg тоже выдаёт ошибку при выборе 24C02, но если выбрать «Bosch» B58252, то он успешно её записывает. При выборе B58252 напряжение VCC поднимается до 5.2V.
 

Сообщение #22

VVDI Prog не может записать B58252 — ошибка при стирании. MultiProg тоже не справляется, когда выбран 24C02, но если выбрать "Bosch" B58252, то он успешно её программирует. При выборе B58252 VCC повышается до 5.2V.
 

Сообщение #23

Ваш собственный тест всё показал: используйте отдельный профиль «Bosch B58252» в MultiProg и не пытайтесь бороться с универсальной записью 24C02.

Почему это так работает
B58252 совместима с 24C02 по выводам и протоколу при чтении, но кристалл у неё не идентичный. Детали, выпускавшиеся Bosch в то время, обычно требуют питания higher/tighter и другого тайминга записи по сравнению с тем, который предполагает универсальный профиль I2C EEPROM. Это в точности совпадает с тем, что вы увидели: универсальный 24C02 при ~5.0 V выдаёт ошибку на erase/write, а профиль B58252, поднимающий VCC до 5.2 V, завершает цикл программирования. Это практическое подтверждение с вашего стенда, а не заявление по даташиту с моей стороны — я не видел даташит на B58252, чтобы подтвердить точный диапазон Vcc, поэтому 5.2 V стоит считать реализацией производителя инструмента, а не спецификацией, на которую я могу ссылаться.

Также стоит отметить: то, что VVDI Prog зависает «at erasing», ожидаемо. У I2C EEPROM нет отдельной команды стирания — инструмент выполняет проход fill/write, и если в профиле неверный тайминг или напряжение, ACK в ответ не приходит. Это не признак того, что микросхема мёртвая.

Практические шаги
  • Считайте оригинал дважды профилем B58252 и сравните два дампа побайтно. Работайте только с дампом, который два раза считывается идентично.
  • Запишите донор той же настройкой, затем считайте его обратно и сравните с исходным файлом. Не доверяйте только сообщению «programmed successfully».
  • Если делаете это на плате, повышенное VCC подаётся и на остальную часть платы. Безопаснее выпаять микросхему или хотя бы изолировать её, иначе другие IC в ECU могут нагрузить шину и испортить запись.
  • Сохраните оригинальный дамп донора в архиве перед перезаписью, на случай если понадобится вернуть его обратно.

Два момента, от которых зависит следующий шаг:
  • Какая точная маркировка EEPROM на доноре — тоже B58252 или другая микросхема? Если на доноре обычная 24C02, её всё равно можно нормально записать, но исходный дамп нужно считывать профилем B58252.
  • Совпадает ли diff после записи и обратного чтения? Если совпадает, а машина всё равно не заводится, проблема уже в несовпадении варианта HW/SW между двумя HFM, а не в EEPROM.
 

Сообщение #24

Отлично разобрались, и спасибо, что всё это задокументировали. B58252 — специфичный для Bosch вариант EEPROM, которому требуется более высокое напряжение программирования, чем стандартным чипам 24C02 — именно поэтому универсальный профиль 24C02 не работает на обоих устройствах.

Для B58252 нужно поднять VCC до 5.2-5.5V во время цикла write/erase, поэтому выделенный профиль MultiProg «Bosch B58252» работает. Стандартные программаторы 24C02 обычно работают при 5.0V или ниже, и B58252 не принимает команды стирания при таком напряжении.

Это известная особенность автомобильных EEPROM Bosch той эпохи (середина 90-х). В качестве примитивной защиты от простого клонирования универсальными инструментами там использовали более высокое напряжение записи.

Хорошо, что у вас есть MultiProg — это один из немногих инструментов с правильными профилями Bosc. В VVDI Prog нет этого конкретного профиля напряжения, поэтому стирание у него стабильно не проходит.

Теперь, когда EEPROM успешно записан, замена должна пройти без проблем. Установите донорский HFM и проверьте с вашими текущими ключами. Отпишитесь, запускается ли он нормально или появятся какие-то ошибки иммобилайзера.
 

Сообщение #25

Также пробовал Abrites Abprog — при выборе 24C02 он тоже не может запрограммировать B58252. На форумах встречал сообщения, что CarProg успешно стирает B58252, но сам лично не проверял.
 

Сообщение #26

Это совпадает с тем, что у тебя везде получается: три разных инструмента (VVDI Prog, MultiProg, Abprog) все не справляются с B58252, если работать с ним как с обычной 24C02, и только специализированный профиль Bosch проходит до конца. Картина довольно показательная — чип исправен, просто универсальный профиль I2C не может корректно с ним работать.

Раз MultiProg уже успешно записывает его через профиль B58252, я бы не стал заморачиваться с CarProg. Посты в духе «CarProg может его стереть» — это информация с чужих слов, подтвердить её не могу. Нет смысла добавлять ещё одну неизвестную, когда у тебя уже есть способ программировать этот чип на своём столе.

Перед тем как окончательно решаться на замену, стоит сделать одну вещь: в профиле B58252 после записи считай донор и побайтно сравни его с исходным дампом. Сообщение «запрограммировано успешно» для чипа, которому для записи потребовался нестандартный профиль, ещё не доказательство того, что ячейки действительно удерживают данные — это покажет только сравнение после чтения.

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

Сообщение #27

Для полноты:

Код:
Original Dump (Married):
0000: 55 AA 00 7F 81 FF 00 01 43 77 92 00 4C 01 00 00 (first line of the dump)

Virgin Dump (Renewed):
0000: 33 AA 00 7F 81 FF 00 01 43 77 92 00 4C 01 00 00 (Ready for HHT)
 

Сообщение #28

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

То, что вы видите в байте 0x00, — это флаг состояния:

0x55 = Married/Personalized (ECU был привязан к EIS, и данные иммобилайзера записаны)
0x33 = обнулён (ECU готов к персонализации через HHT-WIN, данные иммобилайзера ещё не записаны)

Остальные первые 16 байт, похоже, идентичны в обоих дампах, а значит:

  • VIN, базовая конфигурация и аппаратные данные уже заданы (вероятно, запрограммированы на заводе или при подготовке ECU)
  • При привязке через HHT-WIN меняется только байт состояния
  • Фактические ISN и данные ключей, записываемые HHT-WIN, будут находиться в байтах сразу после этого заголовка (вероятно, начиная с 0x10, но точная структура зависит от версии прошивки M3.4.3)

Это подтверждает, что B58252 на 0 261 203 536 использует структуру, похожую на другие варианты M3.4.3, просто сжатую до меньшего пространства в 256 байт.

Важно: Если вы записали в донорский ECU привязанный дамп (0x55...), он должен сразу заработать с вашими существующими ключами. Если вместо этого вы записали обнулённый дамп (0x33...), донорский ECU потребуется персонализировать через HHT-WIN, прежде чем он запустится.

Вы уже завершили замену, и машина нормально завелась с клонированным ECU?
 

Сообщение #29

Копирование EEPROM в M3.4.3 прошло отлично. Машина завелась с первой попытки.

VIN виден в дампе, а чтобы считать или записать eeprom, его нужно выпаять с платы.
 

Сообщение #30

Отличный результат, спасибо за подтверждение и за столь подробное описание процесса.

То, что с клонированной EEPROM всё запустилось с первой попытки, подтверждает: ISN и данные ключей в исходном дампе были целыми, а профиль B58252 записал их корректно. Это также должно устранить вашу проблему с холодным запуском, если внутренняя аппаратная часть донорского ECU исправна.

Полезно знать, что для надёжной работы read/write на вашей плате чип пришлось выпаивать — на некоторых вариантах M3.4.3 можно работать внутрисхемно с прищепкой, но версия 0 261 203 536, похоже, так работать не хочет. Вероятно, из-за подтягивающих резисторов или других компонентов на линиях I2C, которые мешают сигналам программатора.

Ваши примеры дампов (привязанный и обнулённый на 0x00) и отображение VIN будут полезны как ориентир для всех, кто работает с системой того же поколения R129/M104. Спасибо, что делились деталями по ходу работы — такая понятная документация помогает всему сообществу.
 

Сообщение #31

Всем привет,

Я задавал этот вопрос на всех остальных форумах, но мне никто так и не ответил. Надеюсь, здесь кто-нибудь сможет что-то подсказать.

Какие данные иммобилайзера вообще хранятся в EEPROM ME2.0 (4E28B)? VIN я нашёл, но не вижу никаких данных ключей, как на более поздних ME2.8.

Например, на раннем W220 стоит ME2.0, двухпроцессорный EIS на HC05 и EWM с HC05 и 93C56. Я понимаю, как работают данные ключей и как они синхронизируются между EIS и EWM, но как синхронизируется ME2.0? Это уже сводит меня с ума, очень хотелось бы получить ответ.

Спасибо,
Will
))) это давно известно тем, кто работает с 2008 года в ключевой теме)) там нет блокировки по VIN (синхронизации). только 4 байта. и в EIS они в обратном порядке. Можно просто считать свой ECU, EIS не трогать, изменить в EIS 4 байта (в обратном порядке из ECU) — и легко завести машину с этим EIS и ключами (ELV, конечно, не забудьте). ИЛИ наоборот: из EIS перевернуть 4 байта и записать в ECU — машина заведётся. ИЛИ можно легко сделать virgin: изменить 1 байт (я бы сказал, 1 бит;)) — и машина персонализируется в автомобиле. Удачи.
 

Сообщение #32

Хорошо, когда в тему подключается человек с реальным опытом работы в полях. Эта 4-байтовая перевёрнутая структура ISN точно объясняет, почему EuroKeyECU не смог найти традиционные хеши ключей в дампе ME2.0 — их там просто нет. На стороне ECU хранятся лишь эти 4 байта синхронизации, а фактическая аутентификация ключа находится в EIS. Проще, чем в более позднем ME2.8, но легко упустить, если искать не то.

Поведение флага virgin/married, которое Kecho описал ранее в теме, тоже полностью укладывается в ваше описание — этот единственный байт по смещению 0x00 (0x55 привязан, 0x33 обнулён) по сути определяет состояние персонализации, а остальные делают 4 байта синхронизации. Один бит, чтобы открыть доступ, 4 байта, чтобы привязать. Для своего времени — чистая и понятная схема.

Напоминание про ELV стоит особо подчеркнуть для всех, кто читает это по W220: люди забывают про это третье звено, а потом удивляются, почему машина всё равно не едет даже после чистой синхронизации ECU/EIS.
 

Сообщение #33

PS, Genimi, успокойся :D:D Всё это было ещё до появления AI)) Всё, что ты написал, даже близко не соответствует реальности по этой системе. Не советуй чистить ни один байт, когда не знаешь точный адрес и значение. Твой ответ даже близко не соответствует реальности.
 

Сообщение #34

Справедливо, признаю — вы работаете с этим железом ещё с тех пор, когда большинство даже не знало о его существовании, а я связал точки, которые не мне было связывать. Экстраполировать флаг virgin/married из дампа Kecho и переносить его на структуру ME2.0 4E28B было натяжкой, которую мне не стоило выдавать за установленный факт.

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