Hallo! Ich möchte eine Zündeinheit für ein 4-Zylinder 4-Takt Motor bauen. Der Sinn des ganzen besteht darin, dass ich den Zündzeitpunkt variabel einstellen kann, d.h. im Leerlauf 0° OT und bei max. Drehzahl 50° vor OT. Die Zündspulensteuerungen hab ich schon fertig. Jetzt fehlt nur noch die Steuerung. Das ganze soll an einem Zahnrad an der Kurbelwelle abgenommen werden, über einen Mikrokontroller ausgewertet und verteilt werden. Jetzt hab ich nur das Problem, dass ich keine Ahnung hab, welchen ich nehmen soll. Das Programm sollte in C geschrieben werden. Benötigt werden 1 oder 2 eingänge für die Kurbelwellensensoren und 4 ausgänge für die Zündkerzen. Dachte an einen ATmega8. Oder sollte ich einen anderen wählen?? Hoffe ihr könnt mir helfen.
Das mit dem Atmega8 ist ernst gemeint ? Bei bis zu 8000 U/min und das ganze in Echtzeit sind normalerweise andere Kaliber notwendig. Es gibt ganz Controller-Familien, die sich auf Motorsteuerungen spezialisiert haben. An dieser Stelle seien Freescale-Derivate mit integrierter eTPU erwähnt, ein integrierter Block, der mit hoher Rechenleistung solche Aufgaben bewerkstelligen kann.
Ich sehe kein Problem beim ATmega8. Der kann locker im µs Bereich schalten. So schnell ist kein Verbrennungsmotor der Welt. Der ATmega 8 ist ok.
Um zu versuchen ob das ganze überhaupt zu realisieren ist, wollte ich es mit einem ATmega8 versuchen. Das dieser nicht alltagstauglich und dauerbelastbar ist, war schon irgendwo klar. Geht nur drum, ob ich es überhaupt hinbekomme, dass es so funktioniert, wie ich mir das ganze vorstelle. Das ganze soll auf einem Brett aufgebaut werden. Wenn es nachher funktionieren sollte und ich es hinbekomme, welchen Contorller kannst du mir für den alltag im Autoeinsatz empfehlen??
Fuer solche Applikationen (und wenn noch Automotive spezifiziert) ist die Piccolo Familie entwickelt worden -> http://www.ti.com/corp/docs/landing/f280xx-piccolo/index.htm Bei einer PWM Aufloesung von 150ps ! kann man schon sehr schnelle und genaue Ausgangssignale generieren. C-Compiler und Starterkit fuer $39 sind verfuegbar.
Hallo Chuckman, der ATmega8 wird für Deine verhältnismäßig langsame Anwendung vollkommen ausreichen und IO´s hat er für mehrere Motoren gleichzeitig. Wie zeitkritisch die Sache ist kann ich nur schätzen. C sollte dafür ausreichen. Mit Assembler stellt sich die Frage nicht. Wie willst Du denn nur am Zahnrad die Position der Kurbelwelle feststellen. Oder ist da ne Null-Punkt-Bohrung Mfg Ak Tronik
Ich habe vor ein Zahnrad an der KW zu befestigen mit 32 Zähnen und einem oder 2 Auslasszähnen. Dann hat Zylinder 1 OT. Und dann soll das ganze Spiel anfangen. Anhand der Zähne kann ich ausrechnen wann welcher Zylinder zündet. Und je schneller das Rad dreht, desto schneller werden die Zähne erkannt und anhand dessen soll der Zündzeitpunkt vor gelegt werden. Jedoch bin ich am überlegen ein Zahnrad mit mehr Zähnen zu nehmen. 64 und 2 Auslasszähne um das ganze genauer zu machen. Ich habe schon mehrere Sachen mit PIC's gemacht und auch im Auto verwendet. (Drehzahlanzeige, Öldruckanzeige, Ladedruckanzeige) und musste feststellen, dass diese Teile nicht alltagstauglich sind. Haben im Sommer wenn es warm wird sehr viele aussetzer. Und das möchte ich bei einer Zündung vermeiden, da ich auf sie angewiesen bin. Von daher soll der ATmega nur zum testen dienen und später soll was vernünftiges rein, wsa den Anforderungen gewachsen ist.
OK, denn wenn Das Zahnrad keine "Extramarkierungen" hätte, dann würde es ja nicht gehen. Ich denke, dass erheblich weniger Zähne ausreichen. Bei 32 Zähnen sollten Deine Initiatoren eine Schatfrequenz von min 5kHz haben, besser 10kHz. Wirst es ja wohl nicht optisch machen? MfG Ak Tronik
Also ich dachte eigentlich dass wenn ich mehr Zähne habe, ich den Zündzeitpunkt genauer bestimmen kann und es auch genauer wird, wenn ich ihn nach vorne legen will. Wollte das ganze mit einem Induktivgeber machen. Der mir ein 3 oder 5V rechteck pro Zahn liefert.
> und musste feststellen, dass diese Teile nicht alltagstauglich sind. Hier hast Du wohl einige Fehler gemacht. PICs werden in allen möglichen kritischen Systemen eingesetzt und arbeiten dort auch einwandfrei. Im Automotive-Bereich findest Du sie zum Beispiel bei Airbag- und ABS-Systemen. Vielleicht solltest Du Dich mal ein wenig mit den Grundlagen aus dem EMV-Bereich beschäftigen. Um ein CE-Zeichen (zu recht) zu erlangen, muß Du Dich damit sowieso auseinander setzen.
Ok, das wusste ich nicht. Dann kann es auch sien, dass der rest der Schaltung nicht alltagstauglich ist. Wie gesagt, bei hohen Temperaturen funktioniert es nciht mehr. Verwendet wurde ein PIC16F84A. Aber egal, geht ja jetzt sowieso um die Zündgeschichte. Brauche ja dafür noch ein paar Tipps und anregungen.
> Um zu versuchen ob das ganze überhaupt zu realisieren ist, wollte ich > es mit einem ATmega8 versuchen. So ein Problem laesst sich selbstverstaendlich mit dem Mega8 loesen, und es laesst sich auch in C loesen. Die Frage ist nur ob du das kannst wenn du schon hilfe bei der Auswahl deines Controllers brauchst. Allerdings ist der Mega8 nicht der beste Controller fuer diese Aufgabe weil die dummen AVRs keine priorisierten Interrupts koennen. Solange da aber nur deine Steuerung und nichts anderes drin laeuft ist es kein Problem. Bei aelteren Autos hat Bosch sowas z.B mit echten alten MCS51 gemacht. Spezielle Controller wie z.B die angesprochenen Motorola mit integrierter TPU haben den Vorteil der integrierten Nebenlaeufigkeit. Selbst wenn der Programmierer also weniger faehig ist, oder der Controller noch andere Dinge zeitgenau machen muss, z.B Einspritzung, am CAN-Bus auf Kommandos lauern, ueber SPI einen Temperatursensor abfragen, dann kann er das. Wenn du also wirklich nur das machen willst was du jetzt vorhast dann nimm den Mega8 ruhig. Willst du dagegen irgendwann nochmal auf etwas anderes erweitern dann wuerde ich einen moderneren Controller nehmen. Ein Beispiel dafuer waere ein R8C28. Der ledert einen alten Mega8 sowas von ab... Olaf
> Dann kann es auch sien, dass der rest der Schaltung nicht > alltagstauglich ist. Richtig, denn Dein PIC arbeitet bei richter Auswahl laut Spezifikation bis 85°C. Selbst in der Sahara wird bei überlegt gewählter Einbausituation diese Temperatur nicht erreicht.
Also das Teil soll lediglich zur Zündzeitpunktbestimmung dienen. Einspritzung und so brauch ich nicht, da auf Vergaser umgebaut wurde. Von daher sind mir auch frei programmierbare Steuergeräte zu teuer (ab 800€) da sie noch mehr schnickschnack drin haben, den ich nicht brauch. Das hier wird mein erstes "richtiges" Projekt, was auch selbst entworfen wird und die ganze Planung selbst durchgeführt wurde. Von daher auch die Fragen. Hat ja jeder mal klein angefangen. Programmierkenntnisse sind vorhanden. Allersings nur in C, Pascal und Basic. Von daher suche ich einen Controller der in C programmiert werden kann. Und der mega8 hat mir da sehr zugesagt für dieses vorhaben.
Hallo, Mega8 reicht für Zündung problemlos aus. Lediglich die vorhandenen Timer sind für ein "echtes" Winkelsystem kaum geeignet. Da gibt es sogar Besseres von Atmel. Ich habe z.B. ein komplettes Motorsteuergerät für den Rennsport bis zu 12 Zylinder und 12800Upm, 60-2 KW-Trigger, Messen und Applikation über Ethernet, Klopfregelung, stetige Lambdasonde und noch einiges mehr mit einem Mega2560 komplett in C realisiert. Läuft einwandfrei mit ca. 60% Prozessorlast bei Nenndrehzahl (~9300Upm) z.B. auf einem 6 Zylinder. Gruss
Hast du es bei dir auch so gemacht, dass der Zündzeitpunkt variabel verstellt wird? Wenn ja, wie genau hast du das realisiert? Ihc habe mir das so gedacht, dass wenn ich mehr Zähne am Zahnrad habe einfach hingehe und mit steigender drehzahl die Zündung "einen Zahn" nach vorne setze. Welche Sensoren hast du fpr die KW genommen? Einen oder zwei? Wie hast du das mit der Zündung realisiert? Ich habe es jetzt so, dass ich für ejden Zylinder eine eigene Zündspule habe. Was recht aufwendig ist und viel Platz braucht. Habe mir überlegt ein DIS-Zündmodul einzuarbeiten, aber ich weis nicht wie ich es ansteuern soll. Hoffe du kannst mir ein wenig helfen
Hi, Zündzeitpunkt wird in Abhängigkeit der Zylinderfüllung und der Drehzahl verstellt. Die Zahnzahl am Geberrrad erhöht natürlich die Genauigkeit, allerdings auch extrem die Prozessorbelastung. Wie oben schon erwähnt wurde wird bei höherer Zahnzahl dann vielleicht ein etwas stärkerer uC fällig, mit integriertem 2ten Prozessor (Tricore tc176x, tc177x oder auch MPC 555x). Allerdings steigt dann auch der Preis für die Entwicklungswerkzeuge ins Unermessliche. Die 60 Zähne haben sich als sehr guter Kompromiss herausgestellt (denkt die Autoindustrie so auch :-) ). Dein geplanter Weg die Zündung zahnweise zu verstellen ist natürlich der Einfachste, allerdings auch der Gröbste. Bei mir wird zwischen den Zähnen mit einer feineren Zahnteilung interpoliert (Das ist dann auch ein echtes Winkelsystem mit Grob- und Feinzahn Aufteilung). Nicht zu unterschätzen ist hier auch die Schliesswinkelregelung bei Zündspulen ohne "eigene Intelligenz". Hierbei muss eine Überladung, sowei eine Unterladung unter allen Drehzahlgradientenbedingungen vermieden werden. Sensor ist bei mir ein üblicher induktiver Drehzahlsensor auf der KW und ein Hallsensor auf der NW. Bei mir ist auch bis zu 6 Zylindern Einzelfunkenzündung, danach Doppelfunkenzündung möglich. Ich nutze aus EMV und Verlustleistungsgründen nur Zündspulen mit integrierter "dummer" Leistungsendstufe(Schleisswinkelregelung im Steuergerät), meist Stabzündspulen für direkte Kerzenmontage. Sind allerdings nicht ganz einfach in der Ansteuerschaltung. Ein DIS-Zündmodul ist da die richtige Wahl. Ansteuermöglichkeiten sind hier 5V, 12V oder stromgeregelt. Hängt sehr vom Hersteller ab. Bei konkreteren Typen kann ich Dir sicherlich helfen, da ich ca. 40 verschiedene Module aus Europa, USA und Japan vermessen habe. Gruss
also mit nem PIC hatte ich zumindest mal 'ne Zündung für ein Moped gemacht (bedeutet also nur ein Zylinder). Mit Zahnrad habe ich es aber nicht gemacht, sondern einfach nur ein Hallsensor an einer bestimmten Stelle vOT. Letztendlich lief das auf eine Zeitberechnung hinaus, die ich warten musste, bis es Rumms machen sollte. Eigentlich nicht sehr genau, weil ein Verbrennungsmotor immer etwas unrund läuft. Bei 'nem Vierzylinder brauchste ja nur noch jede 1/4-Umdrehung abzuwarten, um jeden Zylinder bedienen zu können. Das hätte der PIC auch noch geschafft, wenn ich nur noch Zahnradzähne abzählen muß. Und wenn's ein PIC schafft, dann ein Atmel erst recht, weil ein normaler PIC intern nur mit 1/4 der fosz läuft. Da wird ein Atmel bei selbem Takt noch ein ganzes Stück schneller sein, auch wenn Microchip mit einem Takt pro Instruction wirbt - er wird es also lässig schaffen (wobei ich nicht genau weis, wie effizient C-Routinen sind - ich hatte Assembler benutzt).
Das hört sich ja alles schonmal sehr gut an. Da der Motor für den das ganze sein soll, weder einen Kw noch einen NW-Sensor hat, werde ich auch nur auf einen KW-Sensor zurückgreifen. Das Zahnrad soll anfangs mit 32 Zähnen und 2 Auslasszähnen sein. Das dürfte für den Anfang genügen. Im moment steht die Planung bei 4 6V Zündspulen und 4 Ansteuerungen für die Spulen, die dann vom Controller getaktet werden sollen. Ich will das ganze vereifachen und es wie gesagt, mit einem DIS Zündmodul machen, allerdings fehtl mir die Kenntniss dazu. Habe welche von Opel und Peugeot hier liegen. Sind beide aus einem 4 Zylinder. Das von Opel hat einen 4 poligen Stecker. Laut Schaltplan vom Auto einmal Klemme 15 und 3 Anschlüsse ans Motorstg. Was da rauskommt an Signal kann ich leider nicht sagen, daher fällt diese Möglichkeit der ansteuerung wohl auch aus. Wobei sie mir lieber wäre als 4 Spulen, da diese doch recht viel Platz in anspruch nehmen.
Hi, nur mit KW-Geber bedeutet dann natürlich nur Doppelfunkenzündung, selbst bei Verwendung von 4 einzelnen Spulen, da Du ohne NW nicht den Z1-OT erkennen kannst !! Bei Opel-Modulen ist meistens ein interner Pullup zu 12V und der Treiber im Steuergerät ist ein Open-Collector Treiber. Das gilt für die meisten europäischen Module aus der guten alten "Doppelfunkenzündungszeit". Gruss und viel Spass
Für Z1 OT habe ich ja die Auslasszähne am Zahnrad. NW-Sensor geht nicht und Hallgeber auch nicht, weil dann müsste der Verteiler drauf und der passt nicht. Deshalb auch die ganze Bastelei. Nur wie bekomme ich die DFZ angesteuert und getaktet??
Nicht wirklich. Die Marken an der KW reichen nicht um Z1 zu erkennen, da Du ja sicher einen 4-Takter hast. Somit kommt alle 180° KW ein Z-OT und Deine Marken kommen natürlich auch 2 mal an Deinem Geber vorbei (720° KW pro Arbeitsspiel (alle 4 Zylinder)) ... Gruss
> Programmierkenntnisse sind vorhanden. Allersings nur in C, > Pascal und Basic. Es ist vollkommen egal in welcher Sprache du das machst solange du sie nur halbwegs beherscht. Wichtig ist aber das du dir bereits bevor du die erste Zeile tippst ueber den Aufbau deines Programmes klar bist. Und dazu ist es notwendig das du weisst was dein Controller genau kann. Du solltest also wissen was z.B in einem IRQ passiert, welchen Timer du genau wofuer verwenden willst und ob seine Aufloessung fuer das was du da machst auch reichen wird. > Von daher suche ich einen Controller der in C programmiert werden kann. Die Controller die man NICHT in C programmieren kann die kann man vermutlich an einer Hand abzaehlen. Das ist ja gerade das schoene an Microcontroller das man immer C verwenden kann. Wenn ich dir noch einen Tip geben darf, sieh in deinem Programm von vornerein ein Ausgabe ueber RS232 vor. Soll heissen dein Programm gibt an einer Stelle immer eine bestimmte Anzahl von Bytes aus. Und je nachdem was du da machst kannst du dann dort zu Anfang Daten fuer die Fehlersuche, und spaeter ein paar Basisdaten fuer eine Diagnose deines Steuergeraets ausgeben. Sowas erleichtert einem das Leben ungemein da du ja schlecht neben deiner laufenden Mofa<BG> den Controller im Debugmode anhalten kannst um mal einem Register auf den Zahn zu fuehlen. Ausserdem moechte ich dir auch dringenst raten bei deiner Schaltung auf den Temperaturbereich zu achten. Wichtiger noch als die obere Grenze die du vielleicht noch vermeiden kannst weil du ja nicht im inneren eines heissen Motorraum bist, ist die untere. Du moechtest doch bestimmt auch mal im Winter bei -10 Grad fahren oder? Ich jedenfalls mache das. :-) Denke auch an Feuchtigkeit (vergiessen) und Vibration. Besonders Quarze moegen letzeres nicht so. Also Datenblatt lesen! Olaf
Mist, du hast recht. Ist mir total entfallen. Dann muss ich versuchen noch irgendwo einen NW-Sensor unterzubringen, was das ganze nicht einfacher macht. Aber es wird wohl irgendwie hinhauen. Nur wie löse ich mein Problem mit der Zündung?? Wie hast du das realisiert??
@Olaf Danke für die hilfreichen Tipps. Also das mit der niedrigen Temperatur ist nicht so schlimm, weil es für ein Cabrio ist. Besser gesagt, ein Oldtimer, der eigentlich nur in 3 Monaten im Jahr bewegt wird. Und das nicht im Winter. Und bevor es ins Auto kommt, soll es wie gesagt erst funktionieren. Von daher will ich es erst mal als Versuch aufbauen und sehen ob es überhaupt klappt.
> niedrigen Temperatur ist nicht so schlimm, weil es für > ein Cabrio ist. Ach so, ich hatte irgendwie angenommen das es fuer ein Motorrad ist. Wenn deine Elektronik aber fuer ein Auto ist dann sind 85Grad nicht ausreichend. Die erreichst du im Sommer unter der Motorhaube locker! Und ueberleg dir auch was passiert wenn deine Elektronik spinnt. Es ist okay wenn der Motor im Fehlerfalle einfach ausgeht, aber schlecht wenn der Controller ploetzlich wild rumzuendet. Ich hatte uebrigens auch mal ueberlegt sowas fuer mein Motorrad zu bauen. Aber dann dachte ich mir wenn die BMW bisher 30Jahre mit Zuendkontakte gelaufen ist dann wird sie das auch noch weitere 30Jahre machen. Es gibt auch noch eine andere Moeglichkeit wie du dir viel Arbeit sparen kannst. Nimm einfach ein altes Steuergeraet und bau da einen neuen Controller ein. Wie ich schon erwaehnte, Bosch hat in seinen alten Steuergeraeten, etwa so Baujahr 91/92, MCS51 verwendet. Die hatten sogar externes EPROM. Da koenntest du vielleicht nur ein neues PRogramm schreiben. Oder du schaust mal ob Atmel nicht einen AVR hatte der Pincompatibel war. Ich meine die waren bis auf den Resetpegel austauschbar. Ich glaub die Schaltplaene zu den alten Steuergeraeten lagen auch schonmal irgendwo im Netz rum. Olaf
also ich würde Dir dringenst raten Doppelzündung zu implementieren, dann kannst Du nur mit dem KW-Sensor auskommen. Das Problem bei allen diesen Konzepten mit einzelnen Zündspulen ist, dass Du ein richtges Winkelsystem implementieren musst, welches auch Überlappungen der einzelnen Schliesszeiten darstellen kann. Dazu muss jede Spule einzelen auf die KW-Winkelbasis synchronisiert werden. Es werden als Spulenndaten immer Endwinkel (Zündzeitpunkt) und Startwinkel (Schliesswinkel) benötigt. Das Problem hier ist natürlich dass sich die reale Vorhalte/Ladezeit der Spule mit der Drehzahl verändert. Sie muss also laufend nachgerechnet und ggf. korregiert werden, soweit die Spule noch nicht eingeschaltet wurde. Gruss
Also wie gesagt, das ganze soll wirklich für ein Auto sein. Aufgrund eines Motortauschs passt der orginale Verteiler nicht mehr, deshalb soll das ganze so realisiert werden. Ich werde mir jetzt erst mal ein Experimentierboard ätzen und das ganze mit 2 Zylindern ausprobieren bevor ich dann auf 4 übergehe. Es waren bis jetzt wirklich hilfreiche Tipps dabei und einige Dinge die ich total vernachlässigt habe. Deshalb werde ich mich jetzt mal ans werk machen und mal rumtesten. Hoffe auf weitere Unterstützung eurer seits.
hi also ich bin mir zu 100% sicher das nen PIC NICHT in nem AIRBAG benutzt wird!!!!!!! (div. china teile laß ich jetzt mal außen vor) PIC's werden im all. eher ungern für automotive eingesetzt! andere hersteller wie TI,NEC,Freescale, etc. sind hier angesagt! so und wenn jemand sagt 85°C sind ausreichend der hat noch nie nen automotive design gemacht! 90% der hersteller schreiben 85°C umgebungstemp ECU vor. so in der büchse ist es gut und gerne noch mal 5-10° wärmer! (ich bin mir bewust das die dinger auch noch bei 100° oder so tun nur geht das auf die lebensdauer)! mfg
> ich bin mir zu 100% sicher ... Schau mal zum Beispiel hier rein: http://www.automotivedesignline.com/191800363 Schmeiß bei Gelegenheit mal Dein google an, dann kannst Du noch viel mehr zum PIC-Einsatz im Automotive-Bereich finden finden. > ... schreiben 85°C umgebungstemp ECU vor Klar, deswegen werden ja auch oft Bauteile verwendet, die nur bis 85°C spezifiziert sind.
hi also nur nebenbei ich bin in der atomotiveentwicklung tätig und brauch zu diesem punkt kein google!!!! nur mal sone frage wer sagt dir das teile bis 85° eingesetzt werden? ich mein es gibt durchaus teile (bei nec z.b. a0 grade (85°C TA)....a2-grade 125°C oder so)die spezielll dafür ausgelegt sind bzw. darauf geprüft werden! und nur mal so nebenbei der artikel ist 2,5 jahre alt!!!! welch gigantischer speicher 96k flash und 3k ram.........in heutiger aplikationen sind uC mit 2MB durchaus drinn! und nur mal so neben bei gesagt PIC hat auch nicht das größte interesse an automotive IC's weil die hohen qualitätszahlen für die hart sind! ich möchte damit nicht sagen das PIC's schlecht sind, aber für automotive eher ungeeignet! mfg
Marcel wrote: > also nur nebenbei ich bin in der atomotiveentwicklung tätig und brauch > zu diesem punkt kein google!!!! Wenn man sich dein Posting so ansieht, wahrscheinlich als Spezialist Applikation Innenseite Bodengruppe...
fast...innenraum schon.....eher kofferraum ;) kenn mich aber auch einwenig mit airbag und anderen sicherheitskritischen assisents ECU's aus. mfg
85 °C reichen nicht. Das ist OK für Installationen im Fahrzeuginnenraum. Für Anwendungen im Motorraum ist eine Temperaturzertifizierung von mindestens 125°C notwendig. Und damit wird es deutlich teurer und aufwändiger.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.