Kinetis für KFZ/ CAN Bus Klimaanlagenregelung

alecxs

Neues Mitglied
28 Jun 2020
8
2
3
So ich stelle mal mein Projekt vor, damit ihr es zerlegen könnt :vroam:

An einem Mercedes ist vermutlich das SAM defekt, was zur Folge hat das der Klimakompressor nicht angesteuert wird. Das Fahrzeug hatte einen Kaufpreis von 1500 €. Reparatur wird zu teuer, daher möchte ich etwas basteln. An einem weiteren Mercedes gleiches Fehlerbild, deswegen soll eine quick & dirty Lösung her (Vorab: ja, ein CAN-Bus ist sicherheitsrelevant, und ja, damit erlischt die Betriebserlaubnis des Fahrzeugs)

Grundsätzlich lässt sich die Klima in Betrieb nehmen wenn man den Kompressor überbrückt. Auf die Fehlersuche möchte ich hier nicht eingehen, dazu gibt es schon einen Beitrag in einem anderen Forum

1. Um den Kompressor anzusteuern muß ein PWM Signal erzeugt werden
(der einfache Teil)

Dazu habe ich hier einen Teensy 3.2 in meiner Kiste gefunden (hatte ich mal als preiswerten Ersatz für den Hak5 USB Rubber Ducky gekauft um ein Handy zu entsperren).



1.a In die Programmierung finde ich mich rein, dazu gibt es ein Add-on für Arduino, Software ist also weniger das Problem
1.b Mit der Elektronik brauche ich Hilfe bei der Erstellung eines Schaltbilds, Berechnung, etc bei der
- Betriebsspannung = 5 V
- Signalpegel = 3,3 V
- Strombegrenzung = 10 mA
(das Regelventil vom Klimakompressor zieht ca. ~ 1 A bei 14 V)

2. Die Sensoren müssen ausgelesen werden, z.B. darf der Druck 20 bar nicht überschreiten. Dazu wären zwei Varianten denkbar

(Variante 1 - analog, anspruchsvoll)
Spannung der Sensoren messen
und in Regelgröße umrechnen. Hier darf verkabelt werden ohne Rücksicht. Direkt in der Klimaleitung sitzt ein kombinierter Kältemitteldruck-/temperatursensor.
- Signalpegel = (irgendwas um die 1-3 V)?
- Stromaufnahme = ? mA?
(such ich noch alles raus bzw. mess ich)

(Variante 2 - Expert Level, hoch komplex)
CAN-b Sniffer (eigenes Projekt)
Das Steuergerät der Klimaanlage sendet eine Vorgabe für das Tastverhältnis über den CAN-Bus (z.B. den Wert 70). Das SAM empfängt den Wert und setzt das PWM Signal mit 70% um. Man kann den Wert mittels Diagnosegerät in beiden Steuergeräten sehen.

2.a Der Teensy 3.2 hat einen CAN Eingang und wäre vermutlich in der Lage Daten zu empfangen. Mal abgesehen von der Machbarkeit sehe ich hier die Störanfälligkeit als großes Problem, da bei softwareseitig falschen Signalen das ganze System runterfährt, und hardwareseitig alles 100% genau berechnet sein muß um nichts zu zerschießen.

2.b Weiteres Problem ist das (re-)konstruieren des Protokolls, um überhaupt erst mal die Daten von Mercedes zu verstehen. Hier helfen mir meine Programmierkenntnisse absolut nicht weiter, da ist ein Insider gefragt..

Also um es grob zu umreissen, hier soll jede Menge Gehirnschmalz investiert werden um einen kleinen Notreparatursatz zu erhalten, der nichts weiter macht als AN/AUS so wie es bei einfachen Klimaanlage mit einer guten alten Magnetkupplung und einem Überdruckschalter wäre. Was sagt ihr? utopisch?
 

oldmax

Mitglied
Premium Benutzer
3 Nov 2008
573
12
18
Landkreis Göttingen
Sprachen
Assembler
Hi
Die Frage, ob Utopisch beantworte ich Mal mit ja, aber nur für meine Person, da ich von Autos und CanBus nur soviel Ahnung habe, das ich weiß, das es das gibt. Ob es für dich gilt, keine Ahnung, aber ich sag mal, man wächst mit seinem Projekt und ich denke, der ein oder andere wird dir helfen können. Mit Fleiß wirst du schon die Hürden neu. Ich wünsch dir viel Erfolg.
Gruß oldmax
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.428
62
48
Marwitz
Sprachen
BascomAVR, Assembler
der ein oder andere
Hemi, aber für den ist das wohl die falsche Marke...

Da auch ich mich nicht an den CAN-Bus rantrauen würde: Wäre es eine Option, den Klimakompressor getrennt vom Fahrzeugnetz zu betreiben?
AN/AUS so wie es bei einfachen Klimaanlage mit einer guten alten Magnetkupplung und einem Überdruckschalter wäre
Dann wären "nur" die Sensoren zu überwachen und der Kompressor anzusteuern.
Wenn das ganze so läuft, kannst Du ggf die Einbindung ins KFZ-Netz nachreichen...

Zu Deinem Controller kann ich nichts sagen, aber damit scheinst Du ja klarzukommen...

P.S.: wenn Du den Kompressor "überbrückst", und der läuft, kannst Du Dir die relevanten Sensordaten anzeigen lassen, korrekt?
Was sind das für Sensoren, was liefern die selbst als Signal?
 

alecxs

Neues Mitglied
28 Jun 2020
8
2
3
ich muss sowieso mit 1.b erstmal anfangen

für die Spannungsversorgung habe ich an ein Handy Ladekabel Zigarettenanzünder gedacht. es gibt aber auch Transistoren? die die Spannung begrenzen, hab sowas irgendwo schon mal verlötet. Empfehlungen?

als Pegelwandler 3.3 V -> 14 V reicht ein MOSFET? das Signal hat höchstwahrscheinlich 400 Hz (gemäß hella)
oder brauche ich eine galvanische Trennung/Optokoppler?

für die 10 mA Begrenzung eine Zener-Diode oder Stromregeldiode? oder ist das für den MOSFET gar nicht notwendig?
 

alecxs

Neues Mitglied
28 Jun 2020
8
2
3
Es werden zwei Innen-, ein Außen-, ein Kühlmitteltemperatur-Sensor, dann noch zwei Temperatursensoren in der Klimaleitung angezeigt aber nur in Grad Celsius, Kältemitteldruck in bar. Referenzwerte für den normalen Betrieb könnte ich auf der Autobahn mal aufzeichnen. Die Spannungen an den Sensoren zeigt es leider nicht an.

Als Regelgröße reicht theoretisch der Kältemitteldruck, darf halt nicht zu hoch sein und sollte min 5 bar haben für den Plausibilitätscheck. Denkbar wäre auch die Motordrehzahl mit einzubeziehen, aber das wäre nur über CAN Bus möglich

Ich werde die Spannungen mal messen, hab nur aktuell Nachtdienst
 

dino03

Aktives Mitglied
27 Okt 2008
6.748
17
38
Sprachen
BascomAVR, Assembler
Hi,

für die Spannungsversorgung habe ich an ein Handy Ladekabel Zigarettenanzünder gedacht. es gibt aber auch Transistoren? die die Spannung begrenzen, hab sowas irgendwo schon mal verlötet.
Ich tippe mal das war nen 78Lxx (78L05 = 5V , 78L12 = 12V) ... Abblockkondensatoren nicht vergessen.

als Pegelwandler 3.3 V -> 14 V reicht ein MOSFET? das Signal hat höchstwahrscheinlich 400 Hz (gemäß hella)
oder brauche ich eine galvanische Trennung/Optokoppler?
Galvanische Trennung benötigt man nicht. Nen MOSFET geht wenn er mit 3,3V auch voll durchschaltet. Die meißten benötigen mehr. Also eventuell nen MOSFET-Treiber vorschalten oder einen Typ finden der bei 3,3V funktioniert und den Strom ab kann. Da im Bordnetz viele Störungen und Spannugsspitzen sind, den MOSFET entsprechend schützen.

für die 10 mA Begrenzung eine Zener-Diode oder Stromregeldiode? oder ist das für den MOSFET gar nicht notwendig?
Der MOSFET "entkoppelt" den Laststrom von Steuerstrom/Steuerspannung des Teensy.

Gruß
Dino
 

Hemi

Aktives Mitglied
Premium Benutzer
30 Nov 2008
1.068
17
38
Korntal-Münchingen, Germany
Sprachen
ANSI C, C++, PHP, Java
Mahlzeit zusammen :)

So ich stelle mal mein Projekt vor, damit ihr es zerlegen könnt :vroam:
Hier wird keiner zerlegt, sind ja nicht bei mikrocontroller.net :D

(Vorab: ja, ein CAN-Bus ist sicherheitsrelevant, und ja, damit erlischt die Betriebserlaubnis des Fahrzeugs)
Nein und nein. CAN an sich hat genug Sicherheitsmechanismen, die in Hardware realisiert sind, da passiert GAR NICHTS. Es ist genau so eine Stammtischlegende, wie explodierende Airbags, wenn man am Stecker zieht....

1. Um den Kompressor anzusteuern muß ein PWM Signal erzeugt werden
(der einfache Teil)

Dazu habe ich hier einen Teensy 3.2 in meiner Kiste gefunden (hatte ich mal als preiswerten Ersatz für den Hak5 USB Rubber Ducky gekauft um ein Handy zu entsperren).



1.a In die Programmierung finde ich mich rein, dazu gibt es ein Add-on für Arduino, Software ist also weniger das Problem
1.b Mit der Elektronik brauche ich Hilfe bei der Erstellung eines Schaltbilds, Berechnung, etc bei der
- Betriebsspannung = 5 V
- Signalpegel = 3,3 V
- Strombegrenzung = 10 mA
(das Regelventil vom Klimakompressor zieht ca. ~ 1 A bei 14 V)
Was hast Du für PWM-Frequenz? Hier einfach ein FET nehmen, ich würde irgendwas mit logic gate nehmen. 1A bei 14V ist jetzt nicht die Welt, einfach ein High-Side oder Low-Side Schalter verwenden.

2. Die Sensoren müssen ausgelesen werden, z.B. darf der Druck 20 bar nicht überschreiten. Dazu wären zwei Varianten denkbar

(Variante 1 - analog, anspruchsvoll)
Spannung der Sensoren messen
und in Regelgröße umrechnen. Hier darf verkabelt werden ohne Rücksicht. Direkt in der Klimaleitung sitzt ein kombinierter Kältemitteldruck-/temperatursensor.
- Signalpegel = (irgendwas um die 1-3 V)?
- Stromaufnahme = ? mA?
(such ich noch alles raus bzw. mess ich)

(Variante 2 - Expert Level, hoch komplex)
CAN-b Sniffer (eigenes Projekt)
Das Steuergerät der Klimaanlage sendet eine Vorgabe für das Tastverhältnis über den CAN-Bus (z.B. den Wert 70). Das SAM empfängt den Wert und setzt das PWM Signal mit 70% um. Man kann den Wert mittels Diagnosegerät in beiden Steuergeräten sehen.
Ich würde mich für Variante 1 entscheiden. In der Leitung sitzt ein Sensor, der vom Steuergerät mit 5v bestromt wird, ein Pin ist Masse und der Dritte ist dann das Signal. Probier man an das Datenblatt mit der Kennlinie ranzukommen. Wenn es ein Bosch ist, dann stehen die Chancen sogar recht gut, sie sind hilfsbereit, was das angeht, einfach freundlich fragen.

2.a Der Teensy 3.2 hat einen CAN Eingang und wäre vermutlich in der Lage Daten zu empfangen. Mal abgesehen von der Machbarkeit sehe ich hier die Störanfälligkeit als großes Problem, da bei softwareseitig falschen Signalen das ganze System runterfährt, und hardwareseitig alles 100% genau berechnet sein muß um nichts zu zerschießen.
Auf dem Teensy 3.2 sitzt ein Freescale MK20DX256VLH7, ein schöner CM4 Chip. Er hat in der Tat einen integrierten 2.0B CAN-Controller drin. Also, einfach einen CAN-Transceiver dran hängen und los gehts. Achso, bei CAN gibt es kein "Eingang" oder "Ausgang".
Was meinst Du mit Störanfälligkeit? Welches System wird runtergefahren?

2.b Weiteres Problem ist das (re-)konstruieren des Protokolls, um überhaupt erst mal die Daten von Mercedes zu verstehen. Hier helfen mir meine Programmierkenntnisse absolut nicht weiter, da ist ein Insider gefragt..
Nunja. Ich würde es lassen. CAN ist ja nur ein Übertragungsmedium, was und wie versendet wird, das legt Mercedes fest. Ohne das DBC-File steht man im Wald, es sei denn, man kennt wenigstens die CAN-IDs der Botschaften. Dann kann man sie empfangen und schauen, wie sie sich über die Zeit verändern, dann die Rückschlüße auf den Inhalt ziehen. ich habe sowas in der Art bei meinem 7er BMW gemacht, es ist heftig.

Also um es grob zu umreissen, hier soll jede Menge Gehirnschmalz investiert werden um einen kleinen Notreparatursatz zu erhalten, der nichts weiter macht als AN/AUS so wie es bei einfachen Klimaanlage mit einer guten alten Magnetkupplung und einem Überdruckschalter wäre. Was sagt ihr? utopisch?
Durchaus machbar. :)

Bist Du Dir aber sicher, dass die Steuerung der Kupplung NUR vom Druck abhängt? Mein 7er hat noch eine Abschaltung bei Kickdown. Sprich, wenn ich voll durchlatsche, wird die Kupplung geöffnet, damit das volle Drehmoment dem Vortrieb zur Verfügung steht. Da gibt es einpaar Sachen zu beachten. Ich kenne es so, dass zum Regeln auch die Motortemperatur und Verdampfertemperatur herangezogen werden.

Wie sieht es mit der Rückmeldung an's Fahrzeug aus? Wird das benötigt? Was passiert, wenn die Rückmeldung ausbleibt?

Spannungsversorgung: Ein 7805 und Konsorten haben im Auto NICHTS verloren. Dafür gibt es schöne Automotive Regler, hier kannst Du etwas nachlesen, da sind auch einpaar Typen aufgeführt.
Schalten: ein (logic gate) MOSFET als high-side oder low-side Schalter rein und fertig.

Galvanische Trennung benötigt man nicht. Nen MOSFET geht wenn er mit 3,3V auch voll durchschaltet. Die meißten benötigen mehr. Also eventuell nen MOSFET-Treiber vorschalten oder einen Typ finden der bei 3,3V funktioniert und den Strom ab kann. Da im Bordnetz viele Störungen und Spannugsspitzen sind, den MOSFET entsprechend schützen.
Jein. Es gibt mehrere "Bordnetze", bzw. Bereiche. Der Bereich, wo LiMa, Anlassen, Batteriestützpunkt und so Sachen hängen, sind versaut mit allem möglichen. Die Bereiche, die hinter dem Power Management Modul hängen (und das sind so ziemlich alle), sind sauber und stabilisiert.
 

alecxs

Neues Mitglied
28 Jun 2020
8
2
3
Hm.. so ein Spannungsregler (TLE42754) sieht ziemlich klein aus, gibts die auch in größerer Ausführung zum löten?
PWM Frequenz kenne ich nicht, gehe aber von 400 Hz aus und sollte ich auch gerade so hinbekommen (hab noch nicht angefangen mit der Programmierung)

CAN-IDs sind doch sicher mit dem Diagnosegerät sichtbar? Wäre schon interessant da mal zu "lauschen", gibt es CAN-Transceiver in lötbarer Ausführung?

Mit Störanfälligkeit meinte ich gelesen zu haben dass das Gateway die Steuergeräte für eine gewisse Zeit abschaltet wenn zu viel Quatsch auf den CAN Bus gesendet wird? Es ist auch so dass ich mit dem Diagnosegerät nicht immer alles erreiche, muss dann einige Zeit warten und es später noch mal versuchen. Gut vielleicht bin ich da etwas paranoid.

Bzgl. Rückmeldungen ans Fahrzeug das scheint alles noch zu funktionieren, sofern das mit dem CAN Bus tatsächlich machbar ist müsste ich "lediglich" das Tastverhältnis umsetzen (welches das Steuergerät ja vorgibt)

Ich denke der Druck ist schon mal eine gute Stellgröße für den Anfang, muß man dann sehen wie schnell die Schaltung reagiert
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.428
62
48
Marwitz
Sprachen
BascomAVR, Assembler
in größerer Ausführung zum löten
Hm... das wesentliche Problem sind die thermal pads...

Das -E-Package (TSSOP14) ist mit RM=0,65mm noch freihand-lötbar, fürs thermal-Pad geht Trick17:
Unter dem Pad ein passendes Loch vorsehen, nach dem anlöten der 14 Beine ein Stück Kupferdraht plan abschneiden/schleifen. Etwas Zinn ins Loch, den Draht hinterher, und dann den Draht erhitzen bis das Zinn schmilzt und Kontakt herstellt. Obacht: keine Brücken zu den Beinen herstellen.

Bei den anderen beiden Packages (TO252, TO263) sollte das Rastermaß kein Thema sein, für das Thermal Pad brauchst Du halt einen Kolben mit genug Bums (mir ist mal 'ne Lötnadel an sowas kleben geblieben, da mußte der große Kolben zur Befreiung anrücken...))
 

Hemi

Aktives Mitglied
Premium Benutzer
30 Nov 2008
1.068
17
38
Korntal-Münchingen, Germany
Sprachen
ANSI C, C++, PHP, Java
Hm.. so ein Spannungsregler (TLE42754) sieht ziemlich klein aus, gibts die auch in größerer Ausführung zum löten?
Hmm? Wo ist das Problem ein TO263 oder TO252 zu löten? Sind doch schön groß?

PWM Frequenz kenne ich nicht, gehe aber von 400 Hz aus und sollte ich auch gerade so hinbekommen (hab noch nicht angefangen mit der Programmierung)
Die Frequenz als Solche ist ziemlich egal, sollte ein halbwegs vernünftiger FET hinkriegen.

CAN-IDs sind doch sicher mit dem Diagnosegerät sichtbar?
Sicherlich nicht, weil braucht man nicht.

Wäre schon interessant da mal zu "lauschen", gibt es CAN-Transceiver in lötbarer Ausführung?
Welchen hättest Du denn gern? High Speed? Low Speed? Welche Ausführung?

Mit Störanfälligkeit meinte ich gelesen zu haben dass das Gateway die Steuergeräte für eine gewisse Zeit abschaltet wenn zu viel Quatsch auf den CAN Bus gesendet wird? Es ist auch so dass ich mit dem Diagnosegerät nicht immer alles erreiche, muss dann einige Zeit warten und es später noch mal versuchen. Gut vielleicht bin ich da etwas paranoid.
Ich glaube, Du möchtest Dir die CAN Spec von Bosch anschauen :) Glaub es mir, ist besser und glaube nicht alles, was im Internet steht.
 

alecxs

Neues Mitglied
28 Jun 2020
8
2
3
so jetzt stehe ich auf dem Schlauch. TSSOP14 ist ein Operationsverstärker, wofür brauche ich den nochmal?

TO263 ist ein MOSFET den ich als Pegelwandler nehmen kann?

78L05 soll ich nicht als Betriebsspannung nehmen weil?

Mercedes nennt es CAN-B müsste dann wohl 125 kbit/s sein
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)