Originally Posted by Duckie_uk
My understanding is that the coils fire on a falling signal i.e. the transition from +ve volts to 0 this shuts off the current flowing through the coil and induces a much larger voltage in the secondary winding.
Yes. When measured at the igniter trigger input terminal, the coil primaries begin to conduct (charge) when the input goes high. When the input goes low, the primaries stop conducting, and spark occurs.
If the input is left high continuously for too long a period of time, the coil primaries will conduct continuously, overheat, and burn out- sometimes the coils themselves fail, sometimes it's the FET in the igniter that drives them.
Either way, this is why you have to disconnect the coils when re-flashing. The way the ignition outputs on the MS are configured in our application, the output is normally pulled up to V+ with a resistor, and the CPU must actively pull it down to GND (through the LED drive transistors) when it does not
want the coil primaries to be charging. When you are flashing, the CPU is inactive and thus it cannot pull down the outputs. The outputs float high as a result, and if a coil is connected they will cause it to operate continuously. It's also why the engine sometimes pops right when you first switch it on. The pullup resistor causes the coil to start charging the instant power is applied, but it takes the CPU a few milliseconds to boot up and start running. The first thing it does when it wakes up is to set all the outputs into their "default" condition, which in the case of the ignition outputs causes a spark.
The firing sequence, from the CPUs perspective, goes as follows. We'll use SparkA (D14 on Rev 3.0):
1- At rest, CPU pin 7 is high, causing Q6 to conduct, which pulls the collector side of Q6 (pin 3) to ground. (This is where the coil output is connected)
2- At the calculated beginning of the dwell cycle, CPU pin 7 turns off, thus turning off Q6. The pullup resistor causes the collector side of Q6 to go high. This turns on the coil primary and it starts charging.
3- At the end of the dwell cycle (firing time) the CPU turn pin 7 back on, Q6 turns on and starts conducting again, the spark output pin goes to ground, and the coil primary opens. Spark occurs.