This is my Arm board. Arguably the most powerful embedded processor.
http://www.mikroe.com/easymx-pro/stellaris/
"The LPC2388 microcontroller is based on a 16-bit/32-bit ARM7TDMI-S CPU with
real-time emulation that combines the microcontroller with 512 kB of
embedded high-speed flash memory. A 128-bit wide memory interface and a
unique accelerator architecture enable 32-bit code execution at the maximum
clock rate. For critical performance in interrupt service routines and DSP
algorithms, this increases performance up to 30 % over Thumb mode. For
critical code size applications, the alternative 16-bit Thumb mode reduces
code by more than 30 % with minimal performance penalty. The LPC2388 is
ideal for multi-purpose serial communication applications. It incorporates
a 10/100 Ethernet Media Access Controller (MAC), USB device/host/OTG with 4
kB of endpoint RAM, four UARTs, two CAN channels, an SPI interface, two
Synchronous Serial Ports (SSP), three I2C-bus interfaces, an I2S-bus
interface, and an External Memory Controller (EMC). This blend of serial
communications interfaces combined with an on-chip 4 MHz internal
oscillator, SRAM of 64 kB, 16 kB SRAM for Ethernet, 16 kB SRAM for USB and
general purpose use, together with 2 kB battery powered SRAM make this
device very well suited for communication gateways and protocol converters.
Various 32-bit timers, an improved 10-bit ADC, 10-bit DAC, PWM unit, a CAN
control unit, and up to 104 fast GPIO lines with up to 50 edge and up to
four level sensitive external interrupt pins make these microcontrollers
particularly suitable for industrial control and medical systems."
Hard ware cost pales into insignificance when one is going to spend months
writing the software.
I am a big fan of hardware interrupts from way back.
http://www.rotaryeng.net/who.html/IEEE-road-test-sys.pdf
--------------------------------------
Here is the standard first blink program. The ARM can be programmed
in compiled BASIC as well as C and Pascal.
I like the BASIC as any 5 year old can learn it :)
About as simple as you can get.
-------------------------------------------
In any EFI system the fuel injectors require a pulse width and
frequency. IMHO With a high RPM rotary it is not practical
to fire the injectors once each rev.... AKA timed injection.
7500 RPM gives a max pulse width of about 8 milliseconds max.
Therefor IMHO you let them free run at say 75 or 100 times a second and
change the pulse width as needed for the amount of fuel needed.
I think that is the way Kevin does it with the Arduino.
I could be wrong about this.
One could change both frequency and width for a wider dynamic range.
Here is the simple BASIC PWM code for the ARM.
-------------------------------------
Make an EFI email folder and drag this stuff over to it.
I intend to do a well documented EFI source code using
simple BASIC anybody can easily learn.
We are only dealing with half a dozen or so functions.
Read ADC
Determine RPM
Send data out the USB.
Input from the USB a .csv (text) table.
Decide the injector width.
Look up settings in a .csv (text) table. AKA an Array.
Set injector width.
Fire the plugs.
As usual you can get help on here.
Here is most of the USB stuff.
My ARM proto board has more USB ports on it than my notebook computer :)
Paul Lamar
The Rotary Engine News Letter. Powered by Linux.
ACRE NL web site.
http://www.rotaryeng.net
You Tube
http://tinyurl.com/beqqxas
Copyright 1998-2013 All world wide rights reserved.