Thread: Gearshift Maps
View Single Post
  #87  
Old 03-03-2009, 10:48 AM
b3lha's Avatar
b3lha b3lha is offline
Phil & Belha
 
Join Date: Aug 2001
Location: Alcyone Limited, Buckinghamshire UK
Posts: 2,671
Re: Gearshift Maps

Something we haven't discussed so far is how the TCU chooses whether to use Normal mode or Power mode. When you step on the gas, the TCU has to decide whether to stay in Normal mode or switch to Power mode. when you back off a little, it has to decide whether to keep power mode on, or go back to normal mode. I researched this a while ago but never properly documented it. It seems like something that might be fun to modify. By fiddling with this we can make the car more eager to engage power mode on kickdown, or make it keep power mode longer after easing off.

We start off with 4 variables: P, V, O & K.

P (0x00C1). This is the Power mode Timer.

V (0x0018). This is the Vehicle speed in km/h.

O (0x004C). This is the Throttle Opening, a number between 0 and 7. But it's not a linear relationship. The table at location C83C maps Throttle Position% to Throttle Opening. The throttle opening value is used in lots of places in the TCU code, so it probably wouldn't be a good idea to mess with this table.
Code:
0000C830   .. .. .. .. .. .. .. .. .. .. .. .. 00 10 16 20
0000C840   30 40 50 60 FF .. .. .. .. .. .. .. .. .. .. ..
The numbers in the table relate to the TPS voltage, 00=0v and FF=5v.
Code:
TPS Voltage     Throttle Percent  Throttle opening
0.00 to 0.30    0% to   5%        0
0.31 to 0.42    6% to   8%        1
0.43 to 0.62    9% to  12%        2
0.63 to 0.93   13% to  18%        3
0.94 to 1.24   19% to  24%        4
1.25 to 1.56   25% to  30%        5
1.57 to 1.87   31% to  37%        6
1.88 to 5.00   38% to 100%        7
K (0x0048). This is the Kickdown speed. The rate of increase of throttle. How fast you step on the pedal.

Now we start to look at the logic. When deciding which shift mode to use, the TCU first calculates a variable B:

B is the speed band it is worked out from a table at location C84D.
Code:
0000C840   .. .. .. .. .. .. .. .. .. .. .. .. .. 1E 3C 5A

Speed (km/h)  Band
 0 to 29      0
30 to 59      1
60 to 89      2
90+           3
Now the TCU checks whether it is already in power mode. If not, it calculates an index I = (B*4)+(O/2). The Index is used to lookup a table at C850. This table provides a threshold value T. The Kickdown speed is compared to the Threshold. If K > T then the TCU switches to Power mode.
Code:
0000C850   96 96 6E 6E 78 78 5A 5A 6E 6E 50 50 64 64 50 50

Speed Band 0, throttle opening 0 - 1, threshold=96
Speed Band 0, throttle opening 2 - 3, threshold=96
Speed Band 0, throttle opening 4 - 5, threshold=6E
Speed Band 0, throttle opening 6 - 7, threshold=6E

Speed Band 1, throttle opening 0 - 1, threshold=78
Speed Band 1, throttle opening 2 - 3, threshold=78
Speed Band 1, throttle opening 4 - 5, threshold=5A
Speed Band 1, throttle opening 6 - 7, threshold=5A

Speed Band 2, throttle opening 0 - 1, threshold=6E
Speed Band 2, throttle opening 2 - 3, threshold=6E
Speed Band 2, throttle opening 4 - 5, threshold=50
Speed Band 2, throttle opening 6 - 7, threshold=50

Speed Band 3, throttle opening 0 - 1, threshold=64
Speed Band 3, throttle opening 2 - 3, threshold=64
Speed Band 3, throttle opening 4 - 5, threshold=50
Speed Band 3, throttle opening 6 - 7, threshold=50
Looking at the table, it is clear that Subaru have not taken full advantage of the flexability available. They have defined the thresholds in pairs. Within each speed band, they have simply pecified a low throttle threshold and a high throttle threshold. The borderline between low and high throttle being 19%.

If you've followed me so far then you will realise that at low speed and throttle, it takes a faster kick to engage power mode. At higher speeds, and with more throttle, a slower kick will do it.

So that is how power mode gets engaged. Now we'll deal with how it gets disengaged.

After calculating B, if the TCU is already in power mode, it uses B to lookup a table at C860. There are 4 entries in the table, two bytes each.
Code:
0000C860   02 4B 02 4B 03 32 04 19 .. .. .. .. .. .. .. ..
The first byte of each entry is a threshold A. The throttle opening O is compared against the threshold. If O > A then the second byte gets written to the powermode timer P. The timer counts down and when it gets to zero, the TCU switches back to Normal mode. But while it is counting down, the TCU is continually re-evaluating this condition and resetting the counter. Only when O < A is the counter allowed to timeout.

To explain a bit better, if B=0, then A will be 2 and the timer will be set to 4B. Provided the throttle opening remains greater than 12%, the TCU will keep resetting the timer to 4B and power mode will stay on. Once the throttle opening falls below 12%, the timer will tick down to zero and the TCU will switch back to Normal mode. The values 4B, 32 and 19 represent 3, 2 and 1 seconds respectively. At low speed, power mode will stay on for 3 seconds after you lift off. At higher speed it will be 2 seconds or 1 second if you are doing more than 90km/h.
__________________
Subaru ECU and TCU Website
1992 Alcyone SVX Version L
1992 Alcyone SVX Version L
1994 Alcyone SVX S40-II
2004 Subaru Legacy 2.5 SE Sports Tourer
1996 Subaru Legacy 2.2 GX Wagon
1988 Subaru Justy J12 SL-II
Reply With Quote