Kombiinstrument - Tankanzeige erweitern

Aus T4Forums Doku
Zur Navigation springenZur Suche springen

Die Tankanzeige im T4 zeigt bekanntlich maximal 78l an. Zusätzlich habe ich das Gefühl, das die erste Hälfte des Tanks "länger" hält, als die zweite. Wenn die Tanknadel beispielsweise genau "1/2" anzeigt, habe ich gut 650 km gefahren. Fahre ich dann den Tank fast leer, sodass die Tanknadel auf "Leer" steht und <4 Liter angezeigt werden, habe ich jedoch keinesfalls 1.300 km geschafft, sondern eher 1.050 - 1.100 km.

Desweiteren bleibt meine Tanknadel nach dem Volltanken sehr lang auf "Voll". Ich kann gut 100 - 150 km fahren, bevor die sich die Nadel das erste mal bewegt.

Nachdem ich mich einige Zeit mit dem EEPROM-Dump des KIs beschäftigt habe, fand ich insgesamt vier Kennfelder, die mit der Tankanzeige zusammen hängen und die drei beobachteten Szenarien erklären.


Wie funktionert die Tankanzeige eigentlich?

Auch das ist mal wieder sehr gut in der t4-wiki beschrieben. Ich fasse es aber mal kurz zusammen:


Der Tankgeber ist ein veränderlicher Widerstand, der anhand der Stellung des Schwimmers einen bestimmten Widerstandswert erzeugt.

Im Kombiinstrument wird aus diesem Widerstandswert eine Spannung gemacht, die dann von einem Analog-Digital-Wandler digitalisiert und weiterverarbeitet wird.

Diesem (vorzeichenlosen) A/D-Wert wird dann über die Kennfelder des Tankgebers:

  • ein Literwert (MFA, VCDS, usw)
  • ein Nadelwert (=Zeigerausschlag)

zugeordnet.

Gleichzeitig wird noch ein lesbarer Widerstandswert erzeugt (aber wohl nicht über den EEPROM, sondern hart im Prozessor verknüpft) - das ist aber für die Anpassung nicht so wichtig.


Was ist bekannt?

Folgende Zuordnung zwischen Tankfüllstand, Literwert und Widerstandswert ist bekannt:

Zeigerstellung Inhalt in Litern Widerstand in Ohm
leer weniger als 4 größer als 283
Reserve 10 189
1/4 20 137
1/2 40 89
3/4 60 62
voll 78 kleiner als 36


Interessant für uns ist, das jedem Widerstandwert, der kleiner als 36 Ohm ist, ein Literwert von 78l angezeigt werden. Ebenso zeigt die Nadel ab diesem Wert "Voll".

Vor einiger Zeit war ich tanken (etwas voller als bis zum ersten "Klick" der Zapfsäule) und habe dann unmittelbar den Widestandswert ausgelesen. Mir wurden 29 Ohm angezeigt. Demnach kann der Tankgeber (also das Bauteil) sehr wohl mehr als 78l messen. Das KI zeigt es nur nicht an.


Was steht im Dump?

Ich habe bei meinem KI (7D0920803B) vier Kennfelder gefunden, die mit dem Tank zusammenhängen.

Kennfeld Adresse
Tankgeber A/D Wert 0x1F4 - 0x203
Tankgeber Wert in Liter 1 0x204 - 0x213
Tankgeber Wert in Liter 2 0x214 - 0x223
Tankgeber Wert für Schrittmotor 0x224 - 0x233


Die ersten beiden Kennfelder scheinen den A/D Werten die Literwerte zuzuordnen und die letzten beiden ordnen den Literwerte dann Zeigerwerte zu.


A/D Kennfeld

Adresse HEX Wert Dezimalwert
0x1F5 & 0x1F4 00 A2 162
0x1F7 & 0x1F6 00 A2 162
0x1F9 & 0x1F8 00 A2 162
0x1FB & 0x1FA 00 F6 246
0x1FD & 0x1FC 01 3E 318
0x1FF & 0x1FE 01 A2 418
0x201 & 0x200 01 F2 498
0x203 & 0x202 02 57 599


Liter Kennfeld 1

(ab hier lasse ich die Offsets weg)

HEX Wert Dezimalwert Liter (Dezimalwert / 8)
02 70 624 78
02 70 624 78
02 70 624 78
01 E0 480 60
01 40 320 40
00 A0 160 20
00 50 80 10
00 20 32 4


Liter Kennfeld 2

Das dritte Kennfeld ist identisch mit dem zweiten, nur das es "spiegelverkehrt ist":

HEX Wert Dezimalwert Liter (Dezimalwert / 8)
00 20 32 4
... ... ...
02 70 624 78


Schrittmotor-Kennfeld

HEX Wert Dezimalwert Zeigerstellung (Dezimalwert / 8)
00 25 37 4.625
00 95 149 18.625
01 84 388 48.5
02 E2 738 92.25
04 40 1088 136
05 9F 1439 179.875
05 9F 1439 179.875
05 9F 1439 179.875

Was bedeutet das?

Das waren jetzt ganz schön viele Zahlen, was steht da jetzt überhaupt?

Das lässt sich in eine Tabelle runterbrechen:

A/D Wert Liter Widerstandswert in Ohm Zeigerausschlag in °
162 78 < 36 179.875
162 78 < 36 179.875
162 78 < 36 179.875
246 60 62 136
318 40 89 92.25
418 20 137 48.5
498 10 189 18.625
599 4 > 283 4.625


Man sieht, das sich jeweils drei Werte wiederholen. Diese enthalten keine neue Informationen für das KI. Das sind also ungenutzte Speicherstellen.

Wie wir oben schon gesehen haben, kann es kleinere Widerstände als 36 Ohm geben. Nur - wie klein können sie werden und welchen Liter-Werten entsprechen sie?

Die eigentliche Anpassung

Um die Tankanzeige zu erweitern sind drei Anpassungen notwendig:

  • Ergänzen der A/D-Werte für Widestände kleiner als 36 Ohm
  • Ergänzen der dazu passenden Liter Werte
  • Neuskalierung der Tankanzeige


Ergänzen der A/D-Werte

Zunächst stelle ich die A/D-Werte über die Widerstandswerte graphisch dar:

AD ueber Widerstand ohne Trend.PNG
Widerstandswert A/D-Wert
36 162
62 246
89 318
137 418
189 498
283 599


Daraufhin lasse ich mir von Excel eine Trendlinie erzeugen: Polynom 2. Ordnung.

Heraus kommt die Formel: f(x) = -0.005x² + 3.3212x + 55.326

Mithilfe dieser Formel errechne ich jetzt zwei neue (Erinnerung: es wurde drei mal dasselbe gespeichert, zwei davon sind also "frei") A/D-Werte zu Widerstandswerten kleiner 36 Ohm. Als Widerstandswerte habe ich 29.5 Ohm und 23 Ohm gewählt - die Wahl ist erstmal nur ein Versuch, sie sind geraten [Spoiler: später zeigt sich, sie passen sehr gut].

Mithilfe der Formel errechne ich dazu die A/D-Werte:

Widerstandswert A/D-Wert
23 129
29.5 149

Damit hätten wir zwei neue A/D-Werte für Widerstandswerte kleiner 36 Ohm.


Ergänzen der Liter-Werte

Zu den oben berechneten A/D-Werten passen sehr gut folgenden Liter-Werte:

Widerstandswert A/D-Wert Liter
23 129 85
29.5 149 82.5
36 149 80

Diese Werte (also 82.5 und 85) habe ich mehr oder weniger experimentell ermittelt. Erst habe ich 85 und 90l genutzt, den Bulli leer gefahren bis ich liegen geblieben bin und voll aufgetankt. Das KI zeigt mir dann 90l an, die Zapfsäule 85l. Also habe ich die beiden oberen Werte verringert und jetzt passt es ziemlich gut. Kann bei anderen Bullis aber ein wenig anderes aussehen.


Zwei von drei Anpassungen sind nun fertig, allerdings fehlt noch die Neuskalierung der Tankanzeige.

Skalierung

Im Originalzustand entsprachen 179.875° Zeigerstellung 78l Tankinhalt. 18.625° Zeigerstellung entsprachen 10l Tankinhalt. (Beginn der Reserve)

Da ich den Reservebereich so lassen möchte, passe ich nur den Bereich darüber an.

Neu soll gelten:

  • 90l Zeiger "Voll"
  • 45l Zeiger "Halb"
  • 10l Zeiger "Beginn Reserve" (also wie original)
  • 4l Zeiger "Leer"

Daraus resultiert folgende Zuordnung

Liter Nadelstellung
4 4.625
10 18.625
20 38.78
40 79.1
60 119.41/td>
80 159.72
82.5 169.80
85 179.875

Im Aufbau



Bei Fragen oder Ergänzungen im Forum als "TCA965" erreichbar