ECU Inputs: Ignition Event Detection
These were interesting inputs. They are contained entirely on the ECU, so their presence was not expected or even apparent until the circuit diagrams were constructed. The circuit is shown below.
The purpose of the circuitry is to watch for an ignition event when the ECU discharges the ignition coils. The point is to detect situations where the something in the ignition system might fail resulting in a lack of high voltage at the sparkplug.
For those people unfamiliar with ignition coil operation, a coil is said to be charged when the ECU turns on a transistor to allow current to flow through the primary winding of the coil. The electrical current running through the primary creates a magnetic field in the coil. When the ECU stops the current flow, the magnetic field collapses. Due to the construction of the primary windings and secondary windings in relation to each other, this collapse of the magnetic field has the desirable side effect of generating a very high voltage in a secondary windings of the ignition coil. This high voltage of maybe 10000 to 15000 volts is enough to create a spark at the spark plug.
What is slightly less apparent is that the primary side of the coil also sees a voltage spike when the current is shut off. This high voltage spike might be on the order of 100 volts. This is much less than the secondary side, but in fact, the ECU must be built to withstand this spike. Most of the time, this high voltage spike is an annoying problem that must be managed so that it does not destroy the driver transistor. In the case of the ignition event detection circuit, the ECU treats this high voltage spike as a source of information instead. If the ECU sees that high voltage spike, it knows that coil fired successfully.
The circuit works as follows. Under most conditions, R502 drains any existing charge off C501 meaning that the inputs to the OR gate IC501 will be at 0 volts (logic level 'low'). The OR gate acts as a buffer so the output to the CPU pin IC3 is also low. When an ignition coil is fired, a high voltage spike appears at C503 or C502, depending if it was the front or the rear #1 plug that just fired. The capacitor is said to "A/C couple" this voltage spike to the ensuing circuitry. What this means is that fast changes to the input capacitor C502/C503 are allowed to come through, but steady DC levels appearing at the capacitor inputs are blocked. The fast changing spike passes though C502/C503 into a current limiting resistor R504/R503. From there, the high voltage spike gets clamped to safe levels by diodes D501A and D501B. If the voltage spike is greater than Vcc (5 volts), D501A clamps the input by conducting the excess voltage into the Vcc power supply. If the voltage spike goes negative, D501B clamps the input by allows current from the ground rail to absorb the negative voltage. The voltage left over from the clamping operations is enough to overpower R502 so C501 starts to charge. Once C501 charges up high enough, the input to the OR gate will appear to be a logic '1', and the OR gate will drive its output high to match. Since the spike is of short duration, as soon as the spike dissipates, R502 discharges C501, and the OR gate drives its output back to '0' again.
The logic analyzer trace below shows the ignition events. They appear to be extremely short positive pulses that occur just as the plugs fire:
Zooming in with the logic analyzer (see below), we can see that after a delay of about 17 microseconds (the amount of time it takes to charge C501), the voltage builds high enough to generate a positive-going pulse of about 17 microseconds in width. This is not a very wide pulse in processor terms, meaning that the processor does not have a lot of time to watch for it. To take care of that problem, the processor configures the input circuitry for the ignition event signal inputs to respond to a rising edge. This allows the processor to observe extremely short duration signals without having to spend all of its time watching for them.
One last intriguing issue involves determining why the circuitry shares front and rear spark plugs on the same input to the CPU. This can be resolved by examining the ECU software. It shows that the CPU checks for events on IC3 and IC4 during very specific CR event periods. Because the choice of CR period implies knowledge of where the crankshaft must be, the CPU not only knows that it was expecting an ignition event on the front or the rear, but it also knows that if it were expecting an event on the front in a particular CR period, it would be impossible to see an event on the rear in that same CR period. This means that with only one input to the CPU, the CPU can determine with absolute certainty which one of the two coil choices (front or rear) must have fired to create the pulse. Since the Rotax engine is a two-plug design (two plugs per cylinder), two of these circuits are enough to watch all four of the ignition coils.
The real question is: why bother watching for ignition events? Once again, the answer lies in the ECU software. Every time the ECU asks to fire the coil, it looks for an ignition event that expects to follow. If the ECU does not see an indication of the ignition event when expected, it sets an error code and flashes the 'EFI' warning on the dash. Since the Rotax engine is dual-plugged, a failure of any part of a single ignition circuit will probably not be enough to kill the entire engine. The other plug on the same cylinder will keep the engine running smoothly, but the ECU warning will be able to alert the rider to the problem. Kind of slick, I thought!