[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