Engine controls
Posted: Tue Dec 04, 2012 5:17 am
Hi,
My name is Oliver and I am new around here. Just ordered a pair of ARMmites for
an
engine management project I am about to start.
I have a few questions on how to get started:
My background has been C for a very long time and it would be my choice for the
dev
platform.
The project will require to track and modify multiple engine signals:
4 Injectors, 4 Ignition coils (both are simple on/off signals) as well as 1-2
pulse modulated
signals and a few analog signals.
The timing critical part are the injector and ignition signals. At a maximum
speed of 10000
rpm, 1 degree of a revolution only lasts for about 16 microseconds. I need to be
able to
measure the 4+4 signals at an accuracy better than that (probably 2 x more
frequent or
about 8 microseconds). The other signals and analog inputs can be measured every
5ms
or even less frequent.
Based on the measurements I need to drive 4+4 outputs (4 Injectors and 4
Ignition coils)
with variable degrees of modified pulse width and advances/delays based on
lookup tables
in memory.
On a platform like the ARMmite - what are options to implement this? Build an
interrupt
controlled architecture or a continuous loop design that probes all inputs and
stores the
time of transitions in variables?
Since many of the Inputs are digital, can groups of them (e.g. 8) be read at
once, or does it
have to be serially?
Any other gotchas?
Your help is very much appreciated!
Thx!
Oliver
My name is Oliver and I am new around here. Just ordered a pair of ARMmites for
an
engine management project I am about to start.
I have a few questions on how to get started:
My background has been C for a very long time and it would be my choice for the
dev
platform.
The project will require to track and modify multiple engine signals:
4 Injectors, 4 Ignition coils (both are simple on/off signals) as well as 1-2
pulse modulated
signals and a few analog signals.
The timing critical part are the injector and ignition signals. At a maximum
speed of 10000
rpm, 1 degree of a revolution only lasts for about 16 microseconds. I need to be
able to
measure the 4+4 signals at an accuracy better than that (probably 2 x more
frequent or
about 8 microseconds). The other signals and analog inputs can be measured every
5ms
or even less frequent.
Based on the measurements I need to drive 4+4 outputs (4 Injectors and 4
Ignition coils)
with variable degrees of modified pulse width and advances/delays based on
lookup tables
in memory.
On a platform like the ARMmite - what are options to implement this? Build an
interrupt
controlled architecture or a continuous loop design that probes all inputs and
stores the
time of transitions in variables?
Since many of the Inputs are digital, can groups of them (e.g. 8) be read at
once, or does it
have to be serially?
Any other gotchas?
Your help is very much appreciated!
Thx!
Oliver