[Diy_efi] coil (-) tach signal conditioning
Dennis Noordsij
dennis.noordsij at wiral.com
Tue Mar 4 13:51:49 GMT 2003
> Hi Dennis,
>
> Tell us more about your project please.
> Do you plan to control ignition too ?
> pressure/speed or AF/speed ?
> What is the engine (displacement, cyl num, mono/multiport injection,
> etc ...) ?
> What PIC freq ? How much acquisitions per revolution ?
> Are PIC periphs enough for all planned tasks ?
>
> Thank you,
> Alexei
Hi Alexei,
Well, why not :-)
Ignition is something which might be tackled as a next step if the project
indeed does work, but right now is not part of it. So stock ignition.
Speed density setup, target engine (at first anyway) is a 3.7 litre 4 banger,
rated at 170HP (or 190HP with bigger carb), marine engine. The carb will be
replaced with a GM throttle body injector unit, not sure what car it came
from, but it has 2 55lbs/hr injectors, peak-hold, which turns out to be quite
an excellent match to the engine (on paper anyway :-). Sensors will be mostly
GM.
The PIC has 2 PWM outputs, so it can control 2 peak-hold injectors (or banks)
with hardware PWM (needed for peak-hold).
Sensor input (MAP/TPS/etc) is done with the PIC's AD ports, using the
filtering network as used in Megasquirt (why not, it works for them), but
only needs 8 bit resolution instead of the 10 the PIC offers.
I haven't decided on the PIC frequency yet, probably > 10 MHz. (instruction
speed is clockspeed / 4).
I am using the Megasquirt firing circuit, i.e. the MC34151P FET driver, but
not using the flyback modification, instead using regular flyback diodes
("old" Megasquirt). If the pulsewidths become too small to accurately
deliver, the PIC will remember the value and roll it over to the next
ignition event. If the pulsewidth becomes long enough, the PIC will fire both
injectors simultaniously instead of in ping-pong fashion.
I don't know yet what is the optimum number of acquisitions to do before
calculating pulsewidths, will just have to try different ideas.
TMR1 (16-bit) is used for fuel injection and RPM calculations.
TMR2 is used to enable the PWM output ports. Both PWM ports will have a base
frequency of around 15kHz (no idea what would be a good value, but this works
for Megasquirt so why not). Duty cycle will vary depending on peak or hold
mode. (See megasquirt tuning docs) and the PIC allows both channels to be
independently adjusted.
TMR0 is extra, but I'm sure I'll need it for something!
In addition there is an output which is pulsed for every set amount of fuel
injection (i.e. for example every 200ms total injector pulsewidth -
completely arbitrary as long as it is a constant) which replaces the flowscan
sensor now installed in the fuel line. (Because of the return line with EFI
the original setup does not work as well anymore).
VE table and the various enrichment bins are in EEPROM, and adjustable through
serial communications. Sensor calibration data will be in flash (i.e. lookup
tables).
Components used basically:
PIC16F877 (industrial temp range) + support circuitry
MC34151P (FET driver) + support circuitry
IRFZ34N or IRL540 FET's (maybe logic level to ensure full turn-on also at low
cranking voltage).
IRL530 (logic level FET) as fuel pump switch
L293D as stepper motor driver
MAX232 for serial communications
Low dropout regulator (need to see what I can find here)
And a whole bunch of discrete components.
Schematics are very much based on Megasquirt, except:
Power supply might be different depending on what good regulator I can find
Tach input is different
CPU and support circuitry is based on PIC now
Various pinouts are different
Firmware will be PIC assembly.
Cheers,
Dennis
_______________________________________________
Diy_efi mailing list
Diy_efi at diy-efi.org
http://www.diy-efi.org/mailman/listinfo/diy_efi
More information about the Diy_efi
mailing list