FW: Re: Found.. 8051 FAQ.

Ciciora Steve sciciora at al.noaa.gov
Wed Nov 9 22:30:45 GMT 1994


(stuff deleted)

>>   It sounds like your line of reasoning is very similar to mine!  I'm
>> working on some code to do 4 point linear interpolation for the fuel map.
>> My fuel map will take an 8 bit number (0->255) for the engine RPM and an
>> 8 bit number for the engine load.

>One problem with using a 255 RPM x 255 LOAD = 64K settings - >impractical
>(impossible) to calibrate each and every one of those points.

No, you misunderstood.  The map in the EFI box has 17 x 17 x 8 bits = 289 bytes
stored.  These are the values the user can modify.  What I do is 4 point linear
interpolation between the 4 points nearest to the desired value. 
Impractical/impossible?  Remember Y=mX + B?  Just do it 3 times using integer
math.  The results (the way I do it) is a 16 bit number.  Just use the number
of Most Significant Bits you need.  At this point I'm not willing to guess how
many bits I will need.
  I only use the 4 most significant bits of the 8 bit load and the 8 bit RPM
numbers to get my 4 points from my table to interpolate between.  16 RPM x 16
Load = 256 values.  If you want a data point on each side of these 256 values,
you can use a 17 x 17 point table.  I use the 4 least significant bits to scale
between the 17 x 17 data points.

>I guess you could do your on dyno/road calibration with something >like
>what I suggested above (32 load settings x 16 rpm settngs) and then
>linearly interpolate the intermediate settings (Either in real time >in
>the processor or via a PC and program the memory with the full >255x255 map)

Yup.  I'm only guessing that a 17 x 17 map will be enough.  What did you base
your decision on using 32 load numbers on?  Do you know something I don't?

>> My map will be 17 x 17 x 8 bit numbers.

>IE (17 load x 17 rpm settings?)

Yup.

>I'm un-decided if an 8 bit injection time will have enough 'dynamic
>range' from idle to full throttle, though it's probably easier to >deal with
an 8 bit number.

My 4 bit linear interpolation code returns a 16 bit result.  I'm sure that 16
bits is more than needed, and would not be suprised if 8 bits is enough.  I'm
not that far along to decide (yet...).

- Steven Ciciora



More information about the Diy_efi mailing list