Распиновка эбу digifant df1

Обновлено: 04.07.2024

Осенью был наконец-то установлен компрессор, и тут же встал вопрос настройки мозга, т.к. конфиг довольно сильно отличается от стока: другие форсунки, ст сж, объем, наддув. На более менее похожих чипах машина отказывалась работать, а единственные 2 человека, которые понимают в настройке ЭБУ Digifant - KDA и Vov@Syncro - уже давно не сидят на форуме. Установку других мозгов считаю неприемлемой и никогда на моей машине их не будет, поэтому стал разбираться, как работает дигифант. Также, не вижу никаких оснований доверять найденным в сети адресам таблиц и параметров, винолсу с его автопоиском карт тем более.

Единственный правильный путь - разреверсить весь мозг самому, что и было сделано в межсезонье. На это ушел не один месяц, поэтому считаю важным не потерять опыт и выложить свои наработки для всех. С другой стороны, это можно рассматривать как мануал по созданию инженерного блока с удобной онлайновой настройкой карт в 3D, поэтому описывать все буду максимально подробно.

Все сделанное можно повторить для любого другого мозга. Не нужно поддержки ни k-line, ни CAN, ни других протоколов.


Purplelightblue Corrado '90 R36
E3V series
Recaro Flockdiagonal half leather
Schwartz Exklusiv interior

Айтишник

Итак, вскрываем Digifant.


Фото из интернета:


Ключевыми элементами мозга являются микропроцессор Motorola MC68HC11A1FN, микросхема MC68HC25FN (для расширения регистров) и чип памяти EPROM 27C256 в корпусе DIP28, содержащий прошивку. При включении зажигания, микропроцессор считывает программу из чипа во внутреннюю память и выполняет. Все эти элементы находятся на небольшой плате, соединенной с основной шлейфом. По сути, все остальные элементы мозга это т.н. обвязка - они нужны для преобразования уровня сигналов, устранения помех, защиты от перепадов напряжения и тд.


EPROM это постоянная память, мозг может только её прочитать, для записи необходим программатор. Я использовал MiniPro TL866.
Вынул чип из мозга, считал дамп программатором и открыл в дизассемблере IDA Pro, указав архитектуру микропроцессора - Motorola 6811A1, адреса загрузки, как на скриншоте:

Таблица векторов прерываний находится по адресу 0xFFC0-0xFFFF. RESET располагается по 0xFFFE. Переходим на прерывание RESET. Из первых инструкций видно, что RAM располагается по 0xB000. Там следует проименовать все регистры согласно даташиту, поскольку IDA этого сама не сделала.

Теперь потребуется схема мозга. К счастью, добрый человек её уже нарисовал в 2002 году для дигифанта, она есть на форуме.
Если для другого мозга схемы нет - её нужно будет делать самостоятельно. Долго и кропотливо, но ничего сложного. Есть куча софта, который в этом поможет, типа P-CAD.

Собственно, далее прошивка несколько месяцев реверсилась, постоянно заглядывая в схему, Instruction Set и даташит. Поначалу было непонятно вообще нифига, как на этом скришоте:


но довольно быстро вкуриваешь, как работают микропроцессоры, и что имели ввиду инженеры bosch (кликабельно):


Purplelightblue Corrado '90 R36
E3V series
Recaro Flockdiagonal half leather
Schwartz Exklusiv interior

Айтишник

Несколько вспомогательных моментов при разборе кода:

1) Функции чтения из таблиц.

С этого можно начать анализ. Ищутся легко, т.к. небольшие, состоят из сплошной арифметики, работают с регистрами, а не с RAM. Адрес таблицы передается через индексный регистр X. Смотрим, откуда они вызываются и находим таким образом около 90% всех таблиц в прошивке.
Код чтения данных из оставшихся таблиц не вынесен в отдельные функции.




2) Почему на скриншоте значение 0x54 это 491Ом?

Сигналы, которые не надо оцифровывать (микрики), приходят напрямую на порты микропроцессора. Остальные, как ни странно, приходят на АЦП
Напряжение, подающееся на АЦП, должно быть в пределах опорного напряжения (пины процессора Vrh и Vrl - 5В и 0В). Далее АЦП выдает байт пропорционально.
Т.е. если на на пин приходит 0В, АЦП выдаст значение 0x00. 5В - 0xFF. 1,647B - 0x54.

Для привязки физических величин с большинства датчиков к напряжению на АЦП, гуглим, что такое делитель напряжения. Для датчиков ДТОЖ и ДТВ - гуглим модифицированное уравнение Стейнхарта-Харта. Для сигнала с датчика Холла - гуглим про фронт и спад сигнала, и читаем в даташите про счетчики и прерывания входных/выходных сравнений микропроцессора.

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


3) Гуглинг 80го левела

Найденные более ранние прошивки приходилось бы анализировать с нуля, что заняло бы слишком много времени. Переименование регистров, поиск функций чтения из таблиц, поиск самих таблиц по этим функциям, создание структур для описания форматов, поиск базонезависимых функций (hardcode) - все это было автоматизировано с помощью python-скриптов для IDA. Теперь я загружаю неизвестную прошивку, натравливаю скрипт и вуаля, огромный кусок прошивки разобран, основные таблицы найдены, проставлено множество комментариев.

Purplelightblue Corrado '90 R36
E3V series
Recaro Flockdiagonal half leather
Schwartz Exklusiv interior

минипредыстория вообщем появилось у меня 12в постоянно на форсунках, вследствии чего переливает пипец как, полазил по форуму и понял что похоже сгорели мозги, но прежде чем починить ЭБУ хотелось бы устроить причину что бы опять не погорели, а распространённая причина это отсутствие массы на нужных контактах, посмотрел по схеме 13 контакт (масса отрицательный вывод аккумулятора) прозванивается, 19 контакт (масса впускной коллектор) не прозванивается, где найти эту массу на коллекторе, можно ли к ней подобраться не снимая его?, и на каких контактах должна прозваниватся масса? заранее спасибо за помощь

img09

Распиновки ЭБУ Bosch

Посмотреть распиновки раздела

img09

View more

Распиновки ЭБУ Siemens

Посмотреть распиновки раздела

img09

View more

Распиновки ЭБУ Delphi

Посмотреть распиновки раздела

img09

View more

Распиновки ЭБУ Magnetti Marelli

Посмотреть распиновки раздела

img09

View more

Распиновки ЭБУ Denso

Посмотреть распиновки раздела

img09

View more

Распиновки ЭБУ Mazda

Посмотреть распиновки раздела

img09

View more

Распиновки ЭБУ Toyota

Посмотреть распиновки раздела

img09

View more

12.14.22 Система зажигания, блок управления Digifant / Volkswagen Golf II

Общие сведения

Система зажигания, блок управления Digifant Volkswagen Golf II

F60 – датчик положения дроссельной
заслонки на холостом ходу;
F81 – датчик положения дроссельной заслонки
при максимальной частоте вращения;
G19 – потенциометр измерителя воздушной смеси;
G40 – датчик Холла;
G42 – датчик температуры всасываемого воздуха;
G61 – датчик детонации;

проводка Golf 2 1.6 EZ Диагностика ошибок golf 2 rp 1.8 Ремонт ЭБУ DIGIFANT II VW PASSAT B3 Распознание движка 1.3 гольф 2 эбу и точки массы мономотроник vw b3

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