| PM Inbox|
|Please login to check your PM's
Section 11 - Electronic Spark Timing
Electronic Spark Timing Control
The optimum spark timing output is
defined in terms of its relation-ship to various input
parameters, manifold pressure, RPM, coolant temperature,
etc. Data tables are provided to allow calibration of the
spark timing function in terms of these input parameters.
This function controls the spark distributor module which
in turn energizes and de-energizes the ignition coil.
There are two basic controls which are
included in the electronic spark timing function. Dwell
control is provided to allow sufficient energy in the
ignition coil for a proper ignition system voltage output
without over stressing the coil. Spark timing is then
provided to control the proper crankshaft angle at which
the spark plug should be ignited for optimum performance.
2.1 Modes of Operation
Two system modes of operation which are
exclusive are described below:
These modes are determined by hardware
constraints and algorithrn tests. During the bypass mode,
the electronic spark timing control signal is bypassed to
the distributor, this means that spark timing and dwell
are controlled by the distributor. During the EST mode,
the electronic spark timing control signal is a
programmed function of engine speed, vacuum or manifold
absolute pressure, coolant temperature. and various other
2.1.1 Bypass Mode
The bypass mode is intended to insure
an ignition firing signal to the ignition coil within the
distributor when proper ECM execution of the electronic
spark timing control function cannot be guaranteed. The
bypass mode overrides the EST run mode; The HEI/EST
ignition module will be in the bypass mode whenever the
bypass terminal is at a low voltage or open circuit. When
the bypass mode is enabled by the ECM opening the bypass
line, the ignition module will have complete control of
on time (dwell) and ignition spark timing.
No ignition secondary voltage is
generated by the sudden application of battery voltage to
the ignition voltage supply line. This means that the ECM
bypass control signal must remain below the ignition
module threshold during power on initialization. During a
crank sequence, no ignition secondary voltage is
generated until the first pickup pulse falls from a value
above the ignition module "on" threshold to a
value below the ignition module "off"
threshold. This includes the indeterminate time between
key on and starting motor engagement and any noise
generated by accessory switching during that time.
2.1.2 EST Mode
During the EST mode, the electronic
spark timing control signal is a programmed function of
engine speed, load, coolant temperature, and various
other sensor signals.
The EST mode shall be enabled whenever
the EST enable criteria are met (see 2.2.2). Once
enabled, the ECM will cause the ignition module bypass
terminal to be at a high voltage state. The ECM will then
have complete control of on time (dwell) and ignition
2.2 Mode Control
As described in the previous section,
there are two modes of operation:
The following describes the software
enable criteria for each of these modes.
2.2.1 Bypass Enable Criteria
The bypass mode shall be enabled
whenever the EST mode is disabled.
2.2.2 EST Mode Enable Criteria
EST mode will become enabled by the
following sequence of events:
1.ECM detects proper power
2.The engine is running as
detected by an RPM exceeding calibration
parameter *KRPMUP* for a period of time greater than
or equal to *KERUNCTR*.
3.Malfunction code 42 is
disabled or if enabled the criteria for
setting malfunction code 42, when in the
bypass mode, is not met. (See Diagnostics)
4.At least two reference
pulses have been received since the last ECM
2.2.3 EST Mode Disable Criteria
The EST mode will be disabled and the
bypass mode re-enabled by any of the following:
1.A defective calibration
PROM is detected by the ECM software
resulting in EST being disabled and bypass
mode operation a maximum of four reference
2.The ECM detects that the
ignition is off. When this occurs EST is
disabled and the bypass mode is entered a
maximum of four reference pulses later.
3.The ECM software
determines that the time since the last
reference pulse has exceeded 200
milliseconds. EST is then disabled and the
bypass mode entered a maximum of four
reference pulses later.
4.Software ceases to
execute properly resulting in the ECM being
reset and the bypass mode enabled.
5.An ECM low voltage reset
or power failure.
3.0 EST CONTROL ALGORITHM
The EST algorithm controls both
ignition timing and dwell.
3.1 Dwell Control
This feature is designed to provide
optimum EST signal on time (dwell) requirements. In order
to build up sufficient coil primary current to generate
the required secondary voltage, minimum on time (dwell)
is required. To prevent excessive module dissipation at
low speeds and to provide sufficient burn time at high
speeds, maximum on times are also required. To meet these
requirements, the software sums static dwell with dynamic
dwell, compensates the sum for battery voltage level, and
limits the compensated sum to guarantee a minimum burn
(EST off) time.
3.1.1 Static Dwell
This portion of the dwell calculation
computes the nominal dwell required by the distributor
during steady state engine conditions. This three-slope
straight line function is accomplished in software by
computing the slope and reference period for each of the
three sections defined on the curve.
CONDITION REFERENCE PERIOD STATIC DWELL
1 LT 7.0 ms Static Dwell = 4.7 ms + (Ref.
Period - 7ms)/2
2 GT 7.0 ms and Static Dwell =4.7 ms + (Ref.
LT 25 ms Period - 7 ms)/16
3 GT 25 ms Static Dwell = 5.825 ms + (Ref.
Period - 25 ms)/4 6
3.1.2 Dynamic Dwell
The dynamic dwell portion of the dwell
calculations computes the nominal additional dwell (added
to static dwell) required to maintain the desired dwell
under conditions of acceleration.
Dynamic dwell is added to static dwell
when acceleration is detected via a reduction in
reference period or acceleration enrichment fuel mode is
active. If the acceleration enrichment criterion is met,
the change in reference period test is not made.
22.214.171.124 Reference Period Detected
Every 12.5msec, the software tests for
an acceleration by comparing the present reference period
to the previous. If the present reference period is
shorter than the previous, an acceleration is Occurring
and dynamic dwell is added to the static dwell output.
The reference period acceleration test
performs the following calculation:
2* (REFPER (OLD) - REFPER (NEW)
where: REFPER (NEW) is present
REFPER (OLD) is previously
calculated reference period
if the result of this calculation is
positive and is greater than or equal to the value of
dynamic dwell, then it becomes dynamic dwell subject to
the maximum restrictions of Paragraph 126.96.36.199. If the
result of the calculation is less than dynamic dwell,
then dynamic dwell remains unchanged.
188.8.131.52 Acceleration Enrichment
If acceleration enrichment fuel mode is
active, dynamic dwell is set to the maximum (See
184.108.40.206 Maximum Dynamic Dwell
Dynamic dwell is limited for all
operating conditions to a value not to exceed (Reference
220.127.116.11 Dynamic Dwell Recovery
The dynamic dwell parameter shall be
exponentially decayed to zero every 12.5msec interval in
which a new reference pulse occurs. The exponential decay
shall be accomplished by subtracting (Dynamic Dwell)/8
from Dynamic Dwell.
DO1 = (DD0-(DD0/8+l) Limited to
where: DO1 = Present dynamic
DD0 = Dynamic dwell
from previous 12.5msec interval
3.1.3 Voltage Compensated Dwell
This feature is designed to increase
dwell time as battery voltage decreases. As battery
voltage decreases, the energy available in the coil to
fire the spark plugs is also decreased. By increasing
dwell in the reduced voltage situation, the available
firing energy can be maintained at a level sufficient to
fire the spark plugs.
Dwell is voltage compensated whenever
battery voltage drops below 12V via the following
DWELL = STATIC DWELL(N) +
DYNAMIC DWELL(N) + (12 - BATTERY VOLTAGE) x 610
3.1.4 Desired Dwell Limiting
Desired dwell HEI on-time is the
battery voltage compensated summation of static and
dynamic dwells. To insure sufficient burn time (coil
discharge time), desired dwell is limited to a maximum
on-time of (Reference Period) - 600 sec.
3.1.5 Increasing Spark Advance
The ECM software insures that ECU
module calculations cannot truncate dwell due to an
increase in spark advance. This is accomplished by
limiting any increase in spark advance to (Reference
Period)/16 at each spark advance calculation intervals
Spark is calculated every 12.5msec. No limiting is done
in the increasing retard direction.
3.2 Spark Timing Calculations
The spark timing control calculations
are performed in the following manner:
Spark timing advance
calculations are the sum of the following term:
Temperature Bias (*KMATBIAS*)
4.Spark Advance Run
5.EGR Advance Bias
Test term (*KKEGRSPK*), if
System spark advance is calculated
relative to top dead center (TDC) but must be output
relative to the HEI reference signal. The difference
between TDC and the reference signal is accounted for by
subtracting the value *KREFANGL* is the same as the
static advance angle.
Output Spark Advance (w.r.t. TDC) =
System Spark Advance - *KREFANGL*
3.2.1 Main Spark Advance Table (*F1*)
The (*F1*) table is the primary lookup
table for spark advance as a function of engine RPM ana
manifold pressure (MAP). This three dimensional table
contains a 14x17 matrix of lookup values. If the throttle
is closed, the 600 RPM row of the table is forced.
When RPM exceeds 4800 (highest RPM
value of table Fl), the Fl table advance is calculated by
accessing the X parameter (RPM) end point at the
appropriate Y parameter (MAP) value and adding to it an
additional advance as follows:
Fl Value = Fl Table Value +
(Measured RPM - 4800) * KADVSLHr *2
where: KADVSLHI is a calibration
parameter representing degrees advance per RPM for RPM in
excess of 4800.
A second calibration parameter
(*KRPMXHI*) represents the maximum RPM for which an
advance addition factor is calculated. If "measured
RPM" exceeds *KRPMXHI* then *KRPMXHI* will be
substituted for "measured RPM" in the above
The Y axis can be scaled for a 1 Atm.
or 2 Atm. MAP sensor via Bit 5 of *KAFOPT3*. The X axis
is *NTRPMP* units.
3.2.2 Coolant Temperature Correction
The coolant temperature correction
table (*F2*) shall consist of a 15 x 5 three dimensional
lookup table. The independent variables shall be coolant
temperature and load. The load is manifold air
temperature if bit 3 of COOLKUPS is set or manifold
vacuum if bit 2 of COOLKUPS is set.
The manifold vacuum points in the P2
table shall consist of 5 values of vacuum ranging from 0
to 40 kPa in 10 kPa increments. The manifold air pressure
consists of 5 values of air pressure ranging from 60 to
100 kPa in 10 kPa increments. The coolant temperature
shall be NCT units limited to 152C. If coolant
temperature is less than *KF2ENA* and throttle is closed,
the F2 value shall be forced to *KCTBIAS*.
The constant value *KCTBIAS* shall be
provided to allow the F2 coolant temperature correction
values to be either positive or negative at user option.
This is accomplished by subtracting *KCTBIAS* from the
spark advance calculation after the value from the F2
table is added.
The user would therefore specify the F2
table values using the formula:
F2 Table Value = desired
correction + *KCTBIAS*
3.2.5 Power Enrichment Advance
If the power enrichment mode is active,
(see Fuel), a value from the F80 table as a function of
engine RPM will be added to the spark advance
If the power enrichment mode is not
active, a value of zero will be added to the spark
18.104.22.168 ALDL Spark Control
If ALDL spark control is not active, a
value of zero will be added to the spark advance
IF ALDL spark control is active, spark
advance is calculated as follows:
SAPN = ALSPARK (Absolute and Advance
SAPN = ALSPARK (Absolute and Retard
SAP = SAP + ALSPARK (Delta and Advance
Modification) N N-1
SAPN = SAPN-l - ALSPARK (Delta and
SAP = New Spark Advance
SAP = Previous Spark Advance
ALSPARK = Desired Spark Advance
3.2.6 ESC Retard
The value calculated for knock retard
is subtracted from the spark advance calculation. (See
Electronic Spark Control)
3.2.7 Initial Timing
Initial timing is defined as the spark
timing in engine degrees referenced to top dead center
with EST system in the bypass mode. A parameter,
*KREFANGL* degrees, must be set to this initial timing
value. After all the advances are added together,
*KREFANGL* is subtracted from the sum to reference the
degrees advanced from the position of initial timing.
3.2.8 Spark Advance Run Time-out
The spark advance run time-out is
subtracted from spark advance calculation. The spark
advance run time-out is used to ramp out the initial
spark advance. The ramp value is chosen during EST
disable from the "F46(coolant)* table. This value is
decayed by the multiplier, *KSADM*, every *KSATM1*
3.2.9 EST Advance/Retard Limits
Two ECM calibration memory values
(*KMAXADV2* and *KMAXRTD2*) define the maximum advance
and minimum advance angles acceptable by the distributor.
These limits are relative to the static advance or
reference angle *KREFANGL*. Advance angles outside these
limits may result in ignition secondary voltage being
applied to the wrong cylinder (crossfire). These limits
shall be defined by Delco Remy, the ignition system
design responsible division, on their distributor outline
drawing. The limits are applied after all of the advance
tables and their biases have been summed.
*KMAXADV2* and *KMAXRTD2* can be either
positive or negative relative to the reference angle.
3.2.10 Malfunction 32 Test Term
If a Malfunction 32 Test (EGR) is in
progress, (DIAGMW4, bit 7 = 1), the spark advance term is
decremented by *KKEGRSPK*.
3.2.11 Spark Calculation Override
22.214.171.124 Power Steering Override 6
If the system detects a power steering
load during a closed throttle condition, while not in
diagnostics, and the coolant temperature is greater than
*KPSTEMP*, the output spark advance is made equal to
*KPSDAOV* before the lag correction is performed.
126.96.36.199 Diagnostic Mode Override
When the system is put into the
diagnostic mode the threshold is set to *KDIARPMH*
(DIAGMW2 Bit 5 = 0) or *KDIARPML* (DIAGMW2 Bit 5 = 1). If
the engine RPM is less than or equal to the threshold,
the spark advance is made equal to *KDIAGADV* before the
laq correction is performed. If the engine RPM is greater
than threshold and ESC option is active the spark advance
equals *KESCDADV* before the lag correction is performed.
3.2.12 Lag Correction
Lag correction is a feature designed to
compensate for all mechanical and electronic time lags to
which the reference signal and EST signal are subjected.
Lag correction is accomplished by
subtracting *KTIMELAG* from the advance being Output
after it has been converted to the time domain. Lag
correction is performed after all EST calculations
including application of the maximum retard limit are
complete but before the application of the maximum
3.2.13 Computation Rate
All EST calculations shall be executed
within one minor loop cycle of 12.5 msec.