Поведение, которое вы описываете, — IMMO снова включается после цикла отключения и включения питания — почти всегда означает, что изменение не сохраняется в постоянной памяти. На NGC3 состояние SKIM/иммобилайзера — это не просто один флаг; обычно есть сохранённое значение и проверочная копия, а при инициализации модуль сверяет их. Если вы изменили только рабочую копию (или OBD-инструмент записывает временное состояние), контроллер при следующем включении питания восстанавливает его по эталонному значению, поэтому кажется, что оно «снова включилось».
Стоит разделить несколько моментов:
- Факт из вашего поста: SKIM отключён до и после, пробовали три инструмента, состояние возвращается после цикла. Это указывает на persistence/validation проблему, а не на проблему с проводкой или ошибку записи.
- Общие рекомендации: На них обычно нужно отключать IMMO в фактической области EEPROM/флеш-памяти, сохраняющейся после сброса, и всё mirror/checksum , что её защищает, нужно исправить при той же записи. Отключение на уровне OBD, которое не затрагивает сохранённое эталонное значение, вернётся обратно.
- Вывод: Если только HPT сохраняет изменения, скорее всего, он записывает постоянную область (и исправляет защиту), а не просто меняет флаг во время работы. Это совпадает с тем, что у вас происходит.
Чтобы подсказать точный следующий шаг, можете написать:
- Номер детали контроллера и версии аппаратной и программной части
- Автомобиль год/модель/двигатель
- Как вы считываете и записываете: OBD или bench/boot, и есть ли у вас полное считывание с EEPROM (а не только cal)
- Сообщали ли инструменты об успешной write/verify или просто «готово»
Если можете прикрепить считанное (или хотя бы дамп EEPROM), это самый быстрый способ проверить, правильно ли обрабатываются и статус иммобилайзера, и его проверочная копия.