Spark retard for EEC-V (DIS)

John Dammeyer johnd at autoartisans.com
Sat Nov 20 01:49:35 GMT 1999


Hi David,

Picking off the crank signals and using them for accurate spark control is
easier than you think.  The 10 degrees resolution is actually not a hindrance.

Once the engine starts cranking your first goal is to determine TDC of Cyl. 1.
You find this by counting how long it takes to go from tooth to tooth and
comparing that to the last time.  In PIC assembler you can do this easily by
setting up the timer and counting how many times it rolls over from a initial
value.  At 6600RPM each tooth will take about 250uSec so you have to factor your
timer resolution to have a reasonable count at that RPM.

At cranking you've got almost forever in PIC cycles.  Once you find the TDC each
successive tooth gives you a 10 degree interval that translates into engine RPM.
Count each one and when you reach 18 you know you are at BDC.  Actually,  if you
set your divisor correctly and assume RPM stays fairly constant over a 180
degree stroke you can use these timer ticks to determine when to fire the spark
plug.(4 cyl engine).

For example:  for an 8cyl engine you fire every 90 crank degrees.  This is 9
teeth.  At tooth #4 set a variable that matches what the count should be at your
desired ignition point;  turn on current to the coil(Dwell period).  When the
count matches, fire the plugs by removing current through the coils (waste
spark).  Fire them again at tooth 9, 18, 27 and 35( + tooth gap)  just in case
you missed the previous count.  If you don't get engine RPM after your timer as
overflowed a few times then the engine has stopped.  Shut off the current to the
coil in case it's still on to avoid burning out the coil.

Hope this makes sense.  I even added knock detect and retard by using a knock
sensor and using an input into the PIC to change what constant was added to the
delay.  This retarded the ignition to avoid knock.

John Dammeyer


>
>Date: Fri, 19 Nov 1999 07:41:14 -0500
>From: "Posea, David G, SITS" <dposea at att.com>
>Subject: Spark retard for EEC-V (DIS)
>
>has anyone thought about building a programmable retard unit for a DIS
>ignition. Hopefully one with boost retard built in. I've started developing
>some PIC code, but I'm not an electronics type. There seems to be two ways
>to go. One is to intercept the crank trigger. It has 35 teeth and one
>missing one, for a pulse every 10 degrees. That makes writing the retard
>code a little tricky, as more than 10 degrees of retard would span pulses.
>The other way is to use the coil triggers as inputs. I'm not sure if 4
>identical chips should be used, or if one chip should process all inputs.
>Does anyone have any ideas on which way I should go. I'm a programmer by
>trade, and the PIC assembly language is pretty easy to work with. Any help
>you can offer will be greatly appreciated.
>
>
>David Posea
>




More information about the Diy_efi mailing list