Ich habe eine programmierbare elektronische Zündung von 123ignition und möchte gerne mit einem Mikrocontroller drangehen. Ein Laptop ist doch eher unhandlich und auch die Programmierung könnte ich mir anders vorstellen. Leider geschieht etwas auf der Leitung, was ich nicht verstehe, daher meine Bitte um Hilfe. Vielleicht verstehe ich auch nur das Protokoll nicht. Erstmal eine Beschreibung der Ausgangssituation: Die Zündung verwendet wird über ein USB-Kabel an den PC angeschlossen. Wenn der Verteiler sich nicht dreht, kann sie programmiert werden, sonst werden verschiedene Werte angezeigt: Drehzahl, Frühverstellung, Unterdruck, Temperatur und Strom durch die Zündspule. Die Drehzahlanzeige beginnt bei 500 U/min. Die Zündung basiert auf einem Mega8 und verwendet für die Kommunikation einen FTDI-Chip, der eine serielle Schnittstelle emuliert. Man kann die Schnittstelle nicht auswählen, das Programm erkennt die Zündung selbst. Ich habe nun folgendes untersucht: Einstellung des Treibers: 9600 Baud, 8 Datenbits, 1 Stopbit, Parity none, kein Handshake. Frühverstellung der Zündung: 0 Grad bei allen Drehzahlen. Ich habe meine Bohrmaschine angeschlossen die mit ca. 1200 U/min dreht, die Anzeige geht dann brav auf 2400 (der Verteiler dreht mit halber Drehzahl) Mit einem Terminalprogramm habe ich nun geschaut was an Daten von der Zündung kommt. Es scheint für jeden der oben genannten Werte ein Byte gesendet zu werden und ein Byte (Seitenvorschub) möglicherweise als Trenner. Ich habe das ermittelt, indem ich beim Originalprogramm bei gaaaanz langsamer Drehzahl geschaut habe, welche Anzeige muckt. Hier die erhaltenen Werte: langsam: 43 0c 67 86 82 63 43 0c 67 86 82 63 43 0c 67 86 82 63 43 0c 67 86 82 63 43 0c 67 86 82 63 43 0c 67 86 mittel (Anzeige ca. 1500 U/min): 63 53 0c 67 86 82 63 53 0c 67 86 82 63 53 0c 67 86 82 schnell (Anzeige ca. 2300 U/min): 63 53 0c 67 86 82 63 53 0c 67 86 82 63 43 0c 67 86 82 63 53 0c 67 86 82 63 43 0c 67 86 82 63 53 0c 67 86 82 63 53 0c 67 86 82 Der einzige Wert der sich ändert steht in der 2. Spalte, allerdings ändert sich das low Nibble nie. Die Vertauschung der beiden Nibbles bringts auch nicht, mir fehlen dann die Zwischenwerte. Man kann bei der Zündung ein Log einschalten, das liefert bei gleicher Situation folgende Daten: langsam: 410 00B 100 264 234 500 410 00B 100 264 234 500 410 00B 100 264 234 500 mittel: 410 01C 100 264 234 500 410 01D 100 264 234 500 410 01C 100 264 234 500 schnell: 410 02F 100 264 234 500 410 02F 100 264 234 500 410 02F 100 264 234 500 410 02F 100 264 234 500 Die erste Stelle scheint eine Kennung zu sein, worum es sich handelt, dann folgt ein Hex-Wert. Die 2. Spalte ist hier schön nach Drehzahl differenziert. Ich habe nun gedacht, dass ich vielleicht nur das Protokoll nicht verstehe, also habe ich einen MC dazwischengeschaltet, der auf der einen Seite einen USB-Host simuliert und auf der anderen Seite die serielle Schnittstelle. Damit das Original-Programm das als Zündung erkennt, habe ich sogar dieselbe VID, PID und Seriennummer vorgegaukelt (und ich habe gelernt, dass ein Rechner abstürzen kann, wenn man etwas Schlechtes in einen USB-Port steckt). Zunächst habe ich einfach die Daten an den PC gesendet, die ich vorher selbst von der Zündung empfangen habe. Ergebnis: keine Regung der Anzeigen, nicht darstellbare Zeichen im Log. Dann habe ich vermutet, dass das Originalprogramm vielleicht antworten muss oder erst mal zum anständigen Senden auffordert, also habe ich die Daten in beiden Richtungen weitergeroutet und auf einem LCD-Display angezeigt: Im Betrieb sendet der Rechner nichts, sondern empfängt nur die Daten der Zündung. Im Stand sendet er wiederholt 0xFE und scheint auf eine Antwort der Zündung zu warten, die nicht kommt. Ich bin ratlos und brauche Hilfe! Was mache ich beim Auslesen der Information falsch? Ich habe auch schon andere Baud-Raten etc. probiert - ohne Erfolg. Der Hersteller antortet nicht direkt und antwortet auf meine Anfrage im Forum leider nicht. Ich muss dazu sagen, dass ich nicht der MC-Guru bin. Der geschilderte Versuchsaufbau ist mir schon ordentlich schwer gefallen. Ich hoffe daher, dass ich irgendwas übersehen habe. Christoph
Christoph schrieb: > Ich muss dazu sagen, dass ich nicht der MC-Guru bin. Ne, scheinbar freier Mitarbeiter bei der Bravo der für "Zeichen pro Seite" bezahlt wird
Du hast natürlich recht, ist schon lang. Ich wollte halt gleich alle Fakten auf den Tisch legen und nicht erst auf Rückfrage. Wenn's noch mehr Leute nervt, mach ich's in Zukunft anders. Den Verweis zur Bravo hab ich allerdings nicht verstanden; war aber bestimmt lustig. Ansonsten bin ich auch an Hilfe zu meinem Problem interessiert.
Zuallererst ist wahrscheinlich das 0c das Zeilenende, also nicht: Christoph schrieb: > 63 53 0c 67 86 82 > 63 53 0c 67 86 82 > 63 43 0c 67 86 82 sondern 67 86 82 63 53 0c 67 86 82 63 43 0c 67 86 82 63 53 0c 67 86 82 63 53 0c fonsana
Wurde das Rätsel gelöst? Ich stehe vor dem genau gleichen Problem und durchschaue das Protokoll nicht.
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.