Dim efi

Bill,

Back in the 80's when they used 8051 controllers they did use a divider chip in the input in the Motronic systems. The update rate was slow, today's processors are easily 20 to 100' times faster. I do updates every ignition reference signal.

It is not about counting, it is measuring. Here is how it works. A timer automatically captures the time of an ignition reference signal, and a interrupt is generated. The prior time is then subtracted from the present time, that is period between pulses. The subtraction is fast, only a few clock cycles. The other calculations are done in back ground, in the available time. The results of the prior calculations, are used in the timer interrupt, to set the ignition and fuel injection timer compare events. A timer compare event is an interrupt, that can be set to happen, x clock ticks from a given time reference. The x, comes from the calculations, look up tables and other settings.

So, an ignition control needs to energize the coil, release it at the ignition event, stay open for the spark duration, plus the time delay to the start of coil charge. The control times are variable, based on RPM, and MAP. The advance control in timer ticks is inserted in timer compare register, a one line code that again only takes a few CPU cycles. The timing events are like stepping stones. The state machine navigates the path, acting similar to the PLD, that you desire, except it has the ability for software variable input. The soft variables input, or advance control is what it is all about. Fuel timing control is much the same, and and in a few respects is easier. There are many shared calculations, RPM and MAP, so doing both in one unit is efficient. There is also interplay between the ignition and fuel, separate controls can be a significant compromise in optimized tuning.

I was not trying to be negative about your plan, of MSP430 and PLD, I just do not see how it can be be done. The hardest part of design is often the starting point, choosing the parts. I consider myself quite lucky, in my design career of over over 35 years, I always successfully completed projects based on my start plans. While most consider me highly intuitive or a psychic, it more about sorting out the data sheets. Sometimes data sheets are marketing driven, limitations are buried with white lies.

I also start by purchasing some sort of quick start development board, and writing simple code to check the capability before I commit. Tests like that can be done in a day or two, and provide great insurance and comfort.

I will share (give) you the ATmega128 development board I started with back in about 2003. With the addition of a few I/O components on a second card it will manage an engine.