Entwicklung eines Motorsteuergerätes für den Trabant

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Felix Ahlborg

Dieser Artikel nimmt am Artikelwettbewerb Infineon XMC Design Contest 2014 teil.

Ich fahre ein sehr altes Auto. Meine Kollegen hänseln mich gern deswegen. Mir ist das aber ziemlich egal, denn ich habe sehr viel Freude an meinem Trabant 601, Baujahr 1988. Ich verbringe den Großteil meiner Freizeit damit dieses Auto zu warten, zu pflegen und hier und da auch zu modifizieren. In den letzten 2 Jahren habe ich mich beruflich und auch privat viel mit dem XMC 4500 von Infineon beschäftigt und Software in Dave3 entwickelt. Was liegt nun also näher, als diese beiden Interessen miteinander zu verknüpfen? Ich habe mir daher als Ziel gesetzt, ein eigenes Motorsteuergerät für meinen Trabant zu entwickeln.

P1030549.jpg

Stand der Technik

Die Zündanlage vom Trabant erlaubt nur einen statischen Zündzeitpunkt - das heißt, dass der Zündfunke bei jeder Umdrehung zum gleichen Kurbelwellenwinkel an der Zündkerze überspringt, um das Gemisch im Brennraum zu entzünden. Das ist leider alles andere als ideal. Ein in Abhängigkeit von Drehzahl und Last angepasster Zündwinkel könnte das Laufverhalten wie die Effizienz des Motors bedeutsam verbessern.

Mein Trabant fährt schon mit der moderneren Transistorzündanlage der letzten Generation. Auf [1] findet man alles Wissenswerte darüber.

Auch die Gemischaufbereitung dieses Motors bietet Verbesserungspotential. Es handelt sich um einen Vergasermotor mit den typischen Schwächen eines rein mechanischen Vergasers. Einen Vergaser muss man sich als Laie als ein relativ kompliziertes mechanisches System aus Röhren, Düsen, Kammern und ggf. Schwimmern, Nadeln und Druckdosen vorstellen. Auf der einen Seite wird Luft und Kraftstoff angeschlossen und auf der anderen Seite saugt der Motor. Für eine optimale Verbrennung muss der Motor ein ganz bestimmtes Verhältnis zwischen Luft und Kraftstoff ansaugen. Die Aufgabe des Vergasers ist es, dieses Verhältnis unter allen Bedingungen so gut wie möglich bereitzustellen - egal wie schnell und wie viel der Motor gerade ansaugt. Zu diesem Zweck hat der Vergaser allerhand raffinierte Mechanismen, um gewisse Umwelt- und Motorbedingungen auszugleichen. Der Trabantvergaser ist ein verhältnismäßig simples Exemplar, welches gut gewartet und eingestellt, seine Aufgabe zwar gut, aber bei weitem nicht ideal erledigt. Müller und Müller belegen das sehr anschaulich in ihrem Buch "Kraftfahrzeugvergaser und Benzineinspritzung". Man findet dort Diagramme, die über den weiten Betriebsbereich des Trabantmotors die relativ große Streuung des Benzin-Luft Verhältnisses belegen.

In meinem Fahrzeug arbeitet die letzte für den Trabant 2-Taktmotor entwickelte Vergasergeneration, der 28H1-1. Mehr Details über diesen Vergaser finden sich hier: [2].

Motivation

Man muss bedenken, dass sowohl Vergaser als auch Zündung in meinem Trabant in den 80er Jahren unter nicht gerade idealen Bedingungen entwickelt wurden. Mit einer modernen Mikrocontrollergesteuerten Zündanlage könnte man einige Defizite des Trabantantriebes reduzieren. Es gibt bereits ein paar mikrocontrollerbasierende Zündanlagen, welche eine dynamische Zündwinkelsteuerung für den Trabant realisieren. Es ist jedoch so, dass ich persönlich das eine oder andere technische Detail anders gelöst hätte. Weiterhin geistern mir Erweiterungen durch den Kopf, die ich mit diesen Kauflösungen niemals umsetzen kann, da sowohl Software als auch Schaltpläne nicht frei verfügbar sind. Bei diesen Steuergeräten handelt es sich auch um reine Zündsteuergeräte, welche in die Gemischaufbereitung nicht eingreifen. Genau das möchte ich aber.

Zielsetzung

Egal ob Dampfmaschine oder Flugzeug - Technik hat mich schon immer fasziniert. Mein oberstes Ziel ist es daher mein technisches Wissen zu erweitern. Es muss nicht unbedingt die beste, gern aber die interessanteste Lösung sein. ;)

Version 1

Getreu diesem Grundsatz soll das erste Motorsteuergerät auch noch nicht mal unbedingt etwas steuern, sondern hauptsächlich Messwerte aufzeichnen. Kein Messwert macht Sinn, wenn man ihn nicht mit einem bestimmten Motorzustand in Verbindung bringen kann. Um den Motorzustand zu erfassen wird grundsätzlich erstmal die Drehzahl benötigt. Weiterhin muss der Lastzustand bekannt sein. Damit ist gemeint, wieviel Leistung gerade vom Motor abgerufen wird. Also ob man gerade auf dem Gaspedal steht, oder im Leerlauf an der Ampel wartet. Für's Erste soll das als Bezugsgrößen genügen. Die erste richtig interessante Messgröße ist der Restsauerstoffgehalt im Abgas. Diese Messgröße lässt Rückschlüsse auf die Qualität der Gemischaufbereitung zu. Später kommen sicher noch andere Messgrößen hinzu.

Diese Messwerte möchte ich erfassen und in einem zeitlichen Verlauf aufzeichnen können. Ich verspreche mir davon, bei der Analyse der Diagramme viel über die Betriebszustände meines Motors und die Qualität der Gemischaufbereitung zu lernen. Im Idealfall schaffe ich es mit diesen Messmitteln, Vergaser und Zündung leistungs- und abgastechnisch besser abzustimmen.

Version 2

Wenn die Ziele von Version 1 erreicht sind, möchte ich aktiv in das Motormangement eingreifen. Das bedeutet zum Einen, dynamische Zündwinkel je nach Drehzahl und Lastzustand zu implementieren. Zum Anderen bedeutet das, die Schwächen des Vergasers auszugleichen, indem die Gemischaufbereitung nachgeregelt wird. Man könnte zum Beispiel auf recht einfache Weise immer dann etwas Zusatzluft beisteuern, wenn der Vergaser zu fett läuft.

Weitere Ideen

Mir schwirren noch viele weitere Ideen durch den Kopf. Es wäre zum Beispiel toll, wenn man auch beim Trabant eine echte Motorbremse hätte. Dazu müsste eine Schubabschaltung realisiert werden, wenn die Drehzahl hoch ist, aber der Fuss nicht auf dem Gaspedal steht. Auch eine Leerlaufstabilisierung hätte ihren Reiz. Konstante Ladezeiten für die Zündspulen würden den Abbrand der Zündkerzen reduzieren. Man könnte auch versuchen mit leistungsstärkeren Zündspulen grenzwertige Betriebszustände in den Griff zu bekommen ... usw.

Zunächst will ich mich aber ausschließlich der Version 1 widmen.

Umsetzung

Microcontroller

Da ich mich zunächst davor scheue eine eigene Platine mit Mikrocontroller zu entwickeln, habe ich als Basis für das Motorsteuergerät das XMC4500 Relax Lite Kit gewählt. Das Preis-Leistungsverhältnis finde ich hervorragend und der Formfaktor ist recht kompakt. Der Debuggerteil wurde vom Mikrocontrollerteil getrennt und die Pins an den Extention Headern mit Pfostensteckerleisten verlötet. So kann das Board mit entsprechenden Buchsenleisten einfach auf die Steuergeräteplatine aufgesteckt werden. Das ganze sieht dann so aus:

P1090697.jpg

Spannungsversorgung

Die Spannungsversorgung im Fahrzeug ist nicht ganz simpel. Die Lichtmaschine liefert im Schnitt 14,4 V. Es kann aber gerade beim Anlassen auch zu relativ langen Spannungseinbrüchen kommen. Auch mit Überspannungen muss gerechnet werden.

Die grundsätzliche Spannungsversorgung für mein Projekt lehnt sich stark an den hier [3] vorgeschlagenen Entwurf an. Im Grunde wurde nur der Festspannungsregler gegen einen Traco-Schaltregler ausgetauscht. Bei der Schutzdiode ist daher darauf zu achten, dass sie schon bei der geringeren maximale Eingangsspannung des Traco (32 V) die überschüssige Spannung ableitet (auch bei vollem Ableitstrom).

Der Traco-Baustein wird mit den 2 Keramikkondensatoren zur Filterung hoher Frequenzen an Ein- und Ausgang noch etwas unterstützt. Laut Datenblatt ist das nicht notwendig, aber unter den rauhen Bedingungen im Fahrzeug kann es auch nicht schaden. Größere Spannungseinbrüche am Eingang sollen vom Elko als Puffer überbrückt werden. Damit sich dieser nicht über die Versorgungsspannung entläd, wurde eine Gleichrichterdiode vorgesehen. Diese verhindert auch Schlimmeres bei Verpolung der Schaltung. Vor dieser Schaltung ist eine Schutzdiode angeordnet, welche bei Überspannung durchlässig wird. Für den Traco-Baustein sind max. 32 V zulässsig, entsprechend muss die Schutzdiode und auch der Elko ausgewählt werden. Damit die Diode bei Überspannung nicht dauerhaft hohe Ströme ableiten muss, wird die Schaltung mit einer Sicherung abgesichert. Zur Entstörung ist eine Ringkerndrossel vorgesehen. Die Bauteile müssen so ausgwählt werden, dass sie dem maximalen Betriebsstrom von 1 A standhalten, wobei vorerst nur mit ~500 mA zu rechnen ist.

Spannungsversorgungsteuerteil.png

Anschluss des XMC4500 Relax Board

Auf dem Debuggerteil des XMC4500 Relax Kit wurde von Infineon ein Festspannungsregler plaziert. Dieser erzeugt aus der 5 V USB Spannung die benötigten 3,3 V für beide Controller. Trennt man den Debuggerteil vom restlichen Board, so werden sowohl die 5 V USB-Spannungsversorgung als auch die 3,3 V Spannungsversorgung getrennt. Die 5 V werden ausschließlich für den Festspannungsregler benutzt und müssen nicht bereitgestellt werden. Die 3,3 V sollen für das Mikrocontrollerboard über den ExtentionHeader von der Steuergeräteplatine bereitgestellt werden. Steckt man den Debugger mit einem passenden Flachbandkabel wieder zusammen, sind dann aber die 3,3 V Leitungen beider Boards verbunden, was natürlich problematisch ist, wenn man im Fahrzeug etwas Debuggen will. Ich habe dazu einfach Leitung 2 vom Debuggerkabel aufgetrennt.

Erfassung der Drehzahl

Der Trabant hat ab Werk eine erstaunlich moderne Zündanlage - zumindest die letzten Baujahre. Auf der Kurbelwelle ist ein Ringmagnet angeflanscht und am Motorgehäuse ein dazu passender Hallsensor. Das daraus entstehende Gebersignal wird dazu benutzt, einer Transistorzündanlage die Schaltzeitpunkte für die Zündspulen mitzuteilen. Die nachfolgende Abbildung zeigt diesen Geber in ausgebautem Zustand:

P1090696.jpg

Das Tolle ist, dass dieser Geber einen Open Collector Ausgang hat. Er zieht die Signalleitung über 180° der Kurbelwellenumdrehung auf das Massepotential und lässt die Leitung die anderen 180° einfach offen. Wenn das Motorsteuergerät diese Leitung mit einem PullUp auf High zieht, entstehen 2 Schaltflanken pro Umdrehung. Diese beiden Flanken markieren dann die Zündzeitpunkte für die beiden Zylinder. Man kann den Geber so im Kurbelgehäuse verdrehen, so dass man den gewünschten Zündzeitpunkt individuell für beide Zylinder anpassen kann. Die Signalleitung des Gebers habe ich direkt mit einem Eingang des Mikrocontrollers verbunden. Diesen Eingang habe ich in Dave3 als Eingang mit PullUp konfiguriert.

Im Leerlauf oder beim Anlassen wäre es beim Trabant schon interessant 300 U/Min noch erfassen zu können. Das entspricht einer Dauer von 200 ms für eine Umdrehung. Die Höchstdrehzahl des Trabant liegt je nach Motor irgendwo zwischen 5000 und 6000 Umdrehungen. Auch diese Drehzahlen sollen auf wenige Umdrehungen pro Sekunde genau erkannt werden. Es soll also noch zwischen 100 Hz und 99.92 Hz unterschieden werden, was einer Messauflösung von rund 8 µs entspricht.

Dave3 bietet zum Vermessen von Eingangssignalen die App CAP001 an, welche ein Capture-Compare Register benutzt. Dieses Register zählt mit einem Referenztakt wie lang die Perioden des Eingangssignals sind. Diese App lässt sich leicht mit den hier berechneten Parametern konfigurieren.

Ausgabe der Zündwinkel

Ich habe es mir für die ersten Versionen meines Steuergerätes recht einfach gemacht. Anstatt eine komplett eigene Zündanlage zu entwickeln, gebe ich einfach mit dem Mikrocontroller ein Schaltsignal an die originale Transistorzündanlage aus, welche dann für mich das Laden der Zündspulen übernimmt. In der ersten Version soll der Mikrocontroller sogar nur exakt das Eingangssignal des Gebers an die Transistorzündanlage weitergeben. Durch ein einfaches Softwareupdate kann der Aufbau dann später so erweitert werden, dass dieses Eingangssignal verzögert ausgegeben wird, um einen späteren Zündwinkel zu erhalten. So kann das Steuergerät ohne Hardwareänderung auch schon für eine dynamischen Zündwinkelausgabe genutzt werden. Frühere Zündwinkel bedürfen dann entweder einer Frühverstellung des Gebers oder etwas mehr Hirnschmalz.

Der Ausgang zur Transistorzündanlage kann nicht direkt mit dem Mikrocontroller verbunden werden, da diese das Gebersignal mit einem PullUp auf die KFZ-Bordnetzspannung zieht. Bei laufender Lichtmaschine beträgt diese Spannung 14,4 V. Das würde den Mikrocontrollereingang umgehend zerstören. Ich habe in meiner Bastelkiste noch einige BC547C (NPN Bipolartransistoren) gefunden, welche für diesen Zweck geeignet sind. Sie vertragen kurzzeitig auch mal eine Kollektor-Emitter Spannung von 40 V. Kleine Spannungsspitzen im Bordnetz werden den Transistor also nicht gleich zerstören. Die Basis wurde über einen 4,7 kOhm Widerstand mit einem Mikrocontrollerausgang verbunden, so fließen am Mikrocontroller weniger als 1mA.

Zur einfachen Weitergabe der Zündwinkel habe ich den selben Eingang, der bereits für die Drehzahlerfassung benutzt wurde, so über die Event-Request-Unit des XMC so konfiguriert, dass sie das Signal invertiert an einem Ausgang wieder ausgibt. Dieser Mikrocontrollerausgang wurde in Dave3 als PushPull-Ausgang konfiguriert und treibt die schon beschriebene Transistorschaltung.

Schaltet nun der Geber die Signalleitung auf Masse, wird am Eingang ein Low-Signal gemessen und über die Event-Request-Unit ein High-Signal auf den Ausgang gegeben. Dadurch schaltet der BC547C seine Kollektor-Emitter-Strecke durch und verbindet die Signalleitung der Transistorzündanlage ebenfalls mit Masse. Im umgekehrten Fall ist die Signalleitung durch den Geber offen und der PullUp zieht den Mikrocontrollereingang auf ein High-Signal, welches über die Event-Request-Unit als Low-Signal auf den Ausgang gelegt wird. Die Kollektor-Emitter-Strecke am Transistor ist dadurch gesperrt und die Signalleitung zur Transistorzündlage ist offen. Die Transistorzündanlage wiederum zieht diese Signalleitung durch einen internen PullUp-Widerstand auf ihr eigenes High-Signal.

Die Event-Request-Unit habe ich mit den Dave3 Apps ERU001 und ERU002 konfiguriert.

Für eventuelle Fehlerfälle habe ich zudem einen Notfallschalter eingeplant. Der Schalter soll es erlauben den Geber direkt auf die originale Transistorzündanlage zu schalten, so dass die Zündanlage wieder original beschaltet ist. Der Schaltplan für den Zündaufbau sieht dann so aus:

Schaltplansignalumschaltung.png

EBZA bedeutet in diesem Schaltplan Elektronische Batteriezündanlage - so die original Werksbezeichnung.

Erfassung des Restsauerstoffgehaltes

Den Restsauerstoffgehalt erfasst man in der Regel mit einer Lambdasonde direkt im Abgasstrom. Ich habe mich für meinen Aufbau dazu entschieden den Lambda-Messwandler [4] von Knödler Technologie zu benutzen. Diese Platine steuert die Lambdasonde an und gibt zum Beispiel über RS232 die Messwerte als Text aus. Das ist sicher nicht die preisgünstigste Variante die Messwerte zu erfassen. Aber es ist auf jeden Fall eine Variante, die sehr schnell umgesetzt ist. Der Lambda-Messwandler wird fix und fertig geliefert. Ich habe einfach eine gebrauchte Bosch LSU 4.9 Sonde besorgt, alles angeschlossen und schon konnte ich mit dem PC die ersten Messwerte auslesen.

Da das XMC4500 Relax Lite Kit keine RS232 Pegel an seiner seriellen Schnittstelle bereitstellt, habe ich einen MAX3232 Chip eingesetzt, der die Umwandlung zwischen CMOS und RS232 Pegeln übernimmt. Dieser kann mit nur 5 externen Kondensatoren wie in der nachfolgenden Abbildung betrieben werden.

Rs3232.png

Für die Firmware benutze ich einfach die UART001 App von Dave3. Über diese Kommunikation kann ich die Messung mit dem Messwandler starten und die Messwerte empfangen. Zur weiteren Auswertung müssen nur die Zahlwerte aus dem Textstring extrahiert werden.

Um die Sonde im Abgas des Motors platzieren zu können, habe ich mir einen Vorschalldämpfer für meinen Trabant umbauen lassen. Da ich es stilecht haben wollte, habe ich mir gleich eine komplett neue Auspuffanlage aus Edelstahl besorgt und mir den Lambdasondenanschluss direkt hinter dem Krümmer einschweißen lassen. Das Resultat kann sich sehen lassen. Vielen Dank nochmal an Peter für die tolle Schweißarbeit:

P1090706.jpg

Als kleine Erklärung seien zu diesem Bild die Anschlüsse benannt. Ganz oben links sieht man den Anschluss an den Krümmer. Von dort kommt das Abgas aus dem Motor. Direkt unter diesem Kugelflansch ist der nachträglich eingebaute Lambdasondenanschluss zu sehen. Durch die große Öffnung daneben strömt im eingebauten Zustand die Restluft aus dem Kühlluftgehäuse des Motors um im Vorschalldämpfermantel für die Innenraumheizung aufgewärmt zu werden. Der noch größere Anschluss unten rechts liefert dann die warme Abluft zum Beheizen der Fahrgastzelle. Etwas versteckt dahinter ist der Anschluss für das Mittelrohr zu erkennen. Hier verlassen die Abgase den Vorschalldämpfer wieder.

Erfassung der Luftmasse

Um das angesaugte Luftvolumen zu messen, werden im Fahrzeug sogenannte Luftmassenmesser verwendet. Einen gut verfügbaren Luftmassenmesser für so ein Projekt nimmt man am besten von einem Serienfahrzeug mit ähnlichem Luftdurchsatz. Der Trabantmotor hat 600 ccm Hubraum, zündet aber doppelt so oft wie ein Viertakter, da er eben ein Zweitakter ist. Er muss daher auch doppelt so oft seinen Brennraum füllen, was dem Luftdurchsatz eines 1200 ccm Viertaktmotors entspricht. Ich habe mich für den HFM5 von Bosch entschieden, da sein offizielles Datenblatt verrät wie man ihn ansteuert und das zudem auch noch relativ einfach scheint. Der HFE 5 mit der Bosch Nummer 0 280 218 119 wird hauptsächlich in Viertaktmotoren von Opel eingesetzt, die einen Hubraum von 1200 ccm haben. Die entsprechende Bosch Seite: [5]

Beobachtungen

Der Sensor soll laut Schaltbild ein VAREF bekommen, er liefert aber mit und ohne VAREF exakt die gleichen Werte. Am Referenzspannungsanschluss kann ich zudem eine 5 V Spannung messen. Wenn ich diese über einen Spannungsteiler auf 3,3 V teile, bricht diese Spannung zusammen. Der Sensor erzeugt sich scheinbar seine Referenzspannung intern selbst und man kann diese nicht extern erfassen. Es wird also die Betriebsspannung des XMC Relax Boards als Referenzspannung benutzt, auch wenn das nicht ideal ist.

Allerdings ändert sich der Messwert antiproportional zur Betriebsspannung. Das könnte dem Messprinzip geschuldet sein (Platindraht wird heißer -> weniger Luftströmung gemessen). Zwischen 8 V und 17 V Versorgungsspannung verändert sich der Messwert um ca. 80 mV - unabhängig vom eigentlichen Messwert.

Spannungsversorgung

Wir müssen also eine stabilisierte Versorgungsspannung zur Verfügung stellen. Dazu kann ein LM317 in seiner Standardbeschaltung (siehe Datenblatt) genutzt werden, der hinter die Schutzbeschaltung der Hauptspannungsversorgung kommt. R1 wird mit den empfohlenen 240 Ohm bestückt und R2 kann z.B. mit 2 kOhm bestückt werden. Alle Kondensatoren und Schutzdioden werden nach dem Empfehlungen des Datenblattes bestückt. Dies ergibt eine Spannung von ~11,7 V, also genau innerhalb der Betriebsparameter des Sensors.

Schaltplanluftmassenmesser.png

Bei dieser Bestückung muss der LM317 die Eingangsspannung von 14,4 V um ~2,7 V runterregeln und wird dabei vom Sensor durchschnittlich mit 100mA belastet. Die Verlustleistung beträgt also rund 270 mW, wodurch sich das Bauteil um ~16° C über die Umgebungstemperatur erwärmt - auf einen Kühlkörper kann verzichtet werden.

Messwert

Der Messwert muss mit einem Spannungsteiler am Messausgang von seinen maximalen 5 V auf 3,3 V runtergeteilt werden. Geeignet sind hier zum Beispiel 680 Ohm aus der E6 Reihe und 470 Ohm aus der E3 Reihe. So fließen an dieser Stelle 10,4 mA und am Messeingang liegen maximal 2,96 V an.

Erfassung der Ansaugtemperatur

Der Luftmassenmesser HFM5 von Bosch hat einen integrierten Temperaturfühler. Es kann nicht schaden, diesen Messwert auch gleich zu erfassen. Der Sensor für die Ansaugtemperatur ist in den Luftmassenmesser integriert und wurde von Bosch leider als einfacher NTC ausgeführt. Diesen Temperaturwiderstand habe ich mit einer Konstantstromquelle versorgt und die über den Widerstand abfallende Spannung mit einem analogen Eingang am Microcontroller vermessen. Zur Rauschreduzierung wird ein 100 nF Keramikkondensator parallel zum NTC geschaltet.

Schaltplanansaugtemperatur.png

Der NTC hat laut Datenblatt einen Widerstandsbereich von 100 Ohm bei sehr hohen Temperaturen bis 40 kOhm bei sehr niedrigen Temperaturen. Die maximale Spannung am analogen Eingang darf 3,3 V nicht überschreiten. Für die Konstantstromquelle soll ein LM317 eingesetzt werden. Dieser muss am Ausgang mit mind. 10 mA belastet werden.

Berechnung der Widerstände

Da der NTC einen sehr dynamischen Widerstansbereich hat und die maximale darüber abfallende Spannung nur 3,3 V betragen darf, soll der Strom am LM317 möglichst niedrig eingestellt werden. Für die mindestens geforderten 10 mA und die 1,25 V die der LM317 zwischen Adj und Out regelt wären das R1 = 125 Ohm. Ich habe mich für 120 Ohm entschieden, da es diese praktischerweise in der E12 Reihe gibt. Die so aufgebaute Konstantstromquelle liefert bei 120 Ohm ~10,4 mA und hat im schlimmsten Fall eine Verlustleistung von 150 mW, was einer Erwärmung des Bauteils von unter 10°C über Umgebungstemperatur entspricht. Auf einen Kühlkörper kann also verzichtet werden.

Sollen bei 10,4 mA maximal 3,3 V am analogen Eingang anliegen, so darf der zu vermessende Widerstand 317 Ohm nicht überschreiten. Zu diesem Zweck wird ein Widerstand R2 parallel zum NTC geschaltet. Rechnerisch ergibt sich für diesen ein Maximalwert von knapp 320 Ohm. Es wurde sich für 270 Ohm aus der E12 Reihe entschieden. Neben der guten Verfügbarkeit bietet dieser Wert zudem noch einigen Spielraum, da sich auf Grund der Bauteiltolleranzen der Strom nicht so exakt einstellen lassen wird.

Bei dieser Bestückung ist dann laut Datenblatt des NTC mit folgenden Werten zu rechnen:

Temperatur NTC Widerstand Gesamtwiderstand Spannung am AD-Eingang
-40° C 40 kOhm 268 Ohm 2,79 V
0° C 5 kOhm 256 Ohm 2,66 V
25° C 2 kOhm 238 Ohm 2,47 V
50° C 1 kOhm 213 Ohm 2,21 V
120° C 0,1 kOhm 73 Ohm 0,76 V

Hier zeigt sich dann auch das Defizit der NTC Kennlinie. Im interessanten Bereich zwischen 0° C und 50° C ist die Messauflösung vergleichsweise gering und Störungen wirken sich auf den Messwert besonders stark aus. Aber dank der 12 Bit bzw. ~0,8 mV Auflösung des ADC, kann auch in diese Bereich noch hinreichend genau gemessen werden. Um später mal mit diesem Wert etwas zu regeln, dürfte ohnehin eine Auflösung von rund 2° C genügen. Im Notfall muss die Messgröße per Software entstört werden - Temperaturen ändern sich ja eh vergleichsweise langsam.

Erfassung des Anlassersignals

Beim Entwickeln der ersten Hardware-Version hat sich herausgestellt, dass ein einfacher Aufbau zum Vermessen der Zündwinkel fast genauso aufwändig ist, wie der hier beschriebene Aufbau zum Messen und Ausgeben der Zündwinkel. Mit ein klein wenig Mehraufwand kann diese Technik dann auch dazu benutzt werden die Startwilligkeit des Motors durch Spätverstellung der Zündung zu unterstützen. Daher habe ich mich dazu entschlossen, den Aufbau so vorzubereiten, dass auf einfache Weise erfasst werden kann, ob der Anlasser gerade betätigt wird.

Das Anlassersignal kann beim Trabant am Zündschloss abgegriffen werden. In Stellung II (Anlassen) schaltet das Zündschloss Dauerplus auf Klemme 50a, welche direkt mit dem Magnetschalter des Anlassers verbunden ist. Ich habe mir den N-Kanal MOSFET Transistor ZVN4424A rausgesucht. Dieser verträgt eine Gate-Source-Spannung von bis zu 40 V. Damit dürfte der Transistor robust genug gegenüber Spannungsspitzen im KFZ-Boardnetz sein. Dennoch habe ich eine zusätzliche Zenerdiode wie schon bei der Spannungsversorgung vorgesehen. Diese ist in Sperrrichtung eingebaut und wird ab 22 V leitend. Der hohe Strom der dadurch im Überspannungsfall über die Diode fließt, wird unmittelbar die davorgeschaltete Sicherung durchbrennen lassen und die Überspannung kann den Aufbau nicht weiter schädigen. Da es sich um einen MOSFET handelt und die Geschwindigkeit dieses Signales eine untergeordnete Rolle spielt, ist die Auslegung des Vorwiderstandes nicht so entscheidend. Ich probiere es zunächst einmal mit 4,7 kOhm.

Anzeige im Fahrzeug

Um während der Fahrt nicht nur mit dem Laptop Messdaten aufzeichnen und für den Fahrer umständlich anzeigen zu können, möchte ich die Messwerte auch auf einem kleinen Display im Sichtbereich des Fahrers anzeigen. Ich habe mich für das DOGM204W-A Display von Electronic Assembly entschieden. Es ist preisgünstig, hat eine interne Temperaturkompensation (was mir im Fahrzeug wichtig erscheint), ist gut erhältlich und kann komplett mit 3,3 V versorgt werden.

Da ich noch nicht genau weiß, welche Aufgaben ich später mal im Fahrbetrieb auf dem XMC4500 des Steuergerätes laufen lassen will, habe ich mich dazu entschlossen, die Ansteuerung des Displays von einem zweiten XMC Controller erledigen zu lassen. Da dieser Controller nicht viel Rechenleistung benötigt, ist es vollkommen ausreichend für diese Aufgabe auf das XMC2Go Board mit dem XMC1100 zurück zu greifen. Für eventuelle Eingaben habe ich auch noch ein paar Taster vorgesehen. Ich könnte mir vorstellen, das Display später auch mal durch ein hübsches Touch-Display mit grafischer Ausgabe zu ersetzen. Wenn ich dafür mal Zeit finden sollte, könnte ich mir vorstellen, dass daraus nochmal ein komplett eigenes Projekt wird. Man kann sich ja gerade in solchen Punkten beliebig weit verzetteln. Aber alles zu seiner Zeit.

Das Display wird wie im Datenblatt empfohlen angeschlossen. Die Ein- und Ausgänge des Displays können direkt mit dem XMC2Go verbunden werden. Ich nutze für die Kommunikation mit dem Display den SPI-Bus, da mir das im Vergleich zu den anderen Anschlussmöglichkeiten einige Pins einspart, die vielleicht noch für Signal-LEDs o.ä. benutzt werden können.

Für die Spannungsversorgung des Displays und des XMC2Go Boards sind nur 3,3 V notwendig, die bereits vom Motorsteuergerät bereitgestellt werden. Die 3,3 V können beim XMC2Go einfach an den 3,3 V Pin angeschlossen werden. Die Kommunikation mit dem Motorsteuergerät erfolgt über RS232. Auf dem Motorsteuergerät wird dazu der zweite Kanal von dem eh schon aufgebauten MAX3232 Chip verwendet. Für die Anzeigeplatine mit dem XMC2Go habe ich einen zweiten RS3232 mit identischer Beschaltung vorgesehen. Zwischen den beiden Steuergeräten ist mit diesem Konzept nur ein 4-adriges Kabel notwendig: 3,3 V, Masse, RX, TX. Dieses sollte sich leicht im Fahrzeug verlegen lassen.

Das Motorsteuergerät sendet permanent die aktuellsten Messdaten über seine zweite RS232-Schnittstelle. Der XMC2Go empfängt diese Daten und zeigt sie auf dem Display an. Er gibt die Daten zusätzlich permanent über USB aus, so dass auf einfache Weise Messdaten mit dem Laptop aufgezeichnet werden können. Ist die Displayplatine nicht angeschlossen, kann das Laptop auch direkt mit dem Steuergerät verbunden werden und die Daten wahlweise über RS232 oder USB abgeholt werden.

Die XMC2Go Platine musste für diesen Aufbau noch ein wenig modifiziert werden. Der Festspannungsregler auf diesem Board erzeugt normalerweise aus den 5 V der USB-Schnittstelle wie beim Relax Lite Kit die 3,3 V für die beiden Controller (Debugger und XMC1100). Damit diese Spannungsversorgung bei Anschluss des Laptops nicht gegen die Spannungsversorgung des Steuergerätes arbeitet, muss die 3,3 V Leitung auf der Platine zwischen den beiden Controllern durchtrennt werden. Das hat auch den Vorteil, dass der Debugcontroller nicht permament mit Spannung versorgt wird, sondern nur wenn man ihn über USB anschließt und auch wirklich benötigt.

P1090699.jpg

Wer genau hinsieht, erkennt rechts neben dem Quartz die nachträgliche Durchtrennung der Leiterbahn.

Software

Vorweg: Ich halte es nicht für zielführend hier Source-Code zu posten. Zum Einen ist der aktuelle Softwarestand eh noch sehr rudimentär und zum Anderen denke ich, dass eine konzeptionelle Beschreibung dem Leser viel mehr von meinem Projekt vermittelt.

Firmware Steuergerät

Die Firmware für die beiden XMC-Controller wird komplett mit Dave3 entwickelt. Als Programmiersprache verwende ich C++. Der Code wird komplett objektorientiert sein. Dave generiert zwar nur reinen C-Code, aber dieser kann gut durch Objekte gekapselt werden.

Die Erfassung der Sensordaten habe ich bereits in den jeweiligen Abschnitten beschrieben. Zusätzlich gibt es einen Timerinterrupt, den ich mit der PWMSP001 App realsiert habe. Dieser Timerinterrupt sendet die gesammelten Daten in regelmäßgen Abständen wahlweise über die RS232- oder die USB-Schnittstelle an den XMC2Go oder den PC.

Firmware Anzeige

Die Firmware für den XMC2Go empfängt die Daten vom Motorsteuergerät, aktualisiert die Anzeige des Displays und sendet die empfangenen Daten über die USB-Schnittstelle weiter. Später werden dann noch Taster und Status-LEDs hinzugefügt.

PC Software

Da ich mal wieder etwas anderes als C++ programmieren wollte, habe ich mich dazu entschlossen, die PC-Software in Java zu entwickeln. Es ist schön, mal wieder mit einer anderen Programmiersprache zu arbeiten. Die PC-Software empfängt zur Zeit nur die Daten, zeigt sie an und schreibt sie auf Wunsch auch in eine Datei. So können erste einfache Messfahrten realisiert werden. Für die serielle Kommunikation nutze ich das Projekt "Java simple serial connector" [6]. Für die grafischen Darstellungen habe ich mich zunächst für die Java-eigene Swing-Bibliothek entschieden. Ich will mich diesbezüglich aber noch nicht abschließend festlegen. Zur Zeit hat das Ganze auch nur den Charakter eines schnell zusammengeklickten Hilfsprogrammes - aber es tut seinen Dienst.

Validierung des Steuergerätes

Zur Validierung des Steuergerätes wäre eigentlich ein echter Motorprüfstand das Mittel der Wahl. Leider würde dies zur Zeit wirklich meine Möglichkeiten sprengen. Irgendjemand müsste das dann auch vor meiner Frau rechtfertigen ... neeee.

Ich habe mir daher überlegt, dass ich zumindest die aktiven Eingriffe ins Motorgeschehen möglichst genau testen will, bevor ich das Steuergerät das erste Mal ins Fahrzeug einbaue. Aus dieser Überlegung ist quasi ein Projekt im Projekt entstanden. Ich möchte dieses Vorprojekt hier nur kurz beschreiben, da es nicht Hauptbestandteil dieses Artikels sein soll.

Konzept

Wie bereits beschrieben, möchte ich die Funktionsweise des Steuergerätes möglichst genau testen, ohne es direkt an einem Motor zu betreiben. Vorerst genügt es dabei die Zündsteuerung zu validieren, da die erste Steuergeräteversion eh noch nicht mehr Eingriffe in den Verbrennungsprozess beherrschen wird.

Meine Idee war dabei für das Motorsteuergerät das eingehende Signal des Kurbelwellengebers zu simulieren und die ausgehenden Schaltsignale für die Zündspulen zu vermessen. Durch eingangsseitiges Anlegen einer bestimmten Frequenz, kann eine bestimmte Drehzahl simuliert werden. Aus der Verzögerungszeit zwischen der Geberschaltflanke und der Schaltflanke der Zündspulenleitung kann unter Berücksichtigung der aktuell simulierten Drehzahl der Kurbelwellenwinkel, der sich bei einer tatsächlich drehenden Kurbelwelle zwischen diesen beiden Signalen ergeben würde, berechnet werden. Da der Geber immer auf einen festen Winkel voreingestellt wird, kann so sogar der absolute Zündzeitpunkt zu jeder Drehzahl ermittelt werden.

Aufbau

Den Aufbau dieses Zündungsprüfstandes habe ich sehr ähnlich dem Motorsteuergerät gestaltet. Ich habe mich auch hierfür eines XMC4500 Relax Lite Kits bedient. Das Board habe ich über Pfostenstecker mit einer Lochrasterplatine verbunden. Die Spannungsversorgung genügt bei diesem Aufbau über die USB Schnittstelle der XMC Platine. Die Ausgabe von Gebersignalen und die Erfassung der Zündspulensignalen erfolgt wie weiter oben schon für das Motorsteuergerät beschrieben. Das ist möglich, da die Transistorzündanlage wie zwei Open Collector Ausgänge arbeitet. Sie schaltet abwechselnd über zwei Leistungstransistoren die beiden Zündspulen auf Masse, so dass immer entweder die eine oder die andere Zündspule geladen wird. Fertig aufgebaut sieht der ganze Aufbau dann so aus:

P1090701.jpg

Oben links ist mein selbstentwickelter Zündungsprüfstand auf Basis des XMC4500 Relax Lite Kits zu sehen. Nach unten geht das Signalkabel, über dass die simulierten Kurbelwellengebersignale übertragen werden. Rechts sieht man die originale Transistorzündanlage (hier jedoch mit verkürztem Kabelbaum). Die Zündspulenanschlüsse (grün und weiß) sind ebenfalls an den Zündungsprüftstand angeschlossen. Die Kabel nach oben führen zu einem Labornetzteil, welches die Spannung für die Zündanlage liefert. Jetzt muss nur noch das USB-Kabel für die Übertragung der gemessenen Zündwinkel an den PC angeschlossen werden.

Software

Die Software für diesen Aufbau gestaltet sich dank der Dave3 Apps wieder relativ simpel. Das simulierte Gebersignal habe ich sehr einfach mit einer PWMSP001 App erzeugt, welche ein PWM-Signal mit einem Duty-Cycle von 50% ausgibt.

Um die Schaltflanken der Zündspulen zu erfassen, habe ich die entsprechenden Eingangspins mit IO002 Apps modelliert, welche jeweils mit einer Event-Request-Unit (Dave Apps ERU001 und ERU002) verbunden wurden. Die Ausgänge der ERUs triggern dann jeweils eine NVIC002 App, also einen Interrupt. Dieser Weg ist nach meinem bisherigen Erkenntnisstand der einzige, um über eine Flanke an einem IO-Pin einen Interrupt zu triggern. Wie dem auch sei. Die ERUs sind so konfigurieren, dass sie immer im Abschaltmoment (also da wo das Feld der Zündspule zusammenbricht und an der Zündkerze eine hohe Zündspannung induziert) den Interrupt auslösen. Diese Interrupts lesen jeweils zuerst den aktuellen Zählerstand der PWMSP001 App aus und berechnen darüber bei welchem Kurbelwellenwinkel die "simulierte Kurbelwelle" gerade steht. Exakt dieser Winkel ist auch der gesuchte Zündwinkel.

Die ermittelten Zündwinkel werden immer über den Zeitraum von 1 s ermittelt und der jeweils größte und kleinste Zündwinkel von jedem Zylinder und die aktuell simulierte Drehzahl über die USB-Schnittstelle an einen angeschlossenen PC ausgegeben.

Ich habe dazu zwei verschiedene Prüfprogramme implementiert. Ein Programm simuliert dauerhaft eine gewünschte Drehzahl und eines durchfährt den kompletten Drehzahlbereich des Trabantmotors.

Ergebnisse

Der Zündungsprüfstand hat mir bereits gute Dienste erwiesen. Ich habe damit die originale Transistorzündanlage vermessen, welche über den gesamten Drehzahlbereich erwartungsgemäß einen nahezu konstanten Zündwinkel hat. Wenig überraschend ist auch, dass zwischen Eingangs- und Ausgangssignal eine konstante aber nur sehr kurze Verzögerungszeit existiert. Praktisch: ich konnte damit auch endlich mal alle meine gelagerten Zündgeräte auf korrekte Funktion prüfen. Ich habe im Anschluss den Steckbrettaufbau meines eigenen Steuergerätes vermessen. Ich konnte dabei validieren, dass bei maximaler Drehzahl der Zündverzug zwischen Gebersignal und Schaltflanke für die Zündspule gerademal 0,06° Kurbelwellenwinkel gegenüber dem direkten Ansteuern der Transistorzündanlage beträgt. Der Geber soll bei der originalen Zündanlage zwischen 20° und 22° eingestellt werden. Bei diesem großen Toleranzbereich, erscheint die Abweichung durch die Zwischenschaltung meines Steuergerätes geradzu lächerlich.

Eine weitere interessante Erkenntnis hat das Vermessen eines kommerziell erhältlichen modernen Kennlinien-Zündsteuergerätes für den Trabant gebracht. Mit meinem Zündungsprüfstand war es sehr einfach möglich die einzelnen Kennlinien dieser Zündung zu ermitteln. Ich könnte mir durchaus vorstellen, meine ersten Kennlinien daran zu orientieren. Das war übrigens meine erste Erfahrung mit Reverse Engeneering. Den Produktnamen möchte ich daher lieber nicht veröffentlichen.

Das folgende Diagramm zeigt das ausgelesene Kennfeld dieser Zündanlage.

Diagrammbzadigitalvermessen.png

"°KW vor OT" bedeutet in diesem Zusammenhang "Grad Kurbelwellenwinkel vor oberen Totpunkt". Gemeint ist damit der Winkel der Kurbelwelle, welchen sie in Drehrichtung vor dem Punkt steht, an dem der Kolben an seinem höchsten Punkt angekommen ist. Die drei Kennlinien Leerlauf, Teillast und Volllast unterscheidet diese Zündanlage, indem sie den Lastzustand des Motors mit einem elektromechanischen Sensor direkt aus der Drosselklappenstellung ableitet. Um die drei Kennlinien auszulesen, habe ich den ausgebauten Sensor manuell in diese Stellungen gebracht.

Was kann man nun also aus diesem Diagramm ableiten? In Teillast und Volllast verschiebt sich der Zündwinkel mit zunehmender Drehzahl Richtung früh, bei geringer Drehzahl hingegen kann später gezündet werden. Wenn man bedenkt, dass zwischen Entzündung des Benzin-Luft Gemisches im Brennraum und der auf den Kolben wirkenden Druckwelle eine gewisse Zeit vergeht, klingt es logisch, den Entzündungszeitpunkt auf diese Weise abhängig von der Drehzahl zu verstellen.

Höhere Drehzahlen bedeuten im Leerlauf, dass der Motor gerade am Abtouren oder im Schubbetrieb ist (Motorbremse). Dort wird ein später Zündwinkel gefahren, um wenig Leistung abzurufen. Das erklärt, warum diese Zündung mit deutlich reduziertem Schieberuckeln aufwartet. Im Leerlauf zündet diese Kennlinie bei geringen Drehzahlen früh, was dafür sorgt, dass der Motor beim Einbrechen der Drehzahl im Leerlauf wieder mehr Kraft hat. Bei schwankender Leerlaufdrehzahl wird zudem die Leistung reduziert, wenn die Drehzahl zu hoch steigt. Dies realisiert eine simple Leerlaufstabilisierung.

Aktueller Stand

Nachdem ich die einzelnen Komponenten, die grundsätzlichen Überlegungen, sowie Konzeption von Hard- und Software beschrieben habe, möchte ich nochmal einen kurzen Überblick über den gesamten Aufbau geben.

Blockschaltbild.png

Die Grafik zeigt den schematischen Aufbau der Displayplatine und des Motorsteuergerätes. Angeschlossen sind auch die Sensoren, sowie die Zündtechnik, optional auch ein Laptop zum Aufzeichnen von Daten. Die Kommunikation über RS232 ist ebenso wie die grundsätzliche Spannungsversorgung mit 3,3 V ersichtlich.

Mit dem Stand Mitte Juli 2014 ist folgendes realisiert: Alle Vorarbeiten sind abgeschlossen. Alle Schaltpläne sind fertig. Die Hardware inkl. aller Sensoren wurde einmal auf einem Steckbrett aufgebaut und ausführlich getestet.

P1090700.jpg

Der Steckbrettaufbau auf dem Foto umfasst oben links den Zündungsprüfstand für die Validierung der Ergebnisse, oben in der Mitte die Transistorzündanlage und rechts den Luftmassenmesser. Auf dem Steckbrett ist unten links das XMC2Go Board zu sehen, welches später mal das Display ansteuern soll. Darüber befinden sich die beiden MAX3232 Chips zur Kommunikation zwischen den beiden Controllern. In der Mitte ist das XMC4500 Relax Lite Kit zu sehen (diesmal mit noch nicht abgetrenntem Debuggerteil). Oben links ist die Beschaltung für den Kurbelwellengebereingang und den Signalausgang zur Transistorzündanlage. Rechts auf dem Steckbrett befindet sich von oben nach unten die Spannungsstabilisierung für den Luftmassenmesser, die 3,3V Spannungsversorgung für die Controller und die ICs und ganz unten die Lambda-Messwandlerplatine ohne angeschlossene Lambdasonde.

Es wurde weiterhin Software für alle Teilkomponenten geschrieben, um diese zu testen. Diese Software-Fragmente können mit geringem Aufwand zusammengefügt werden. Das Ergebnis wird eine Software sein, mit der ich erste Messfahrten machen kann.

Es wurde weiterhin in einem vorbereitenden Projekt ein Prüfstand für die Zündsteuerung entwickelt. Damit wurde das Verhalten verschiedener Steuergeräte ausgetestet. Darunter die originale Transistorzündanlage, eine gekaufte Mikrocontrollerzündanlage und der selbstentwickelte Aufbau samt Firmware.

Alle Hardwarekomponenten liegen bereit, um verlötet zu werden. Mir kribbelt es schon in den Fingern ...

Ausblick

Eigentlich fängt das Projekt jetzt erst richtig an. Nach vielen Vorarbeiten, die mir insbesondere dabei geholfen haben das notwendige Fachwissen aufzubauen, habe ich nun bald eine erste einbaufertige Version. Zunächst sollen, wie schon beschrieben, Messdaten aufgezeichnet werden, um weitere Erkenntnisse zu gewinnen und Vergaser und Zündung besser abzustimmen.

Die Hardware ist auch schon für eine erste Implementierung einer dynamischen Zündwinkelanpassung vorbereitet. Das wird mein erster aktiver Eingriff ins Motormanagement sein. Dem soll eine elektronische Unterstützung der Gemischaufbereitung folgen.

Wenn das gelingt, habe ich schon viel erreicht. Es könnten erste einfache Softwareimplementierungen folgen, die den Motor komfortabler und betriebssicherer fahren lassen. Ich denke hier zum Beispiel an eine Zündspulenabschaltung bei eingeschalteter Zündung und nicht drehendem Motor. Dies verhindert effektiv die thermische Zerstörung von Zündspulen und Transistorzündanlage durch eine versehentlich angelassene Zündung. Um den Abbrand der Zündkerzenelektroden zu verringern, wäre auch eine Begrenzung der Zündspulenladezeiten eine tolle Sache. Der Motorstart könnte sowohl mit einem späteren Zündwinkel, als auch mit einer Gemischanfettung unterstützt werden.

Es könnte weiterhin hilfreich sein, die bisherige Sensoranbindung zu verbessern. Der Lambdamesswandler bietet zum Beispiel neben der Ausgabe der Lambdawerte über RS232 auch die Ausgabe als analoge Spannung. Darüber könnten die Messwerte ggf. zeitlich deutlich feiner aufgelöst werden. Ich könnte mir auch vorstellen noch mehr Sensoren zu verwenden. Es wäre zum Beispiel spannend den Druckverlauf im Saugrohr zu beobachten. Vielleicht kann man so auch eine "bessere" Lasterkennung realisieren.

Besonders interessant wäre der Einbau eines Klopfsensors. Bei all den Experimenten mit dem Motor will man natürlich nichts beschädigen. Ein eingebauter Klopfsensor könnte helfen in Grenzbereichen automatisch den Zündwinkel Richtung spät zu regeln oder mehr Kraftstoff zur Motorkühlung hinzuzugeben.

Ich möchte an dieser Stelle auch ganz vorsichtig das Wort Einspritzanlage in den Mund nehmen. Die Zerstäubung des Kraftstoffes hat einen ganz entscheidenden Einfluss auf die Qualität der Verbrennung. Die Einspritzdüse sollte dem Vergaser gegenüber klar im Vorteil sein.

Ich denke, ich konnte zeigen, dass die Möglichkeiten sehr groß sind, wenn erstmal einige Grundlagen geschaffen sind. Die meisten Ideen lassen sich mit relativ kleinen Erweiterungen des Aufbaus realisieren. Da mein oberstes Ziel ist, möglichst viel dazu zu lernen, sehe ich der Zukunft dieses Projektes mit großer Vorfreude entgegen. Ich bin gespannt welche der angesprochenen Punkte ich wirklich ausprobieren werde und was dabei rauskommt.

Das Wichtigste zum Schluss

Ich habe zwar Informatik studiert, mir den Großteil meines Elektronikwissens allerdings selbst angeeignet. Auch mein Wissen über Verbrennungsmotoren und ggf. Maschinenbau basiert auf Erfahrungen, die ich über mein Hobby gesammelt habe. Daher sei mir bitte der eine oder andere fachliche Fehler verziehen. Ich weiß auch, dass zum Beispiel meine Schaltpläne und Platinen nicht professionell sind. Der eine oder andere wird wohl auch meine Schaltungen stümperhaft finden. Das bekomme ich irgendwann sicher alles noch besser hin. Ich freue mich ganz ehrlich über alle Hinweise, Verbesserungsvorschläge, Anregungen, Korrekturen und Erweiterungsideen.

Das gesamte Projekt ist in meiner knapp bemessenen Freizeit entstanden und ich arbeite nun schon fast 2 Jahre daran. Ich würde alles (und damit schließe ich diese Projektbeschreibung mit ein) gern viel professioneller und ausführlicher machen, aber dafür fehlt schlicht die Zeit. Irgendwann will man auch einfach mal Ergebnisse haben. Es ist ein imenser Aufwand, den ich hier kaum beschreiben kann. Meine Frau ist unendlich geduldig mit mir, dafür möchte ich mich an dieser Stelle herzlich bei ihr bedanken. Ein riesiger Dank gilt auch Siggi, der alle meine Elektronikfragen immer ausführlich und kompetent beantwortet. Und dann ist da noch Peter, der es kaum erwarten kann, die erste Version des Steuergerätes in seinen Trabi einzubauen. Er hat beruflich viel mit Verbrennungsmotoren zu tun und teilt sein Fachwissen mit mir wo er kann. Er sprudelt auch vor Ideen und Lösungsvorschlägen und hat mir auch so manche konstruktive Arbeit abgenommen. Ohne Ihn hätte ich das Projekt nie gestartet und wäre auch längst nicht so weit.

Warnung: Nachbau auf eigene Gefahr! Mit Modifikationen dieser Art erlischt die Betriebserlaubnis eines Fahrzeugs.

Update vom 20.07.2014

Es funktioniert! Ich habe mich für den Einsendeschluss nochmal richtig in's Zeug gelegt. Was ich noch geschafft habe:

  • Bestückungsplan gemacht
  • Hauptplatine für Zündsteuerung und Lambdasonde bestückt
  • Kabelbaum für Zündsteuerung gefertigt
  • Erstinbetriebnahme auf dem Schreibtisch
  • Verifizierung, der ausgegebenen Zündwinkel
  • Alles in's Fahrzeug eingebaut
  • Probefahrt gemacht
  • Tierisch gefreut!

Hier noch zwei Bilder vom Steuergerät im Fahrzeug:

P1090707.jpg

P1090708.jpg

Bitte nicht über die Tupperdose lachen. Das eigentlich dafür vorgesehene Gehäuse war einfach zu klein. Was Besseres war gerade nicht griffbereit. Auch die Bildqualität lässt zu wünschen übrig - das tut mir leid. Leider hatte ich heute nicht viel Zeit und die Bilder habe ich noch fix in der Tiefgarage geschossen. Wie auch immer, ich bin sehr zufrieden, dass die erste Probefahrt ohne Zwischenfälle verlief. :)

Das Steuergerät erfasst nun die Kurbelwellengebersignale und gibt sie unverändert weiter an die Transistorzündung. Der Motor startet damit problemlos und läuft unauffällig wie immer - keine Aussetzer etc. Das heißt, sowohl Spannungsversorgung, als auch Kurbelwellengebersignalerfassung und Zündwinkelausgabe funktionieren. Die Ausgabe der Drehzahl über USB funktioniert auch, ist aber relativ instabil. Das konnte ich auf dem Schreibtisch nie beobachten. Da muss ich mir noch etwas einfallen lassen. Ich werde morgen versuchen den Hochspannungsteil der Zündung abzuschirmen. Das wurde früher beim Trabant auch gemacht um einen störungsfreien Radioempfang zu ermöglichen. Danach wird die Lambdasonde in Betrieb genommen, dann der Luftmassenmesser ... Es gibt noch viel zu tun!