Resize Injectors -> Idle /Startup ..

Nistune topics related specifically to the 6303 cpu

Moderator: Matt

foliage
 

Posts: 64
Joined: Sat Aug 07, 2010 9:29 pm

Re: Resize Injectors -> Idle /Startup ..

Post by foliage »

Old thread but here is how to fix the problem

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

Posts: 426
Joined: Mon May 11, 2009 7:58 pm
Location: FRANCE

Re: Resize Injectors -> Idle /Startup ..

Post 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.
Torque
 

Posts: 639
Joined: Wed Jun 16, 2010 10:08 am

Re: Resize Injectors -> Idle /Startup ..

Post by Torque »

Pretty interesting ... thanks!
foliage
 

Posts: 64
Joined: Sat Aug 07, 2010 9:29 pm

Re: Resize Injectors -> Idle /Startup ..

Post 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!
Post Reply