Диагностика двигателя, логгирование и прошивка ECU. |
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Диагностика двигателя, логгирование и прошивка ECU. |
24.4.2012, 22:07
Сообщение
#801
|
|
7*#2&$%@ Группа: Технический Маньяк Сообщений: 1845 Регистрация: 9.10.2011 Из: Москва, Дмитровское ш. Вне форума Репутация: 71 |
|
|
|
24.4.2012, 22:23
Сообщение
#802
|
|
Супер Технический Маньяк Группа: Почетные ветераны Сообщений: 527 Регистрация: 4.11.2011 Из: Подольск -> Клёново Вне форума Авто: Lancer IX 1.6 AT Turbo Репутация: 57 |
|
|
|
27.4.2012, 22:29
Сообщение
#803
|
||
Мозгодел Группа: Технический Маньяк Сообщений: 631 Регистрация: 20.2.2012 Из: Пятигорск Вне форума Авто: Mitsubishi Carisma 1,8 DOHC MT Репутация: 48 |
Интересно, кто-нибудь пробовал отключать вторую лямбду програмно, и полностью её выкинуть. У меня возникла проблемка с этим.
Если отключаю по FAA, как на рисунке: то вроди бы всё нормально, ошибки не вылазиют, но если присмотреться повнимательнее, то оказывается, что перестают работать все топливные коррекции, кроме мгновенной " Oxygen Feedback Trim (STFT) ". А это не есть гуд. Если возвращаю на место единицу в таблице, коррекции начинают работать, но почти сразу вылазиет ошибка 141 (нагревательный элемент заднего кислородного датчика). Может какие-то биты тоже надо менять в таблице, что бы адекватно отключить второй лямбдик, без потери топливных коррекций. Кто знает, отзовитесь (IMG:style_emoticons/default/help.gif) |
|
|
||
28.4.2012, 0:01
Сообщение
#804
|
|
Супер Технический Маньяк Группа: Администраторы Сообщений: 818 Регистрация: 29.5.2009 Из: Нижний Новгород Вне форума Репутация: 57 |
Блин народ эту тему кто ни то читает ??
Про отключение лямбды по FAA и не рабочие тримы уже писал и не только я. Уже обмусоливали не раз. Отключить лямбду заднюю по нормальному можно только через хитрый алгоритм-эмулятор который дает задержку сигнала от первой. За основу Фалконом был взят эмулятор rearO2 от Тэфры (Тэфрамод V7 под 965ю прошивку от Эво) но был полностью переработан т.к. не работал должным образом. В итоге лямбду вторую можно убирать, чек не горит и тримы работают. |
|
|
28.4.2012, 3:39
Сообщение
#805
|
|
Turbo Stackwalker Группа: Технический Маньяк Сообщений: 626 Регистрация: 1.8.2011 Из: Челябинск Вне форума Авто: MMC Colt CZT Репутация: 28 |
|
|
|
28.4.2012, 11:09
Сообщение
#806
|
|
Технический Маньяк Группа: Технический Маньяк Сообщений: 201 Регистрация: 9.8.2010 Из: Крым, Ялта Вне форума Авто: Lancer9-07 2L AT LPG, 80230006 Репутация: 26 |
Отключить лямбду заднюю по нормальному можно только через хитрый алгоритм-эмулятор который дает задержку сигнала от первой. За основу Фалконом был взят эмулятор rearO2 от Тэфры (Тэфрамод V7 под 965ю прошивку от Эво) но был полностью переработан т.к. не работал должным образом. В итоге лямбду вторую можно убирать, чек не горит и тримы работают. Поправка. Эмулятор меняет не только задержку но и форму сигнала. И никакой тефрин эмулятор не был взят мной за основу - у тэфры там бредятина, а не эмулятор, из-за него загорался чек, не говоря уже о том, чтобы доверить такому "эмулятору" обратную связь смесеобразования. |
|
|
28.4.2012, 15:36
Сообщение
#807
|
||
Технический Маньяк Группа: Технический Маньяк Сообщений: 263 Регистрация: 12.7.2011 Вне форума Авто: MMC Galant 2.0, Ralliart 2.0T Репутация: 1 |
Интересно, кто-нибудь пробовал отключать вторую лямбду програмно, и полностью её выкинуть. У меня возникла проблемка с этим. Странно, у меня на 4B11T если там поставить "0" - тримы работают.Если отключаю по FAA, как на рисунке: то вроди бы всё нормально, ошибки не вылазиют, но если присмотреться повнимательнее, то оказывается, что перестают работать все топливные коррекции, кроме мгновенной " Oxygen Feedback Trim (STFT) ". А это не есть гуд. Если возвращаю на место единицу в таблице, коррекции начинают работать, но почти сразу вылазиет ошибка 141 (нагревательный элемент заднего кислородного датчика). Может какие-то биты тоже надо менять в таблице, что бы адекватно отключить второй лямбдик, без потери топливных коррекций. Кто знает, отзовитесь (IMG:style_emoticons/default/help.gif) |
|
|
||
28.4.2012, 15:59
Сообщение
#808
|
|
Мозгодел Группа: Технический Маньяк Сообщений: 631 Регистрация: 20.2.2012 Из: Пятигорск Вне форума Авто: Mitsubishi Carisma 1,8 DOHC MT Репутация: 48 |
Цитата Блин народ эту тему кто ни то читает ?? Про отключение лямбды по FAA и не рабочие тримы уже писал и не только я. Уже обмусоливали не раз. Ну, не ругайся. Два раза сначала читал, значит где-то пропустил. Придётся опять всё перечитывать. Цитата Поправка. Эмулятор меняет не только задержку но и форму сигнала. И никакой тефрин эмулятор не был взят мной за основу - у тэфры там бредятина, а не эмулятор, из-за него загорался чек, не говоря уже о том, чтобы доверить такому "эмулятору" обратную связь смесеобразования. Очень интересно, а сложно делается? Или проще придумать небольшую радиосхемку, с теми же функциями, берущую за основу сигнал первой лямбды. И впаять её внутрь мозгов, как вариант. Тоже могу на досуге че-нить придумать. |
|
|
28.4.2012, 18:39
Сообщение
#809
|
|
Технический Маньяк Группа: Технический Маньяк Сообщений: 201 Регистрация: 9.8.2010 Из: Крым, Ялта Вне форума Авто: Lancer9-07 2L AT LPG, 80230006 Репутация: 26 |
Очень интересно, а сложно делается? Или проще придумать небольшую радиосхемку, с теми же функциями, берущую за основу сигнал первой лямбды. И впаять её внутрь мозгов, как вариант. Тоже могу на досуге че-нить придумать. Схемку трудновато будет настраивать, а эмулятор полностью настраивается, ведь от показаний ЛЗ2 зависит выбор параметров работы ЛЗ1, поэтому, все эти проставки и схемки годятся чтобы не горел чек, но тримы с ними надо отключать иначе там будет бред. |
|
|
30.4.2012, 12:26
Сообщение
#810
|
|
Технический Маньяк Группа: Технический Маньяк Сообщений: 201 Регистрация: 9.8.2010 Из: Крым, Ялта Вне форума Авто: Lancer9-07 2L AT LPG, 80230006 Репутация: 26 |
А можешь помоч реализовать такой эмулятор в моей прошивке? Желание помочь есть, позволят ли возможности. (IMG:style_emoticons/default/pardon.gif) Наводящий вопрос, менять код ты сам можешь? Если я дам код/таблицы эмулятора и объясню как его врезать в основной код - справишься? Цитата Может проставку под вторую ЛЗ? с дырочкой 2мм... и ничего отключать не надо... Если при этом не отключить тримы, получишь неправильную стехиометрию. "Лучше едет, но на поллитра-литр больше ест" - звучит знакомо? (IMG:style_emoticons/default/tongue.gif) От себя добавлю - в круизе будет переливать, под нагрузкой недоливать, оно надо? У меня на последней заправке пару дней назад получилось в городе на 2 литра расход меньше стокового бензинового... правда, оказалось, что в колесах давление с зимы поднялось до 2.9 (IMG:style_emoticons/default/laugh.gif) Тут меня andr_mozg, который тоже влип с неубираемой детонацией на 2л, подтолкнул посмотреть, как же там считается эта детонация... Оказалось, что в атмосферном 4Ж63 детонация считается не так как у всех других, похоже на эво, но "фоновый шум" двигателя определяется по-другому. А в 1.6 там с детонацией вообще что-то страшное накручено, но при этом фон считается как в эво. Отсюда возникли вопросы, кто знает ответы, помогите разобраться. 1. В прошивке есть два режима работы ДД - некие "одинарный" и "тройной", при переключении в "тройной" все переменные вольтажа сразу умножаются на три - как я понимаю, изменяется масштаб? При этом переключение режима прописывается куда-то в периферию - это что, меняется чувствительность или полоса датчика ДД, он у нас какой-то регулируемый, что-ли? 2. В алгоритм рассчета детонации заложен "уровень шумности" двигателя, при этом там есть 4 уровня: самый тихий 0-2000 оборотов, шумнее 2000-3500, еще шумнее 5500-8000, самый шумный 3500-5500. В придачу к этому в "тройном" режиме есть код под разные дополнительные константы этого уровня для оборотов ниже 2300 и для оборотов выше, но при этом сами константы ОДИНАКОВЫЕ. Собственно, сам вопрос, почему ММС именно так распределила шумность 4Ж63, может они занизили "шумность" 4Ж63 на оборотах меньше 2000, тем самым задрав чувствительность ДД, что и дает практически неуправляемую детонацию на малых оборотах? Я вынес все связанные с этим переменные и таблицы в РАМ, после следующей перепрошивки можно будет покрутить эти ручки и посмотреть пропадет ли "ложная детонация" - я планирую изменить константу для оборотов ниже 23хх и поменять первый уровень шумности 0-2000 оборотов, загрубив чувствительность ДД. Если кто-то видит, где я что-то понял не так или почему описанного не стОит делать (детонация, когда она есть, все же вещь злая) - я жду комментариев (IMG:style_emoticons/default/crazy.gif) |
|
|
30.4.2012, 14:34
Сообщение
#811
|
||
7*#2&$%@ Группа: Технический Маньяк Сообщений: 1845 Регистрация: 9.10.2011 Из: Москва, Дмитровское ш. Вне форума Репутация: 71 |
falcon , проблема есть и думаю очень актуальна, хотелбы глянуть на логи с прошитой машины 2.0 АТ просто интересно есть ли эта проблема на прошитых от Ежика или Гланса.
Что больше всего интересно (беспокоит) 1. Удерживаем 2000 оборотов, а лоад держим от 45 до 60(например обороты держим 2100 а лоад постоянно 55 ) (если детонация не будит без перерыва долбить значит все ок.) Причину точно понять немогу. 2. Едим 1500-2000 оборотов лоад примерно 45-50 , резко бьем в пол (при этом детонация может быть очень большая) Похоже что просто смесь 14.7 по лямбде резко переходит на более бедную ( 13.0 и ниже ) при переходе на карты, по логам именно так и получается. все остальные режимы должны быть в порядке, проблемы именно с этими. |
|
|
||
30.4.2012, 16:03
Сообщение
#812
|
|
Turbo Stackwalker Группа: Технический Маньяк Сообщений: 626 Регистрация: 1.8.2011 Из: Челябинск Вне форума Авто: MMC Colt CZT Репутация: 28 |
1. В прошивке есть два режима работы ДД - некие "одинарный" и "тройной", при переключении в "тройной" все переменные вольтажа сразу умножаются на три - как я понимаю, изменяется масштаб? При этом переключение режима прописывается куда-то в периферию - это что, меняется чувствительность или полоса датчика ДД, он у нас какой-то регулируемый, что-ли? А вскрыть-посмотреть? Скажем у Z27AG внутри контроллер датчика детонации BOSCH30424 (он же CC195). У него можно настраивать гейн (но не в три раза, только степени двойки) и центральную частоту полосового фильтра от 5 до 16кГц. |
|
|
3.5.2012, 15:07
Сообщение
#813
|
|
Технический Маньяк Группа: Технический Маньяк Сообщений: 201 Регистрация: 9.8.2010 Из: Крым, Ялта Вне форума Авто: Lancer9-07 2L AT LPG, 80230006 Репутация: 26 |
Хм. А можно мне такой информацией разжиться? А то вопрос внезапно стал актуальным в связи с установкой паука и повреждения, в процессе вышеозначенной установки, второй лямбды. В код, надеюсь, смогу имплантировать... Кстати, Дима, я там обещался глянуть переключатель кондея - да, включатель кондея - это bit 4 (0x0010), я вчера был вынужден хорошо в этом разобраться (IMG:style_emoticons/default/wink.gif) Вот, кстати, посоветуйте, что делать: http://forum.amadeus-project.com/index.php?showtopic=5644 Теперь про сам эмулятор. Я его обезличил - вернул к дефолтным ИДАвским все названия - чтобы было понятно где что. А то, к примеру, мое название Table_Lookup_Axis никому ничего не скажет, а sub_CC6 - это сразу понятно на какой адрес идет вызов процедуры. Переменные. Все переменные word_* - это НОВЫЕ двухбайтовые переменные. Т.е. надо найти в прошивке свободное место и разместить эти переменные там. IGNITION_LOAD_LAST_FFFF64B4 - это отсутствующая в стандартной прошивке переменная, вместо нее можно использовать переменную, по которой вычисляются таблицы LOAD t1_byte_FFFFB819 ROM:0002B819 .data.b h'13 t1_byte_FFFFB81A ROM:0002B81A .data.b h'79 Оси и таблицы. ROM:000379FC AXIS_REAR_O2_EMULATOR_LOAD:.data.l word_FFFF64CA ROM:00037A00 .data.l word_FFFF64C6 ROM:00037A04 .data.w 4 ROM:00037A06 .data.w h'10 ROM:00037A08 .data.w h'28 ROM:00037A0A .data.w h'38 ROM:00037A0C .data.w h'48 ROM:000379E8 AXIS_REAR_O2_EMULATOR_RPM:.data.l word_FFFF64C8 ROM:000379EC .data.l word_FFFF64C4 ROM:000379F0 .data.w 5 ROM:000379F2 .data.w h'16 ROM:000379F4 .data.w h'20 ROM:000379F6 .data.w h'40 ROM:000379F8 .data.w h'60 ROM:000379FA .data.w h'80 t3_FFFFB81C: ROM:0002B81C t3_2B81C: .data.b 3 ROM:0002B81D .data.b 0 ROM:0002B81E .data.l word_FFFF64C8 ROM:0002B822 .data.l word_FFFF64CA ROM:0002B826 .data.b 5 ROM:0002B827 .data.b h'42,h'3D,h'29,h'22,h'1F ROM:0002B827 .data.b h'3D,h'38,h'24,h'1D,h'1A ROM:0002B827 .data.b h'33,h'2E,h'29,h'1B,h'14 ROM:0002B827 .data.b h'29,h'24,h'21,h'18,h'12 t3_FFFFB83C: ROM:0002B83C t3_2B83C: .data.b 3 ROM:0002B83D .data.b 0 ROM:0002B83E .data.l word_FFFF64C8 ROM:0002B842 .data.l word_FFFF64CA ROM:0002B846 .data.b 5 ROM:0002B847 .data.b h'21,h'1F,h'1D,h'1C,h'1B ROM:0002B847 .data.b h'1F,h'1C,h'1B,h'1A,h'17 ROM:0002B847 .data.b h'1A,h'1A,h'18,h'17,h'12 ROM:0002B847 .data.b h'17,h'16,h'15,h'14, h'F Сам код эмулятора: Код ROM:0003E5E0 Rear_O2_Emulator: ; CODE XREF: TephraMOD_Engine_Main_Loop_Hook_3EEB0-E04p ROM:0003E5E0 sts.l pr, @-r15 ROM:0003E5E2 mov.l off_3E6D8, r3; word_FFFF64BA ROM:0003E5E4 mov.l off_3E6E0, r2; word_FFFF64BE ROM:0003E5E6 mov.l off_3E6DC, r1; word_FFFF64BC ROM:0003E5E8 mov.l off_3E6E4, r9; word_FFFF64C0 ROM:0003E5EA mov.l off_3E7AC, r8; word_FFFF64C4 ROM:0003E5EC mov.l off_3E7A8, r12; word_FFFF64C6 ROM:0003E5EE mov.l off_3E7A4, r13; word_FFFF64C2 ROM:0003E5F0 mov.l off_3E7A0, r0; High_Byte_bMUT21_Engine_RPM ROM:0003E5F2 mov.w @r0, r0 ROM:0003E5F4 extu.w r0, r0 ROM:0003E5F6 cmp/eq #0, r0 ROM:0003E5F8 bf loc_3E606 ROM:0003E5FA mov.w r0, @r2 ROM:0003E5FC mov.w r0, @r9 ROM:0003E5FE mov.l off_3E770, r0; t3_FFFFB81C ROM:0003E600 add #h'B, r0 ROM:0003E602 bra loc_3E69E ROM:0003E604 mov.b @r0, r0 ROM:0003E606; --------------------------------------------------------------------------- ROM:0003E606 ROM:0003E606 loc_3E606: ; CODE XREF: Rear_O2_Emulator+18j ROM:0003E606 mov.w @r8, r4 ROM:0003E608 extu.w r4, r4 ROM:0003E60A add r0, r4 ROM:0003E60C mov.w r4, @r8 ROM:0003E60E mov.l off_3E798, r0; IGNITION_LOAD_LAST_FFFF64B4 ROM:0003E610 mov.w @r0, r0 ROM:0003E612 extu.w r0, r0 ROM:0003E614 shlr2 r0 ROM:0003E616 mov.w @r12, r4 ROM:0003E618 extu.w r4, r4 ROM:0003E61A add r0, r4 ROM:0003E61C mov.w r4, @r12 ROM:0003E61E mov.l off_3E794, r4; High_Byte_bMUT13_Front_Oxygen_Sensor_1 ROM:0003E620 mov.w @r4, r0 ROM:0003E622 extu.w r0, r0 ROM:0003E624 mov.w @r3, r4 ROM:0003E626 extu.w r4, r4 ROM:0003E628 add r0, r4 ROM:0003E62A mov.w r4, @r3 ROM:0003E62C mov.w @r1, r0 ROM:0003E62E add #1, r0 ROM:0003E630 mov.w r0, @r1 ROM:0003E632 mov.w @r13, r5 ROM:0003E634 extu.w r5, r5 ROM:0003E636 cmp/hs r5, r0 ROM:0003E638 bf loc_3E6AA ROM:0003E63A mov.w @r8, r4 ROM:0003E63C extu.w r4, r4 ROM:0003E63E mov.l off_3E790, r10; sub_9F2 ROM:0003E640 jsr @r10 ROM:0003E642 nop ROM:0003E644 mov.w r0, @r8 ROM:0003E646 mov.w @r12, r4 ROM:0003E648 extu.w r4, r4 ROM:0003E64A jsr @r10 ROM:0003E64C nop ROM:0003E64E mov.w r0, @r12 ROM:0003E650 mov.l off_3E788, r4; AXIS_REAR_O2_EMULATOR_LOAD ROM:0003E652 mov.l off_3E848, r10; sub_CC6 ROM:0003E654 jsr @r10 ROM:0003E656 nop ROM:0003E658 mov.l off_3E78C, r4; AXIS_REAR_O2_EMULATOR_RPM ROM:0003E65A jsr @r10 ROM:0003E65C nop ROM:0003E65E mov.l off_3E780, r4; t3_FFFFB83C ROM:0003E660 mov.l off_3E784, r10; sub_C28 ROM:0003E662 jsr @r10 ROM:0003E664 nop ROM:0003E666 mov #h'7F, r4; '' ROM:0003E668 mov.w @r1, r7 ROM:0003E66A extu.w r7, r7 ROM:0003E66C mulu r4, r7 ROM:0003E66E sts macl, r6 ROM:0003E670 mulu r0, r7 ROM:0003E672 sts macl, r0 ROM:0003E674 mov.w @r3, r4 ROM:0003E676 extu.w r4, r4 ROM:0003E678 mov.l off_3E778, r5; t1_byte_FFFFB819 ROM:0003E67A mov #1, r7 ROM:0003E67C cmp/hs r0, r4 ROM:0003E67E bf loc_3E684 ROM:0003E680 mov.l off_3E77C, r5; t1_byte_FFFFB81A ROM:0003E682 mov #0, r7 ROM:0003E684 ROM:0003E684 loc_3E684: ; CODE XREF: Rear_O2_Emulator+9Ej ROM:0003E684 mov.b @r5, r5 ROM:0003E686 extu.b r5, r5 ROM:0003E688 mov.l off_3E774, r10; sub_68A ROM:0003E68A jsr @r10 ROM:0003E68C nop ROM:0003E68E add r7, r0 ROM:0003E690 mov.w @r9, r4 ROM:0003E692 mov.w r4, @r2 ROM:0003E694 mov.w r0, @r9 ROM:0003E696 mov.l off_3E770, r4; t3_FFFFB81C ROM:0003E698 mov.l off_3E784, r10; sub_C28 ROM:0003E69A jsr @r10 ROM:0003E69C nop ROM:0003E69E ROM:0003E69E loc_3E69E: ; CODE XREF: Rear_O2_Emulator+22j ROM:0003E69E mov.w r0, @r13 ROM:0003E6A0 mov #0, r0 ROM:0003E6A2 mov.w r0, @r3 ROM:0003E6A4 mov.w r0, @r1 ROM:0003E6A6 mov.w r0, @r8 ROM:0003E6A8 mov.w r0, @r12 ROM:0003E6AA ROM:0003E6AA loc_3E6AA: ; CODE XREF: Rear_O2_Emulator+58j ROM:0003E6AA mov.w @r1, r4 ROM:0003E6AC extu.w r4, r4 ROM:0003E6AE mov.w @r9, r0 ROM:0003E6B0 extu.w r0, r0 ROM:0003E6B2 mulu r4, r0 ROM:0003E6B4 sts macl, r4 ROM:0003E6B6 mov.w @r13, r5 ROM:0003E6B8 extu.w r5, r5 ROM:0003E6BA mov.w @r1, r0 ROM:0003E6BC sub r0, r5 ROM:0003E6BE mov.w @r2, r0 ROM:0003E6C0 mulu r5, r0 ROM:0003E6C2 sts macl, r0 ROM:0003E6C4 add r0, r4 ROM:0003E6C6 mov.w @r13, r5 ROM:0003E6C8 mov.l off_3E790, r10; sub_9F2 ROM:0003E6CA jsr @r10 ROM:0003E6CC nop ROM:0003E6CE mov.l off_3E79C, r1; High_Byte_bMUT3C_Rear_Oxygen_Sensor_1 ROM:0003E6D0 mov.w r0, @r1 ROM:0003E6D2 lds.l @r15+, pr ROM:0003E6D4 rts ROM:0003E6D6 nop ROM:0003E6D6; End of function Rear_O2_Emulator Куда врезать: В прошивке по адресу 0 расположена точка старта прошивки: ROM:00000000 .data.l Power_On_Entry Идем по указанному адресу. Там, на 8-9 шагу программы идет вызов основного цикла обработки двигателя: ROM:00009706 mov.l off_971C, r0 ; Main_Engine_Control_Loop ROM:00009708 jsr @r0 ; Main_Engine_Control_Loop Идем по указанному адресу. В конце будет вызов многих процедур подряд с последующим зацикливанием. Выбираем вызов процедуры, отвечающей за "распихивание" переменной MUT9A по периферии. В моем случае, это предпоследняя в цикле процедура, ее вызов идет сразу после вызова иммобилайзерной процедуры. Проверьте содержимое - та это процедура или нет, начинается она так: Код ROM:0000A3D8 MUT9A_Control: ROM:0000A3D8 sts.l pr, @-r15 ROM:0000A3DA mov.l r14, @-r15 ROM:0000A3DC mov r15, r14 ROM:0000A3DE mov.l off_A518, r10; Disable_Interrupts ROM:0000A3E0 jsr @r10; Disable_Interrupts ROM:0000A3E2 nop ROM:0000A3E4 mov.l off_A528, r0; High_Byte_bMUT9A_Ligths_Bit_Array ROM:0000A3E6 mov.w @r0, r0 ROM:0000A3E8 tst #h'80, r0 ROM:0000A3EA bf loc_A3F8 ROM:0000A3EC mov.l off_A538, r10; bMUTAC_Port_F_Data_Register_Low ROM:0000A3EE mov.b @r10, r0 ROM:0000A3F0 and #h'DF, r0 ROM:0000A3F2 mov.b r0, @r10 ROM:0000A3F4 bra loc_A400 ROM:0000A3F6 nop Вызов этой процедуры заменяем на вызов нового кода. В конце нового кода, надо сделать вызов "родной" подмененной процедуры MUT9A_Control В моем случае в родной код врезан большой кусок нового кода, и эмулятор - только одна новая процедурка, которая вызывается НЕ из основого кода, поэтому у меня в эмуляторе нет вызова MUT9A_Control (это чтобы не было вопросов, почему этого нет). Кроме того, надо еще сохранять в стэк все использованные в эмуляторе регистры, и после выполнения эмултяора, восстанавливать их из стэка. В моем примере эмулятора этого нет, потому что, повторюсь, у меня эмулятор врезан не напрямую в основной код. Дополнительно: Надо "обезвредить" чтение настоящей второй лямбды. Надо найти код, где читаются показания заднего ЛЗ: Код ROM:0000A29C mov #h'A, r4 ROM:0000A29E mov.l off_A338, r5; High_Byte_Real_Rear_Oxygen_Sensor_1_FFFF648E ROM:0000A2A0 mov r1, r6 ROM:0000A2A2 bsr ADC_Read ROM:0000A2A4 nop Тут на выбор два варианта. 1. Вместо bsr ADC_Read поставить NOP. 2. Для тех кто хочет сохранять и логировать настоящее значение ЛЗ2(в моем случае это так сделано) - создать еще одну новую переменную и сделать чтобы именно она использовалась тут: ROM:0000A29E mov.l off_A338, r5 Вот как-то так. Если что непонятно написал или забыл написать - пишите - исправлю и дополню это сообщение. |
|
|
3.5.2012, 16:41
Сообщение
#814
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 1802 Регистрация: 21.2.2009 Из: Екатеринбург Вне форума Авто: Lancer IX 1.6MT (105HP) Репутация: 108 |
Спасибо. Буду разбираться.
У меня сразу созрел вопрос. При такой врезке, лямбду в битах конфигурации не отключаем. И при физическом отсутствии датчика получим как минимум ошибку цепи подогрева. Есть какие-то наработки как этого избежать? А то у меня как раз имеется физическое отсутствие датчика, а точнее его подогрева... |
|
|
3.5.2012, 19:40
Сообщение
#815
|
|
Технический Маньяк Группа: Технический Маньяк Сообщений: 201 Регистрация: 9.8.2010 Из: Крым, Ялта Вне форума Авто: Lancer9-07 2L AT LPG, 80230006 Репутация: 26 |
Цитата(dmitrij_b) У меня сразу созрел вопрос. При такой врезке, лямбду в битах конфигурации не отключаем. Нет, в этом весь смысл. Цитата(dmitrij_b) И при физическом отсутствии датчика получим как минимум ошибку цепи подогрева. Есть какие-то наработки как этого избежать? А то у меня как раз имеется физическое отсутствие датчика, а точнее его подогрева... Ну речь ведь шла про что - про эмулятор. Что касается грелки - будет ошибка, я скажу как ее отключить. Мне для этого нужно почитать несколько МУтов при такой ошибке, чтобы сделать фикс, а то я пока даже не знаю, где он есть, опрос этой штуки. |
|
|
3.5.2012, 20:56
Сообщение
#816
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 78 Регистрация: 31.10.2009 Из: Екатеринбург Вне форума Репутация: 5 |
отключить нагреватель можно в битах конфигурации насколько я понял без проблем
|
|
|
3.5.2012, 21:12
Сообщение
#817
|
|
Технический Маньяк Группа: Технический Маньяк Сообщений: 201 Регистрация: 9.8.2010 Из: Крым, Ялта Вне форума Авто: Lancer9-07 2L AT LPG, 80230006 Репутация: 26 |
отключить нагреватель можно в битах конфигурации насколько я понял без проблем Как именно? В 1.6 я что-то подобное еще видел, а, например, в моей прошивке 80230006 этих битовых переменных всего ТРИ: 0xF9A, 0xFAA, 0xFBA и все. Трех остальных нет, и упоминаемый бит, в 1.6, насколько я помню, как раз где-то в 0xFCA, кажется, был? И аналога этого кода я в своей прошивке не нашел, как ни старался. Поэтому надо будет логировать фаулты, чтобы определить где оно. |
|
|
4.5.2012, 2:17
Сообщение
#818
|
|
Технический Маньяк Группа: Технический Маньяк Сообщений: 439 Регистрация: 28.3.2010 Из: Odessa Вне форума Репутация: 16 |
Всем привет!
Саша, глянь в Тефриной 9653хх06 этоткусок: Код ROM:0002C61E loc_2C61E: ; CODE XREF: sub_2C55C+48j ROM:0002C61E mov.l off_2C7EC, r8; unk_FFFF89FC Тут меняем r8 на r0 (0xD873 на D073) ROM:0002C620 mov.w @r0, r0 ROM:0002C622 shlr8 r0 ROM:0002C624 tst #8, r0 ROM:0002C626 bt loc_2C62E ROM:0002C628 mov.l off_2C7A4, r10; sub_2F9C0 ROM:0002C62A jsr @r10; sub_2F9C0 Тут меняем на nop (0х0009) ROM:0002C62C nop Этот патч прописан в xml, в категории Rear O2 Heater Disable, там два пункта - Rear O2 Heater Patch и Heater CEL Проверял, работает. Ошибку нагревателя убивает. А вот в периферии не во всех прошивах работает (ну, из тех, что мне попадались), не смотря на то, что индекс нулевой и даже соответствующие биты в коде проверяются. Это не только по нагревателю. |
|
|
5.5.2012, 17:38
Сообщение
#819
|
|
Технический Маньяк Группа: Технический Маньяк Сообщений: 201 Регистрация: 9.8.2010 Из: Крым, Ялта Вне форума Авто: Lancer9-07 2L AT LPG, 80230006 Репутация: 26 |
Саша, глянь в Тефриной 9653хх06 этоткусок: Этот патч прописан в xml, в категории Rear O2 Heater Disable, там два пункта - Rear O2 Heater Patch и Heater CEL Да, этот патч я давно видел, кстати, для 1.6 на его основе вроде можно сделать патч, там есть такое же место. Там, кстати, FCA опрашивается - можно пропатчить так, чтобы бит управления эмулятора опрашивало и автоматически отключало опрос хитера в случае эмуляции. А в моей прошивке этого нет. Я нашел общую процедуру, откуда идет вызов всего этого, но в 1.6 и в эво там опрашиваются биты FCA FDA и по ним выполняется несколько десятков функций. А у меня в этом месте ничто нигде не опрашивается, а просто выполняется всего ТРИ процедуры, имеющие аналоги в эвовский прошивке. А всего остального барахла у меня нет, зато у меня есть механизм где по таймеру циклически запускаются по очереди диагностические процедуры, по результатам которых ставятся/сбрасываются фолты. После старта двигателя в первые пять секунд только первые несколько выполняются, потом - все. Вот я так думаю, у меня это дело там проверяется, только не увидев какой фолт выставит прошивка при отключении хитера - не узнаешь что патчить. Я, в теории, знаю, что разъем ЛЗ2 ГДЕ-ТО под ногами переднего пассажира, но все никак не созрею поискать и отключить его (IMG:style_emoticons/default/wink.gif) |
|
|
6.5.2012, 11:47
Сообщение
#820
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 78 Регистрация: 31.10.2009 Из: Екатеринбург Вне форума Репутация: 5 |
если я не ошибаюсь то по FCA бит 16 если поставить 1 то тогда монитор дк2 будет отключен вместе с нагревателями или я ошибаюсь?
|
|
|
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Текстовая версия | © 2006-2024 Форум Технических Маньяков. |
|