[Bulk] Re: [Diy_efi] Modular approach to EFI controllers

ian spyro
Mon Oct 1 11:18:59 UTC 2007


On Mon, 2007-10-01 at 18:20 +0800, Mike wrote:
> Ian,

> BTW: Curious, does the W16 have a coincident firing event ?

I actually dont know.

I speccd up a bit of overkill really but it never hurts.

I designed the FPGA so that it can handle timing the reading of up to
four ADCs at once and driving 2x spark and 2x injectors for up to 16
cylinders.

My personal application will be a inline 6 with single spark and *maybe*
dual injectors per port (more likely single)

but thats the nice thing about FPGAs - you can scale the design up or
down to suit - *IF* the original design is good enough.

the idea is that no matter how 'full fat' you make the FPGA, as long as
it follows the register spec I wrote, it'll work with the same software
running on the ARM as any other FPGA running any other 'fattness' of the
design would.

(even so, theres a lot of events...)

for one cylinder: (2xspark, 2x injectors)

10k RPM = 166 RPS

so thats potentially:

42 TDC interrupts (84 if you dont ignore the TDC on compression)
84 spark events
84 injection events 
42 ion sense 'data ready' interrupts.

total 252 events

multiply by 16 cylinders...

4032 events.

but thats not the whole story because if you werent using the FPGA you'd
have to handle some kind of bus for the ion sense ADCs, along with
thousands of interrupts per event, and also the injection needs to be
started and stopped, which means you need precise, uS grade timing from
the ARM and _no_ latency, whilst its doing all that other stuff like
calculating FFTs of the ion sense data etc.

not to mention that the FPGA can happily handle things like generating
fraction-of-a-degree interpolation of the crank angle without any need
for intervention from the ARM.

basically it makes sense to have the system split into a timing
controller thats bullet proof and has no other requirements but to
calculate crank angle and injection / spark timing, and let the ARM
handle feeding it instructions, which can be done on a much more
leisurely basis - and if the ARM freezes, the TC can simply call a stop
to things before your engine fries (hard watchdog).





More information about the Diy_efi mailing list