Форум ForNext.ru
Мозговой штурм => Автоэлектроника => TCCS (ЭБУ от Toyota) проц. семейства MC6801 => Topic started by: mentat-vvo on 11 Февраль 2012, 21:35:40
-
Слил прошивки с микроконтроллеров, применяемых Denso в Тойотовских ЭБУ 151801-4451 (мотор 4A-GE) и Denso 15801-4570 (мотор 3Y-EU).
Процессоры в какой-то мере совместимы с Motorola 6801. Брутальный девайс для снятия кода (версия 1) и обе платы Denso на фото:)
-
Бинарники.
В блоке для 3Y (первое поколение) на плате надпись 6801. Изначально MC6801 делала моторола.
Здесь микроконтроллер - доработанный Hitachi (6356?) / Fujitsu клон. В нем 192 байт ОЗУ и 4кб ПЗУ.
upd:
запилена новая плата и код для считывания бинарника.
обновлена прошивка 4A-GE, на этот раз 100% верная. в старой были косяки. бинарник перезалил. Коллекция будет пополняться.
-
TOYOTA 3Y-EU DENSO TCCS EMULATOR
Эмулятор ЭБУ denso на базе микроконтроллера 6801. Cделан под схемотехнику 3Y-EU. Для 4A-GE схемотехника похожая, будет сделано позже.
Для 4Y-EC не подходит, там код принципиально другой, под считалку. И АЦП другой и по-другому подключен.
1G пока под вопросом, он сделан Fujitsu TENом и схемотехника тоже другая.
Запилен в Proteus. Код переложен на платформу Atmel AVR (ATMega128A) с использованием внутреннего 10-битного АЦП.
Стоковый 8-битный (по докам) внешний АЦП MB4053 в оригинале тоже разогнан до 10 бит. В стоковом коде даже имеется интерполяционная кривая, которая устраняет нелинейности АЦП. В эмуляторе это дает некоторую погрешность, потому что нелинейность АЦП не эмулируется ;D
Блок оперативки в 192 байта перенесен с адреса 0х40 на адрес 0х140, таблицы с ПЗУ переехали в ОЗУ. Написан код, транслирующий модификацию регистров таймеров МК 6801 в соответствующие регистры для ATMega128A
Сейчас идет обкатка кода и устранение ошибок трансляции, для того, чтобы заставить атмегу считать обороты. Пока (если обороты активны) стек постепенно растет, а не должен. Может быть, это связано с состоянием внешних портов.
Некоторые найденные переменные
MAP=0x154:0х155
RPM=0х0x18C:0х18D
RPMx25=0x189
Vref=0x161 (ADC@3v)
Vzero=0x15D(ADC@0v)
IGN=0х1B0 (угол, пока не понятно как перевести в градусы)
Vbatt=0x15A
CLT=0x160
Проект (http://yadi.sk/d/2dQZN6aqHrUBG) в протеусе
Прошивка (http://yadi.sk/d/4BLfWC5wHrUBv) атмеги для него
-
Таблица УОЗ (http://mikrob.ru/download/file.php?id=317656) для 3Y, пока в попугаях.
(http://mikrob.ru/download/file.php?id=317641&mode=view)
-
Удалось ли добраться до топливных карт и параметров холостых оборотов?
-
топливных карт там несколько
какие именно параметры хх интересуют? у старых тойот для хх свои карты, там контакт IDL переключает ездовые карты от ХХ.
-
У меня Спринтер в 104 кузове 4ВД двигатель 4А-FE. Обороты ХХ пока не проедишся 1000-900, после езды ниже 800 не опускаются. Возможно ли понизить обороты ХХ и подругому выставить их зависимость от температуры двигателя?
-
Да. Это возможно, у меня разработана специальная плата для этих целей.
Дело все в том, что комп на 4А напрямую ХХ не управляет, у него тупо нет для этого своего клапана.
Управление прогревочными там идет с помощью клапана добавочного воздуха, который со временем изнашивается (устает биметаллическая пластина, пружина, обмотка нагревателя)..
Такая же беда была на 3Y. Пока я им владел, поставил вместо штатного самодельный клапан РХХ (от ваза, шаговый) через переходник, датчик температуры в голову, подключил платку (http://forum.fornext.ru/index.php?topic=42.0) (урезанный EFI VEMS 2.2 самопальный) и у меня ушла проблема с холостыми. В последней версии (имеется в наличии) эта плата может управлять и форсункой холодного пуска. Могу продать незадорого (1000р, в комплекте программа для настройки и кабель для программирования, за подробностями в ЛС).
вот такая плата (http://forum.fornext.ru/index.php?topic=42.0) делает все, что нужно. по сути это полноценный ЭБУ, который (при подключении всех датчиков) может управлять ДВС самостоятельно, но только с вакуумным трамблером. Зажиганием тоже может, но это возможно только при наличии карты, настроить нереально - нет канала на датчик детонации. Родной комп от 4А для точного управления ХХ к сожалению невозможно доработать - он изначально не может управлять электрическим клапаном ХХ. Питание на клапан добавочного воздуха подается сразу после включения реле ЕФИ и блоком никак не управляется.
-
С ХХ теперь понятно. А подкорректировать топливные карты для равномерной тяги при разгоне возможно? Или как вариант таким редактированием немного форсировать двигатель или наоборот задушить для экономии горючего получиться?
-
данный блок не позволяет что-либо делать с топливными картами, у него пзу вшито в контроллер и является однократно-программируемым.
в вашем случае можно воткнуть 4А-ГЕ (поставить голову от ГЕ, вместе с мозгами от него же)
ну или взять широкополосный (ШЛЗ) датчик, наподобие LC-1, с выходом под узкополосный, который идет в ЭБУ вместо старого.
Характеристика на узкополосном выходе ШЛЗ задается пользователем. Изменяя х-ку можно подправлять смесь в зависимости от желаний в определенном диапазоне оборотов (на равномерных участках топливной карты, где идет коррекция по лямбда-зонду).
Цена ШЛЗ 4500 контроллер + 2800-3400 за датчик, цены на www.ebay.com
Учитывая стоимость контрактного движка (4А) от 17000 и 4A-GE от 30000, врядли это целесообразно...
Исправный 4А тянет равномерно. Тут проблема или в зажигании(коммутатор, катуха, датчики в трамблере), инжекторах (льют или кончился регулятор давления топлива) или в ДПДЗ (датчик воздушной заслонки очень важен в этом компе) или все это сразу. Обычно дергается из-за регулятора давления или ДПДЗ.
-
Да видимо с 4А заморачиваться не стоит. Хотел тогда узнать на будущее в штатных ЭБУ от двигателей 3S-GE и 3S-GTE возможно ли править топливные карты или тоже можно только снимать показания с датчиков?
-
в старых в тойотах нельзя это делать
в принципе, они не программируются, совсем.
поэтому и ставят vems, aem и прочие
upd:
программить параметры таки можно, но требуется специальный программно-аппаратный комплекс и длительные исследования где какой параметр хранится. документации по протоколу в общем доступе практически нет.
-
Пришла заводская плата для считывания инфы. Буду изучать содержимое "неизвестных" регистров хитачевского клона моторолы 6801.
Все-таки хочется завершить начатое. Запилю монитор для связи с ПК по ком-порту.
На очереди процессор на 12 МГц. Этот уже интереснее, ставился в 1G-EU/FE и еще много куда. Таблицы заводских углов еще никому не мешали ;D
-
Очень интересно, как что-то накопаешь распиши поподробней.
-
Вот такие камни заказал, самые близкие из программируемых аналогов того, что стоит в старых ЭБУ DENSO.
А сейчас перекладываю код 6801 на платформу 68HC11, для того, чтобы погонять его в Proteus с эмуляцией датчика вращения и ВМТ. Можно будет загнать модифицированный код в реальный 68HC11 (памяти больше (256 байт ОЗУ и 8 кб ПЗУ, таймеров больше, есть встроенные АЦП). Модификация может заключаться, например, в использовании шагового КХХ, смене инжекторов на другие (например, от 3S) и тд.
upd: микроконтроллеры получены, с помощью них будет изучаться работа АЦП для более точного воспроизведения в эмуляторе на ядре HC11. Код АЦП занимает много ресурсов этого и без того небольшого МК, а в HC11 АЦП встроен, 8-битный, правда.
-
Такие контроллеры кажется на старых ЭВМ стояли, залепленные фольгой.
-
В жестких дисках и дисководах могли быть такие.
Вот так выглядит платка для снятия заводской прошивки с микроконтроллера в режиме 0 (внешняя память).
Сейчас мне идет со штатов ЭБУ для 4Y-EC, сниму с него для начала заводскую таблицу УОЗ.
обновлено: прошивка лежит на первой странице темы
-
Снял код с камня от 4A-GE с помощью новой платы. Нашел отличия. На первой версии платы был дополнительный микроконтроллер (AtTiny2313), сигнал считывал по параллельной шине и передавал в комп по RS232, а в новой версии напрямую 6801 передает через свой последовательный порт на скорости 7800 кбит/с.
-
Очень интересно, как что-то накопаешь распиши поподробней.
сколько ножек у микроконтроллера в ЭБУ 4А? 42 или 40?
-
Код для ЭСУД Toyota 3Y-EU фирмы Nippon Denso ( до 1992 года) переложен на проц MC68701.
Версия 1 уже тестируется, порт связи подключен к выходу W (на лампу чек), скорость 7812 бод. Периодически ресетится микрухой, отвечающей за предотвращение его "зависания". Таймер инициализирован только для опроса АЦП и вывод импульсов на инжектора.
Версия 2 запилена, пофиксены ошибки версии 1, добавил код правильной инициализации и опроса портов таймера функции 2 (расчет оборотов и формирование сигнала УОЗ). Пришлось пожертвовать подпрограммой проверки памяти и таблицей УОЗ в пользу кода, выводящего в терминал нужную мне инфу.
В следующей версии попробую сделать полный клон микропрограммы, но, опять же, без проверки памяти - 1:1 с совпадением нужных адресов не помещается.