Multiprocessor system

dn dn at dlogtech.cuc.ab.ca
Sat Feb 10 21:13:45 GMT 1996


> >Clint Corbin wrote:

> That's the crux of the matter.  I want a fully sequential system.  The 68HC11
> does not have enough output compare ports to control 8 fuel injectors in a
> sequential system.  The software for the main modules would be pretty basic.

Pardon my ignorance here, but what the heck do you need more than 1 output
compare for?  You only have 1 cylinder firing at a time (except perhaps in
exotic engines like the V12, I'm not familiar with these...) whether it's a 
V8 or an inline 4... you only have to keep track of one injector on and off
time at any given portion of the cycle.  Keep in mind that in an ECU, all
things are RELATIVE with respect to timing, not ABSOLUTE.

You have a reference timing pulse from the distributor or crank trigger 
which alerts you ahead of time which cylinder needs to fire, and you setup 
the output compare register to open the injector at some point in the future.
When it opens, you reload the same OC with the ON time and shut off the 
injector when you hit that time.  Next reference pulse, same sequence, 
different injector.  You would need some sort of data selector or multiplexer 
between the OC output pin and the injector drivers, which is also controlled 
by the program, to route the OC signal to the proper injector.  

Thinking about this, just use a serial shift register with it's outputs 
tied as enable lines to the respective injector drivers, and buss the OC 
output to all injectors.  Use a port pin to clock in a bit for cyl 1,
and ripple it down the line as each cylinder fires.  Thus, only the 
selected injector would open or close depending on whether OC is high or 
low.  A single pulse from the CPU at the end of a cylinder cycle would 
increment the SR to enable the next injector inline, and start over. 
Thus, if you have more cylinders, just add more shift registers.  If you
want to fire more than 1 injector at a time, just clock in 2 bits in the
right sequence instead of 1.  If you ripple the overflow from the shift 
register back into another port pin on the CPU, so you could tell when it 
had gone full cycle, you shouldn't even need to change the software to add 
more injector drivers, it would all happen automagically...

> Not to mention most microcontrollers do not have enough hardware resourses
> (input captures, output compares, regular I/O ports, etc.) to run the system
> the way I want it to run.  By breaking it up into modules, I have the 

It's not so much how many resources the chip has, but how efficiently you
make use of what you do have.  Just 'cause it's a microcontroller, don't
be afraid to add a few chips to the system to do the job more efficiently
with less software.  This is the approach I use, 'cause I hate writing
code... 

regards
dn

--
---------------------------------------------------------------------
 Darrell A. Norquay              Internet: dn at dlogtech.cuc.ab.ca     
 Datalog Technology Inc.         Bang: calgary!debug!dlogtech!darrell
 Calgary, Alberta, Canada        Voice: +1 (403) 243-2220            
                                 Fax:   +1 (403) 243-2872            
    @ +                                                                
     <                                                         
    __/    "Absolutum Obsoletum" - If it works, it's obsolete    
 --------------------------------------------------------------------




More information about the Diy_efi mailing list