EST observations (kinda long)

Ludis Langens ludis at cruzers.com
Tue Feb 23 18:04:57 GMT 1999


Tedscj at aol.com wrote:
> 
> You see that these are all equally spaced.  The P4 document states that the
> ECM looks for the 'falling edge' to determine a reference pulse.  I have read
> and heard that the difference between an HEI module and DIS module is that
> this signal is inverted.  So maybe a DIS .bin looks for a 'rising edge'?
> Either way it can't be much of a problem since even an inverted signal has a
> 'falling edge'.  You might just have to adjust the base timing to make up for
> the pulse displacement caused by the inversion.

The problem is that the other edge may "move around" at different RPMs.


Here is the dwell computation code from the SyTy (and turbo Sunbird)
program.  All the named locations are RAM variables except for
TachInterval which comes from the hardware timing chip.  Notice that all
of the constants are hard coded, none are read from the configuration
area.  (Question:  Are the SyTy and Sunbird distributor or DIS?)

This code fragment is invoked at 80 Hz

xD035   ...
        LDX     TachInterval    ;Hardware register
        LDAA    #255            ;Dummy huge ExtraDwell
        LDAB    Flags2F
        BITB    #bigMapIncrease
        BNE     @0              ;Force ExtraDwell := (TachInterval / 8)
        LDD     OldTachInterval ;OldTachInterval - TachInterval
        PSHX
        TSX
        SUBD    (X)
        PULX
        ASLD                    ;Double difference
        SUBD    ExtraDwell      ;Extra dwell if RPM increased
        BMI     @1
        ADDD    ExtraDwell
@0      STD     ExtraDwell

@1      PSHX                    ;TachInterval to D
        PULD
        LSRD                    ;TachInterval / 8
        LSRD
        LSRD
        SUBD    ExtraDwell      ;Limit ExtraDwell to (TachInterval / 8)
        BHS     @2
        ADDD    ExtraDwell
        STD     ExtraDwell

@2      PSHX                    ;TachInterval to D
        PULD
        STD     OldTachInterval ;Set new OldTachInterval
        LSRD                    ;Compute Dwell using TachInterval
        SUBD    #229
        BHS     @3
        ADDD    #308
        BRA     @5
@3      LSRD
        SUBD    #295
        BLO     @4
        ADDD    #382
        BRA     @5
@4      ADDD    #1527
        LSRD
        LSRD
@5      STD     Dwell

        LDAA    #120            ;Increase dwell at low volts
        DIFA    SensedVolts
        LDAB    #4
        MUL
        ADDD    Dwell           ;Combine all terms
        ADDD    ExtraDwell
        STD     Dwell

        LDD     TachInterval    ;TachInterval - 39
        SUBD    #39
        SUBD    Dwell           ;Limit Dwell to (TachInterval - 39)
        BHS     @6
        ADDD    Dwell
        STD     Dwell
@6      ...

This code fragment slowly reduces ExtraDwell to zero.  It is executed
once per ignition event (up to 80 Hz).

xCE2F   ...
        LDD     ExtraDwell      ;ExtraDwell / 8
        LSRD
        LSRD
        LSRD
        COMA                    ;- (ExtraDwell / 8) - 1
        COMB
        ADDD    ExtraDwell      ;ExtraDwell - (ExtraDwell / 8) - 1
        BPL     @9
        CLRD
@9      STD     ExtraDwell      ;Decay ExtraDwell to zero

-- 
Ludis Langens                               ludis (at) cruzers (dot) com
Mac, Fiero, & engine controller goodies:  http://www.cruzers.com/~ludis/




More information about the Gmecm mailing list