Forum: Fahrzeugelektronik BMW Schaltzentrum Lenksäule - Problem beim Nachrüsten von Funktionen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Philipp (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

mir lässt nun schon seit geraumer Zeit (mehrere Monate) mein 
Schaltzentrum Lenksäule (SZL) keine Ruhe, denn ich finde einfach keine 
Lösung wie ich die Konfiguration ändern kann.

Das Fahrzeug ist ein BMW E91. Das SZL sitzt vor dem Lenkrad und enthält 
unter anderem die Hebel für Scheibenwischer, Blinker und Tempomat. Die 
Hebel sind mit Folienkabel an die scheckkartenförmige Platine 
angeschlossen.

Mein Vorhaben ist nun folgendes:
Ich habe mein SZL 1 ohne Tempomathebel ausgebaut und stattdessen ein SZL 
2 mit Tempomathebel eingebaut. Alles richtig codiert und angelernt -> 
funktioniert!
Problem: Der Wischerhebel von SZL 2 hat keine Schaltstellung für den 
Heckscheibenwischer, ich kann also meinen Heckscheibenwischer nicht 
nutzen.

Ich habe nun einfach diese Hebeleinheit von SZL 1 genommen und in SZL 2 
eingebaut. Ergebnis: Alle Hebel am SZL (Blinker, Tempomat, Wischer) 
funkionieren nicht mehr.

Hier nun die scheinbar unlösbare Frage:
Was muss ich ändern, um die Heckscheibenwischerfunktion hinzuzufügen?

Nachfolgend beschreibe ich die von mir herausgefundene Funktionsweise 
bzw. den Aufbau:

Die Detektion der Hebelstellung geschieht optisch: Es gibt in jeder der 
3 Hebeleinheiten 4 LEDs, die nacheinander in einer Sequenz angesteuert 
werden. Bewegt man den jeweiligen Hebel, werden die LED's von einer sich 
mit dem Hebel bewegenden Blende abgeschattet. Dies wird von einem LDR 
erkannt. Im Mikrocontroller wird das ganze ausgewertet und 
weiterverarbeitet. Auf Seite 8 und 9 in der PDF unter folgendem Link ist 
das Prinzip nochmal veranschaulicht:
https://xoutpost.com/pdf/e70/05b1_E70%20Steering%20Column%20Switch%20Cluster.pdf


Was ist nun der elektrische Unterschied vom Hebel mit bzw. ohne 
Heckscheibenwischer?
Am Hebel ohne Heckwischer ist EINE der vier LEDs nicht bestückt.

Im angehängten Bild habe ich mal den relevanten Teil der Schaltung 
aufgezeichnet. Sorry für die schlechte Zeichnung, ich hoffe der Aufbau 
wird dadurch trotzdem klar.
Jeder der im Schaltplan links gezeigten Treiber treibt je eine LED im 
Wischerhebel, Blinkerhebel und Tempomathebel. Es sind also 3 LEDs (bzw. 
2 LED's im Wischerhebel ohne Heckwischerfunktion) parallel 
angeschlossen.

Nun die große Frage: Wie erkennt das SZL nach dem Austausch des 
Wischerhebels, dass nun eine 4. LED bestückt ist, um danach die Funktion 
aller Hebel zu verweigern?
Meine Idee dazu: In der Config des SZL ist die Information abgelegt, 
dass im Wischerhebel nur 3 Signale (3 LED's) empfangen werden dürfem, da 
keine Heckwischerfunkionalität konfiguriert ist. Um diese Theorie zu 
testen, habe ich nochmal die Wischerhebeleinheit mit Heckwischer 
eingebaut, aber dort die 4. LED abgeklebt. Das Ergebnis blieb jedoch das 
Selbe: Alle Hebel tot!

Hat jemand von euch vielleicht eine Idee, wie dieses Vorhandensein einer 
zusätzlichen LED detektiert wird? Ich könnte mir sonst nur noch 
vorstellen, dass der Strom von jedem LED Treiberkreis gemessen wird und 
dieser mit dem zur Konfiguration passenden Soll-Strom verglichen wird. 
Klingt aber irgendwie zu aufwändig, um tatsächlich so zu sein.

Würde mich also sehr freuen, wenn jemand noch ein paar Ideen hätte.

Vielen Dank schonmal für eure Hilfe!

Gruß
Philipp

P.s.: Ich weiß dass es viel effektiver wäre, sich einfach das passende 
SZL zu kaufen. Habe mich aber nun schon so ins Thema reingefuchst, dass 
ich dieses Rätsel unbedingt lösen möchte. Also seht es einfach als 
Freude am Elektronikbasteln ;-)

von Stephan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich denke da bist Du bei Maliboo besser aufgehoben. Ich tippe auf 
Codierung.

von Philipp G. (geiserp01)


Bewertung
0 lesenswert
nicht lesenswert
Kannst Du von dem ganzen Hebelgedönse mal Photos machen? Gibt es vom 
Heckwischerhebel keinerlei elektrische Verbindungen, geschieht die 
Detektion nur optisch?

von Philipp (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@ Stephan:
Die Codierung hab ich auch schon in Betracht gezogen. Dagegen spricht 
aber, dass ich keinen Fahrzeugauftrag (= Codierung) für den 
Heckscheibenwischer finden konnte.
Noch ein Indiz: Blinker und Wischerhebel vom neuen SZL haben auch ohne 
Codierung, also direkt nach Einbau funktioniert. Also eher 
unwahrscheinlich, dass bei falscher Codierung gar kein Hebel mehr 
funktioniert.

@ Philipp G.:
Wie beschrieben sitzt im Wischerhebel (einen separaten Hebel für den 
Heckwischer alleine gibt es nicht) eine Folienplatine, die auch die 
optoelektrischen Bauteile (LED's, LDR, ein paar SMD-Widerstände) 
beinhaltet. Diese Folienplatine ist ans SZL angeschlossen.
Der Schaltplan aus der Hebeleinheit ist auf der linken Seite der 
angehängten Zeichnung zu sehen.

Im Anhang sieht man den Teil des Folienleiters mit den LED's. Leider ist 
mir die andere Seite, wo unter anderem der LDR sitzt, beim Basteln 
abgerissen. Ist aber nur ein Ersatzteil.

von guest (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Philipp schrieb:
> dass der Strom von jedem LED Treiberkreis gemessen wird

Doch, steht sogar im verlinkten PDF (auch auf Seite 8):
1
The function can be monitored by measuring the current at the LED.

Und ein Stück weiter hinten dann auch noch sowas:
1
The functions of the steering column switch cluster are:
2
...
3
  Detecting the controls in the multifunction steering wheel
4
...

von Philipp (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das mit der Strommessung hab ich tatsächlich komplett überlesen. Vielen 
Dank für den Hinweis!

Dann werde ich wohl als nächstes mal das EEPROM eines SZL in der 
benötigten Konfiguration besorgen und auslesen müssen, dann den Inhalt 
ins EEPROM aus meinem SZL schreiben.

Als Vortest werde ich die Bestückung von meiner alten SZL Platine (SZL1) 
OHNE TEMPOMAT so abändern, dass sie identisch zum aktuell im Auto 
verbauten SZL (SZL2) MIT TEMPOMAT ist. Dann mal den Inhalt vom EEPROM 
SZL2 auf den EEPROM in SZL1 kopieren, und testen ob damit SZL1 im Auto 
funktionieren würde.

Bin gespannt auf das Ergebnis.

Danke schonmal für eure Hilfe!

von guest (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Philipp schrieb:
> dann den Inhalt
> ins EEPROM aus meinem SZL schreiben.

Kenn jetzt den E91 nicht im Detail, aber normalerweise ist die Codierung 
beim BMW in mehreren Steuerteilen gespeichert. Noch ein Zitat aus dem 
PDF:
1
The DSC must be encoded after replacing the steering column switch cluster. The DSC
2
transfers the coding to the steering column switch cluster.

von Philipp (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Dass die Codierung in mehreren Steuergeräten gespeichert ist, ist 
richtig. Die Codierung für den Tempomat musste ich z.B. auch in mehreren 
Steuergeräten hinzufügen.
Außerdem musste man das DSC Steuergerät neu initialisieren, erst dann 
hat es die Seriennummer vom SZL gelernt und diverse Fehler ließen sich 
löschen.

Aber das neue SZL hatte ja auch schon ohne Codierung funktioniert. Ich 
denke deswegen, dass die interne Konfiguration des SZL unabhängig von 
einer Codierung von außen ist. Wenn diese Konfiguration nicht zu den 
angeschlossenen Hebeln passt, funktioniert es auch nicht. In dieser 
Konfiguration ist vermutlich auch der Sollstrom jedes LED-Zweigs 
gespeichert.

Wie gesagt, ich kann auch keine Information über das Codieren einer 
Heckwischer Funktion finden.

von Frank _. (fbi)


Bewertung
0 lesenswert
nicht lesenswert
Philipp schrieb:
> Aber das neue SZL hatte ja auch schon ohne Codierung funktioniert.

Wenn unser eigenes Steurgerät noch keine Konfig hat, fordert es ein 
eventuell vorhandenes Backup an (keine Ahnung wo das genau liegt, die 
Anfrage geht an das nächste CAN-Gateway). Der Vorgang läßt sich auch 
manuell über den Diagnose Tester auslösen.

von Soul E. (souleye) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Stephan schrieb:

> Ich denke da bist Du bei Maliboo besser aufgehoben. Ich tippe auf
> Codierung.

Wobei es derer zwei gibt. Die Herstellercodierung beim Zulieferer 
schaltet die Features frei, welche die Hardware grundsätzlich hergibt. 
Die OEM-Codierung am Bandende bzw in der Werkstatt aktiviert aus dieser 
Menge dann die aktuell benötigten Funktionen.

D.h. wenn ein Schaltungsteil bei Deinem Steuergerät nicht bestückt ist, 
dann reicht eincodieren in der Werkstatt nicht aus, sondern Du brauchst 
in den meisten Fällen zusätzlich die Software des Zulieferers.

von Philipp (Gast)


Bewertung
0 lesenswert
nicht lesenswert
@ Frank:
Ich verstehe deinen Einwand. Klingt auch sinnvoll. Aber ich kann einfach 
keine Konfigurationseinstellung für den Heckscheibenwischer finden. Wenn 
du mir dafür einen Fahrzeugauftrag nennen könntest, würde ich das 
ausprobieren. Auch wenn man über Google sucht findet man nirgendwo eine 
Erwähnung von einer Codierung für den Heckwischer.


@ soul:
Ganz genau das habe ich vermutet. Die "interne" Konfiguration des SZL 
schaltet erstmal die zur Hardware passenden Features frei.
Bei all meinen Versuchen habe ich die Hardware verändert, sie passt 
nicht mehr zur Konfig im SZL, die SW erkennt einen Fehler und schaltet 
alles ab.

Wie wahrscheinlich ist es, dass ich mit einer EEPROM Kopie eines anderen 
SZL mein SZL mit der gleichen Hardwarekonfiguration zum laufen bringe? 
Sind die Konfigurationsdaten wirklich nur im externen EEPROM (24C08) 
abgelegt?

Der Hauptprozessor scheint ein custom marking zu haben. Ich vermute 
aber, dass es sich dabei um einen normal käuflichen mikrocontroller 
handelt. Hat jemand eine Idee um welchen es sich handeln könnte? Irgend 
ein Motorola Freescale vielleicht? Dann könnte ich evtl mit einem 
Debugger herausfinden, aus welchem Bereich des EEPROMs die 
Stromschwellen für den Sollstrom der geänderten LED's genommen werden.

von LLOOKK (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi, lustig, ich habe dieses Teil miteintwickelt :-)

Du hast schon viel rausgefunden, als kleine Tipps:

1. Es handelt sich um einen maskenprogrammierten Fressscale Controller, 
daher das Custom marking. Der Controller wurde seinerzeit extra für uns 
gebaut.

Das SZL enthält mehrere Fahrzeugkodierungen für verschiedene Baureihen. 
An unseren EOL wurde nur reingeschrieben, für welche Baureihe /Fahrzeug 
das SZL von BMW bestellt wurde. Damit wird dann ein bestimmter bereich 
im EEPROM aktiviert.

Von manipulationen am EEPROM rate ich stark ab, da es auch die Codierung 
für den Lenkwinkelsensor enthält. Dieser ist Safety relevant und 
dementsprechend ist das EEPROM mit Checksummen geschützt. Programmierst 
du Mist rein, geht der LWS in den sicheren Zustand, und damit schaltet 
sich dein gesamtes ABS ab. Sprich rote Lampe an im Kombi und beim TÜV 
dann spätestens Probleme. Im EEPROM sind u.a. die Schwellen für die 
Strommessungen der LED´s hinterlegt. Auch die Hebel sind safety 
(Blinker!) und daher gibt es bei unplausiblen Signalen eine vollständige 
Abschaltung. Das ist das was du ja auch selbst schon gemerkt hast.

Es lassen sich über unsere Werksdiagnose alle Hebel prinzipiell 
ein/auskodieren, je nachdem BMW die Fahrzeuge ausstattet (mögliche 
Baureihenausstattungen).
Es ist eine 2-aus-3 Auswertung hinterlegt, d.h. es müssen mehrere EEPROM 
Zellen "passend" gefüllt werden. U.a. ist der HW Index, die Stromwerte 
für die 4. LED sowie die passende Variante/Baureihe zu codieren. Dann 
müssen die Checksummen für die Codierblöcke noch neu ausgerechnet und 
auch kodiert werden. Das würde selbst mit meinen Insiderinfos hier sehr 
schwierig werden.

Ich würde dir folgendes empfehlen: Das 1. SZL verwenden und dort dem 
Tempomathebel (ACC) dranbauen. Wenn es den Tempomat "serienmäßig" gab in 
deiner Baureihe, kann man den jedenfalls mit der BMW Diagnose (INPA) 
eincodieren.
Ein Heckwischer eincodieren kann BMW definitv nicht, das war pro 
Baureihe festgelegt, ob die Fahrzeuge Heckwischen haben, oder nicht 
(z.B. E92 Coupe hat keinen Heckwischer). Dein 1. SZL enthält breits die 
nötigen Daten dafür, hier muss die Funktion nur über BMW Diangose 
freigeschaltet werden. Das sollte sogar die fachwerkstatt können.

LG LLOOKK

von Philipp (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Super, dass noch jemand sich meldet der sich wirklich mit dem Ding 
auskennt. Freut mich echt ungemein!

Ich habe nach dem Post jetzt mal folgendes ausprobiert:
- SZL mit Heckwischerhebel, das ich auf "Tempomat" Bestückung geändert 
habe, ins Auto eingebaut
- Die codierung aller nötigen Steuergeräte müsste ja passen, denn ich 
hatte ja schon ein SZL mit Tempomat, das funktioniert ja wie gesagt 
bereits
- Folglich muss ich nur eine neu-Initialisierung des DSC bzw. SZL 
anstoßen, richtig?
- Dazu habe ich mit NCS Expert eine leere ASW_PSW.MAN ins DSC 
geschrieben. Dies führt nach meinem Verständnis dazu, dass das DSC und 
das daran über einen separaten CAN angeschlossene SZL die Konfiguration 
von irgendwelchen anderen Steuergeräten lernen.

Leider hat auch dieser Schritt nicht zu einem funktionierenden SZL 
geführt. Gleiches Ergebnis: Alle Hebel verweigern die Funktion.

@ LLOOKK, bist du dir sicher, dass das so funktionert? Oder habe ich 
vielleicht irgendwas falsch gemacht?

Falls es weiterhilft, ich hätte auch noch Tool32 und das entsprechende 
File für das DSC. Hier gibt es nochmal einige Sonderfunktionen.
Mir sind hier besonders zwei Funktionen aufgefallen: Codierung SZL lesen 
und Codierung SZL schreiben. Könnte ich hier vielleicht manuell die 
richtige Codierung schreiben? Habe die beiden Funktionen mal im Bild 
angehängt.

Ich habe auch gesehen, dass der Hersteller des DSC Steuergeräts sogar 
Continental Teves wäre. Ist das SZL dann vom gleichen Zulieferer?

Was mich noch interessieren würde:
1. An welchem Punkt bzw. über welchen Widerstand wird denn der Strom der 
einzelnen LED-Zweige gemessen? Wird das mit dem großen Mikrocontroller 
gemacht?
2. Bietet der masken-programmierte Freescale Mikrocontroller denn auch 
eine Möglichkeit, über BDM o.ä. on-chip zu debuggen?
3. Ich habe in irgendwelchen Konfig-Files zum SZL etwas von CCP gelesen. 
Erlaubt das SZL vielleicht sogar noch trotz Serien-Steuergerät einen 
Zugriff aufs Cal-RAM über CCP?


Im ersten angehängten Bild sind noch die zwei ausgelesenen Fehler zu 
sehen.

Vielen Dank LLOOKK für deine Antwort. Ich hatte die Hoffnung schon fast 
aufgegeben!

von Philipp (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht stößt ja mal jemand anderes, der mit seinem SZL aber 
elektrische Probleme hat, auf diesen Thread.
Deswegen hänge ich mal ein paar Signalverläufe der LED-Zweige mit an.

Im Bild Signal_Einzelnzweig_uC_bis_LED sind von oben nach unten die 
Signale eines LED-Zweigs an folgenden Stellen gezeigt:
1. Ausgang Mikrocontroller (5V/Div, Signal-Minimum = 0V)
2. Basis Transistor (1V/DIV, Signal-Minimum = ca. 0V)
3. Ausgang Transistor (1V/DIV, Signal-Minimum = ca. 0V)
4. Kathode LED (1V/DIV, Signal-Minimum = ca. 0V)


Auf dem Bild Signal_uC_Ausgang sind die 4 Ausgangssignale der 
Mikrocontrollerpins für die einzelnen LED's zu sehen.

von Philipp (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nach über einem Jahr melde ich mich mit positiven Nachrichten zurück:

Ich habe das EEPROM aus einem SZL in Zielkonfiguration (Tempomathebel + 
Wischerhebel mit Heckwischer) auslesen können.
Dieses habe ich dann in das EEPROM auf meiner Platine geschrieben, und 
dort auch Tempomathebel + Wischerhebel mit Heckwischer eingebaut.

Und siehe da, es funktionierte auf Anhieb!

Falls jemand auf diesen Thread stößt, im Anhang der EEPROM Dump.

Funktionsweise nochmal zusammenfasst:
Jeder der drei Hebeleinheiten (Tempomat, Blinker, Wischer) besitzt 4 
(bzw. 3) LED's, die zur Erfassung der Hebelposition dienen. Dabei ist 
elektrisch immer eine LED pro Hebel an einen Treiberkreis der Platine 
parallel angeschlossen.
Abhängig von der Hebelkonfiguration können an einem Treiberkreis also 1 
bis 3 LED's angeschlossen sein.
Der Strom in jedem Treiberkreis wird überwacht. Die Diagnoseschwellen 
für jeden Kreis ist passend zur Hebelkonfiguration im EEPROM abgelegt. 
Ändert man nun die Hebelkonfiguration, z.B. indem man einen Hebel OHNE 
Heckscheibenwischerposition gegen einen MIT (4. LED bestückt) verbaut, 
ist der Strom außerhalb der Diagnoseschwelle, und das ganze SZL 
funktioniert nicht mehr.

Zwei Fragen bleiben aber noch:
1. Wäre es irgendwie möglich gewesen, das SZL per Codierung o.ä. mit dem 
Heckwischer-Hebel kompatibel zu machen?
2. An welcher Stelle im EEPROM sind die Stromschwellen abgelegt?

Hoffe ich kann mit meiner Erklärung jemandem weiterhelfen!

von Raphael (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi, ich stehe vor dem gleichen Problem. Obwohl ich es noch nicht 
versucht habe. Besitze einen e91 bj 3/06 automatik N52B25, dort möchte 
ich auch ein Tempomat nachrüsten. Ldm Modul habe ich mir schon besorgt 
und ein SZL mit Tempomat hebel auch. Jedoch ohne heckscheiben hebel.
Wie hast du es zum funktionieren geschafft. Mit codieren kenne ich mich 
aus, jedoch mit den epromm nicht. Kannst du mir helfen?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.