ECU Tuning as per "Down Under".... (LONG Part 3)
Chris Pronios
hpro@b-link.gr
Wed, 11 Sep 2002 08:32:48 -0500
Want an example? Yes? Well you'll have to wait till I give you one. But I
will put one here soon.
RPM Scale:
CA Rom Address: 3BD0 - 3BDF. 16 x 8 bit Values. Quanta: 50 rpm
SR Rom Address: 00E0 - 00EF. 16 x 8 bit Values. Quanta: 50 rpm
The Vertical Scale of the AFR Correction Map is RPM. The stock range is
500 - 6800 rpm. If you built a de-stroked screamer that revs to 12000 rpm
you might get a bit worried about what the ECU will do above 6800rpm.
Fortunately Nissan thought of this, and allows you to modify this scale and
specify the operating rev range of your motor.
The stock Nissan specified values are fine for me, as I have my redline set
at 7500rpm. Keeping them the same also means you don't have to recalibrate
the AFR Map, and extrapolate values for the new rev ranges.
If you do decide to make changes here, this is what you need to know. The
ROM image contains 16 values that makes up the scale. To decode these into
RPM simply multiply them by 50. Open a Map in ROM Editor, and modify some
of the RPM values - you'll notice they increment and decrement 50 rpm
intervals.
Flow Scale:
CA Rom Address: 3BC0 - 3BCF. 16 x 8 bit Values. Quanta: None -
Multiplication Factor
SR Rom Address: 00F0 - 00FF. 16 x 8 bit Values. Quanta: None -
Multiplication Factor
The Horizontal Scale of the AFR Correction Map is what I call Flow, and it
is important because its the primary load axis. You already know the AFM is
the primary load sensor, so it makes sense that these two are closely
linked. When the AFM is flowing close to minimum, the minimum values on
this scale are referenced, when the AFM is flowing close to maximum, the max
values are referenced.
But what are these values? Well they are a multiplier, that when applied to
the K Constant give a basic injector pulsewidth for a given airflow measured
by the AFM. Now the clever thing that the Nissan engineers did here, was to
set the injector pulsewidth to that required for a Stoich (14.7) AFR.
How could they do this? Well that's the beauty of AFMs. Air Fuel Ratio is
determined by Mass. An AFM will accurately determine the mass of air
entering the engine at any given instant. Now we just need the
corresponding mass of fuel to enter the engine to have our 14.7 AFR. Since
the Nissan engineers knew the flow rates of the injectors, they could then
calculate the required injector pulsewidth.
Using the Flow Scale to calculate basic pulsewidth will be covered in depth
in "Putting it all Together 2".
AFR Correction Map:
CA Rom Address: 3D00 - 3DFF. 256 x 8 bit Values. Quanta: None -
Multiplication Factor
SR Rom Address: 0100 - 01FF. 256 x 8 bit Values. Quanta: None -
Multiplication Factor
These maps are the business end of tuning. If you've read how the flow
scale works, you'd realise that it alone, is enough to calculate an injector
pulsewidth that will provide a 14.7 AFR at all loads measured by the AFM.
Thing is, we don't want a Stoich AFR at all loads and RPMs. Nice and rich
at high loads/rpms to keep the engine together, and lean it out somewhat at
light loads for good cruising economy and throttle response.
To do this the AFR correction map will provide a(nother) multiplyer that is
applied to the basic pulsewidth, to give a final injector pulsewidth. Since
the basic pulsewidth provided by the flow scale is a known 14.7 AFR, this
multiplyer will also allow us to calculate the new 'corrected' AFR.
Lets say we wanted a Stoich AFR at idle (say 800rpm, at minimum load on the
map). The basic pulsewidth is already stoich, so to lets keep it the same
(Set the multiplyer to 1).
Want a Rich AFR? Make the Multiplyer greater than 1. Lets say bulk rich -
around 10:1. We'd want a multiplyer of 1.47 (14.7 / 10).
And Lean? You guessed it, Multiplyer of less than 1. Targetting an AFR of
16:1? Use a multiplyer of 0.92 (14.7 / 16).
Open up ROM Editor again and have a look at the Fuel Maps (hi/lo octane,
doesn't matter). Those numbers don't look anything like 1, or 1.47 or 0.92,
do they? So how do we read them? I'm glad you asked. Here's the little
forula you need.
if DATA > 128 then MULTIPLYER = (DATA - 64 / 128)
else
MULTIPLYER = (DATA + 128 / 128)
This formula dictates the range of multiplyers we have access to, ie:
0 = 1x (0 + 128 / 128)
128 = 2x (128 + 128 / 128)
&
129 = 0.5x (129 - 64 / 128)
255 = 1.5x (255 - 64 / 128)
Thus we can target AFR of 7.35:1 (2x) through to 29.4:1 (0.5x) which should
be enough for anyone.
Putting it all Together Part 2:
Lets repeat the exercise we completed the first time around, but this time
use the raw data, and formula we now know. Lets use it on a stock CA18DET
Map
So - Air Flow Meter is reading 4.9 Volts & Car is revving to 6800rpm.
What Injector pulsewidth will the ECU use, and what is the target AFR.
For bonus points, what will the dutycycle of the injectors be?
Start - Determine Flow Quotient.
AFM is reading 4.9 volts. Check the Value of the VQ map at position 49
(0.1v resolution remember).
Divide it by 65535. What did you get? Ok, our AFM is measuring X% of it's
total flow.
Next - Read Flow Scale.
The Flow Scale has 16 columns. We need to know which column to read.
Multiply your Flow Quotient by 16 and round up. Ok, Column 16 on the Flow
Scale is 83
Next - Determine K Constant Pulsewidth.
I'm going to lay a new fomrula on here
Next - Determine Basic Injection Pulsewidth.
Basic Injection Pulsewidth = Flow Scale Multiplyer x K Constant
K Constant Pulsewidth = 00 B7 = 0.125ms.
Basic Injection Pulsewidth = 83 x
--
[UNDER CONSTRUCTION]
Tuning (or doing something useful with all the knowledge we have just
gained)
General Retune:
Rev Limits & Speed Limits: (Good starting point)
Changing Injectors: (K Constant is your friend)
To work out the pulsewidth of a different K constant do the following.
Pulsewidth = K Constant * 0.125 / 183 (183 is B7 in Decimal).
Changing AFMs: (K Constant or Flow Scale - the choice is yours.)
===================================================
POST FROM Diarmuid Tyson ENDS HERE
===================================================
I hope it makes nice reading for you people.
Chris
1992 Sunny 2.0GTi (N/A SR20DE - N14)
Athens -GREECE