Page 2 of 2

Re: Resize Injectors -> Idle /Startup ..

Posted: Fri Apr 25, 2014 3:59 pm
by foliage
Old thread but here is how to fix the problem

http://www.skylinesaustralia.com/forums ... 32gtr-ecu/

Re: Resize Injectors -> Idle /Startup ..

Posted: Fri Apr 25, 2014 9:01 pm
by RomChip200
When speaking about the use of WARMUP_TIMING table, you forgot to speak about the initial temp (ambient temp when starting the engine). It still makes the conditions more strict:
if TempInitial>15°C and TempInitial<35°C and Temp>30°C and Temp<55°C and TP<44 and rpm<2600 ==> WARMUP_TIMING table is used !!!!
Refer to my post above and the code below (loc_1429 is the exit point when any condition doesn't apply):

Code: Select all

CODE:CCEB loc_6664:                                         ; ...
CODE:CCEB                     ldab    engine_temp           ; Engine temp+50 (°C)
CODE:CCEE                     cmpb    WARMUP_TIMING_TEMP_MAX
CODE:CCF1                     bcc     loc_1429
CODE:CCF1
CODE:CCF3                     ldaa    engine_temp_initial   ; Initial engine temp+50 (°C)
CODE:CCF6                     cmpa    #65
CODE:CCF8                     bcs     loc_1429
CODE:CCF8
CODE:CCFA                     cmpa    #85
CODE:CCFC                     bcc     loc_1429
CODE:CCFC
CODE:CCFE                     cmpb    WARMUP_TIMING_TEMP_MIN
CODE:CD01                     bcs     loc_1429
CODE:CD01
CODE:CD03                     ldab    tp_filt               ; Filtered tp
CODE:CD06                     ldaa    rpm_d4_lo             ; rpm_div_4_lo=lo(Engine speed/50)
CODE:CD09                     tim     #%100, interp_flags   ; Bit 6: 0=rpm, 1=tp_d2_filt
CODE:CD0C                     beq     loc_6694
CODE:CD0C
CODE:CD0E                     addd    #$A08
CODE:CD0E
CODE:CD11
CODE:CD11 loc_6694:                                         ; ...
CODE:CD11                     cmpb    WARMUP_TIMING_TP_MAX
CODE:CD14                     bcc     loc_1429
CODE:CD14
CODE:CD16                     cmpa    WARMUP_TIMING_RPM_MAX
CODE:CD19                     bcc     loc_1429
CODE:CD19
CODE:CD1B                     aim     #%11111011, interp_flags ; Bit 6: 0=rpm, 1=tp_d2_filt
CODE:CD1E                     ldaa    rpm_lo                ; rpm_lo=min(rpm,255)
CODE:CD21                     ldx     #IDLE_TIMING_NEUTRAL
CODE:CD24                     jsr     interp_16             ; X=table adress
CODE:CD24                                                   ; A=value to look up
CODE:CD24                                                   ;
CODE:CD24                                                   ; A=output value
CODE:CD24
CODE:CD27                     aim     #%10111111, flags7    ; Bit 0: EGR off
CODE:CD2A                     jmp     loc_1396
CODE:CD2A
CODE:CD2D
CODE:CD2D loc_1429:                                         ; ...

Just put 0 (-50°C) into WARMUP_TIMING_TEMP_MAX to get rid of this, as this is the first condition tested in the code.

AFTER_START_TIMING_ADVANCE doesn't exist on Z32, only TIMING_ADVANCE and TIMING_RPM_SUBTRACT: these 2 tables are very useful to advance timing when warming up till a certain rpm. Both apply on cold and warm starts.
On the other hand, TIMING_RPM_SUBTRACT doesn't seem to exist on HCR32.

Re: Resize Injectors -> Idle /Startup ..

Posted: Thu May 15, 2014 4:35 am
by Torque
Pretty interesting ... thanks!

Re: Resize Injectors -> Idle /Startup ..

Posted: Thu May 15, 2014 9:45 am
by foliage
RomChip200 wrote:When speaking about the use of WARMUP_TIMING table, you forgot to speak about the initial temp (ambient temp when starting the engine). It still makes the conditions more strict:
if TempInitial>15°C and TempInitial<35°C and Temp>30°C and Temp<55°C and TP<44 and rpm<2600 ==> WARMUP_TIMING table is used !!!!
Refer to my post above and the code below (loc_1429 is the exit point when any condition doesn't apply):

Code: Select all

CODE:CCEB loc_6664:                                         ; ...
CODE:CCEB                     ldab    engine_temp           ; Engine temp+50 (°C)
CODE:CCEE                     cmpb    WARMUP_TIMING_TEMP_MAX
CODE:CCF1                     bcc     loc_1429
CODE:CCF1
CODE:CCF3                     ldaa    engine_temp_initial   ; Initial engine temp+50 (°C)
CODE:CCF6                     cmpa    #65
CODE:CCF8                     bcs     loc_1429
CODE:CCF8
CODE:CCFA                     cmpa    #85
CODE:CCFC                     bcc     loc_1429
CODE:CCFC
CODE:CCFE                     cmpb    WARMUP_TIMING_TEMP_MIN
CODE:CD01                     bcs     loc_1429
CODE:CD01
CODE:CD03                     ldab    tp_filt               ; Filtered tp
CODE:CD06                     ldaa    rpm_d4_lo             ; rpm_div_4_lo=lo(Engine speed/50)
CODE:CD09                     tim     #%100, interp_flags   ; Bit 6: 0=rpm, 1=tp_d2_filt
CODE:CD0C                     beq     loc_6694
CODE:CD0C
CODE:CD0E                     addd    #$A08
CODE:CD0E
CODE:CD11
CODE:CD11 loc_6694:                                         ; ...
CODE:CD11                     cmpb    WARMUP_TIMING_TP_MAX
CODE:CD14                     bcc     loc_1429
CODE:CD14
CODE:CD16                     cmpa    WARMUP_TIMING_RPM_MAX
CODE:CD19                     bcc     loc_1429
CODE:CD19
CODE:CD1B                     aim     #%11111011, interp_flags ; Bit 6: 0=rpm, 1=tp_d2_filt
CODE:CD1E                     ldaa    rpm_lo                ; rpm_lo=min(rpm,255)
CODE:CD21                     ldx     #IDLE_TIMING_NEUTRAL
CODE:CD24                     jsr     interp_16             ; X=table adress
CODE:CD24                                                   ; A=value to look up
CODE:CD24                                                   ;
CODE:CD24                                                   ; A=output value
CODE:CD24
CODE:CD27                     aim     #%10111111, flags7    ; Bit 0: EGR off
CODE:CD2A                     jmp     loc_1396
CODE:CD2A
CODE:CD2D
CODE:CD2D loc_1429:                                         ; ...

Just put 0 (-50°C) into WARMUP_TIMING_TEMP_MAX to get rid of this, as this is the first condition tested in the code.

AFTER_START_TIMING_ADVANCE doesn't exist on Z32, only TIMING_ADVANCE and TIMING_RPM_SUBTRACT: these 2 tables are very useful to advance timing when warming up till a certain rpm. Both apply on cold and warm starts.
On the other hand, TIMING_RPM_SUBTRACT doesn't seem to exist on HCR32.
I said to do exactly that, set Min and Max temp to be - 50c

When do people advance timing on cold start? Weird that Nissan actually retard the ignition!