Hallo zusammen, nachdem ein Softwareupdate des Gassteuergerätes meines PKW fehlgeschalgen ist, funktioniert das Steuergerät nicht mehr. Sobald ich versuche mich via Interpace zu verbinden, erhalte ich die Meldung "Verbindung fehlgeschlagen". Ich habe das Steuergerät mal geöffnet und folgender Chip ist verbaut: Microchip PIC18F8520-I/PT Nun meine Frage als Leihe: Gibt es eine Möglichkeit die Software neu aufzuspielen bzw. zurückzusetzen? Welche Hard bzw. Software würde ich dafür benötigen? Ich habe mal ein Paar Bilder des geöffneten Gerätes hochgeladen. Bin für jede Hilfe dankbar!
Was sagt der Hersteller? Eventuell ist das Update-Problem bekannt...
Hi, leider ist der Hersteller wenig auskunftsfreudig. Ein bekannter sagte mir das man neu flashen müsste, die frage ist halt wie....
Tikko schrieb: > Hi, > > leider ist der Hersteller wenig auskunftsfreudig. Ein bekannter sagte > mir das man neu flashen müsste, die frage ist halt wie.... Wer ist denn nun der Hersteller ? Gruß Axel
Tikko schrieb: > Gibt es eine Möglichkeit die Software neu aufzuspielen bzw. > zurückzusetzen? > Welche Hard bzw. Software würde ich dafür benötigen? Bei PIC kann ich leider nichts empfehlen, Google hilft, gibt aber mehr als genug Auswahl. Das echte Problem ist jedoch die Firmware. hast du das Original? oder denkst du beim update ist ein Fehler aufgetreten und willst die neue erneut flashen? auch dann müsstest du irgendwie an das Hex File kommen. wie hast du denn das Update gemacht? an PC angeschlossen? dann musst du die Firmware (eventuell verschlüsselt) aus dem update Programm extrahieren.
Wenn es "richtig" gemacht ist, kann man die Firmware nicht ohne weiteres aus dem Updatefile extrahieren bzw. entschlüsseln. Das erledigt ein Bootloader auf dem Controller mit einem intern abgelegten Schlüssel. Wenn nun aber der Bootloader selbst nicht mehr funktioniert hat man die A-Karte.
Tikko schrieb: > Nun meine Frage als Leihe: > > Gibt es eine Möglichkeit die Software neu aufzuspielen bzw. > zurückzusetzen? Als "Leihe" sehe ich da für dich wenig Chancen. Wenn "Leihen" flashen wollen kann es teuer werden!
kein Leihe schrieb: > Als "Leihe" sehe ich da für dich wenig Chancen. Wenn "Leihen" flashen > wollen kann es teuer werden! Quatsch - die machen das für (Flaschen-) Pfand - daher kommt auch die Bezeichnung "Pfandleihe" :-)
kein Leihe schrieb: > Wenn "Leihen" flashen wollen kann es teuer werden! Muss man dann als Leergeld betrachten.
Immerhin kann man auf dem 2. Bild eine ICSP-Buchse ausmachen. Ganz abwegig scheint dem Hersteller das "neu flashen" also nicht zu sein. Schlau waere es natuerlich gewesen vor dem Update da mal lesenderweise nachzuschauen und evtl. den alten Inhalt zu sichern. Warum hast du ueberhaupt geupdatet? Ohne grosse Not lasse ich sowas immer tunlichst in Ruhe.
Hi, vielen Dank für deine Rückmeldung. Ich denke ich habe mich falsch ausgedrückt. Man schließt das Interface an eine Schnittstelle am Steuergerät an. Dies geht nur am Fahrzeug selber, da die Schnittstelle an einem Kabelbaum hängt. Dann kann man sich mit dem Steuergerät verbinden und diverse Einstellungen an der Gasanlage vornehmen. In dieser Software ist auch eine Funktion "Firmware Aktualisieren". Dieser Vorgang wurde bei mir abgebrochen. Die Firmware verschiedenen Firmware Versionen sind in einem Seperaten Ordner einzeln abgelegt. Es ist eine .dfw Datei.
Ich hatte ein Funktionsproblem welches Softareseitig war. Gesichert habe ich die Datei. Das Problem ist halt das wohl die Firmware zerschossen ist, deshalb bekomme ich keine Verbindung mit dem Steuergerät hin....
Ja man koennte sich so eine Datei mal ansehen. Nicht alle Bootlader verschluesseln. Die Chancen stehen da 50/50. PICs haben charakteritische Befehlssequenzen beim Start. Die koennte man dann finden und einen ROM-Dump extrahieren. Mit den Parametern die evtl. schon beim (Ur-)Programmieren des Controllers im EEPROM mitgegeben werden, sieht es aber schlecht aus.
Welcher Firma/Person im Düsseldorfer Raum könnte ich da kontaktieren?
@Tikko hm, warum aktualisiert "man" denn sein Gas-Steuergerät selbst? Gabs keine Werkstatt, die das machen konnte? Ich fahr nun schon den 2. LPG-Wagen, und hab noch nie irgendwas dran ändern (lassen) müssen. Wenns bei LPG ruckelt, dann sind die Filter, die Zündkerzen oder die Injektoren die Übeltäter.
:
Bearbeitet durch User
Ich habe noch ein anderes Steuergerät, dieses ist allerdings nur für 4. Zylinder Motoren. Der Chip ist der gleiche, die Software auch. Wäre ein umlöten möglch? Die Bauteile sind nämlich mit einem Spray versiegelt.
Wegstaben V. schrieb: > @Tikko > > hm, warum aktualisiert "man" denn sein Gas-Steuergerät selbst? Gabs > keine Werkstatt, die das machen konnte? > > Ich fahr nun schon den 2. LPG-Wagen, und hab noch nie irgendwas dran > ändern (lassen) müssen. > > Wenns bei LPG ruckelt, dann sind die Filter, die Zündkerzen oder die > Injektoren die Übeltäter. Ist eine beschidene Anlage der Firma Frontgas. Es gibt kaum support, kaum Ersatzteile und viele Probleme. P.S. Fahrzeug wurde mit dieser Anlage gekauft.
Tikko schrieb: > Ist eine beschidene Anlage der Firma Frontgas. Es gibt kaum support, > kaum Ersatzteile und viele Probleme. auf deren Homepage steht: "Als z.B. Landi Renzo Deutschland hat Frontgas Germany Zugriff auf viele Autogasanlangen und Zubehör ..." Also ursprünglich eine LandiRenzo Anlage? Und was fummelt dann Frontgas noch an den Anlagen rum/rein? PS: In meinem Corsa ist auch (sogar "ab Werk") eine LandiRenzo drin. Vileleicht ist das der Grund (weil "ab Werk") das daher alles bisher unverändert läuft.
Wegstaben V. schrieb: > Tikko schrieb: >> Ist eine beschidene Anlage der Firma Frontgas. Es gibt kaum support, >> kaum Ersatzteile und viele Probleme. > > auf deren Homepage steht: > > "Als z.B. Landi Renzo Deutschland hat Frontgas Germany Zugriff auf viele > Autogasanlangen und Zubehör ..." > > Also ursprünglich eine LandiRenzo Anlage? Und was fummelt dann Frontgas > noch an den Anlagen rum/rein? > > PS: In meinem Corsa ist auch (sogar "ab Werk") eine LandiRenzo drin. > Vileleicht ist das der Grund (weil "ab Werk") das daher alles bisher > unverändert läuft. Ne, ist nicht Landi Renzo, Hersteller istauch Italienisch, nennt sich aber MG Motorgas. Das Steuergerät wurde in Gasanlagen von BLUEMEC, FRONTGAS, NXGAS, MG Motorgas verbaut. Hersteller des Steuergerätes war DEC2001 (gibt es nicht mehr)...
diePoetteringdie schrieb: > Ja man koennte sich so eine Datei mal ansehen. > Nicht alle Bootlader verschluesseln. Die Chancen stehen da 50/50. > > PICs haben charakteritische Befehlssequenzen beim Start. > Die koennte man dann finden und einen ROM-Dump extrahieren. > Mit den Parametern die evtl. schon beim (Ur-)Programmieren > des Controllers im EEPROM mitgegeben werden, sieht es aber schlecht aus. Könnte man den PIC umlöten? Habe den gleichen chip nochmal auf einem anderen steuergerät.
>Könnte man den PIC umlöten? Habe den gleichen chip nochmal auf einem >anderen steuergerät. Letzendlich ist das Ding eh für die Tonne, also du kannst durch das umlöten 100% gewinnen und nichts verlieren...
Tikko schrieb: > Ich habe noch ein anderes Steuergerät, dieses ist allerdings nur für 4. > Zylinder Motoren. Der Chip ist der gleiche, die Software auch. Wäre ein > umlöten möglch? Die Bauteile sind nämlich mit einem Spray versiegelt. Firmware ist die selbe? Dann könnts eigentlich hin hauen.
Base64 U. schrieb: > Tikko schrieb: >> Ich habe noch ein anderes Steuergerät, dieses ist allerdings nur für 4. >> Zylinder Motoren. Der Chip ist der gleiche, die Software auch. Wäre ein >> umlöten möglch? Die Bauteile sind nämlich mit einem Spray versiegelt. > > Firmware ist die selbe? Dann könnts eigentlich hin hauen. Die Platine ist halt beschichtet, gegen Feuchtigkeit etc...
Tikko schrieb: > Die Firmware verschiedenen Firmware Versionen sind in einem > Seperaten Ordner einzeln abgelegt. Es ist eine .dfw Datei. lad doch mal so eine Datei hoch, aber viel Hoffnung solltest du dir nicht machen. Tikko schrieb: > Ich habe noch ein anderes Steuergerät, dieses ist allerdings nur für 4. > Zylinder Motoren. Der Chip ist der gleiche, die Software auch. Wäre ein > umlöten möglch? Die Bauteile sind nämlich mit einem Spray versiegelt. wenn du gut Löten kannst, ja. wenn der Chip zu lange zu heiß wird ist der hin. Wenn du in der Firmware einstellen (oder auslesen, dann erkennt der es vllt selber.) kannst wie viele Zylinder angesprochen werden, siehts gut aus. wenn quasi auf dem Startbildschirm 4 Zylinder angezeigt wird kannst du es auch gleich lassen.
K. S. schrieb: > Tikko schrieb: >> Die Firmware verschiedenen Firmware Versionen sind in einem >> Seperaten Ordner einzeln abgelegt. Es ist eine .dfw Datei. > > lad doch mal so eine Datei hoch, aber viel Hoffnung solltest du dir > nicht machen. Hier ist eine....
Tikko schrieb: > Hier ist eine.... binvis.io/als hex finde ich nix, bissl viele FF binwalk findet einige Windows CE image header? strings findet nichts interessantes mehr fällt mir gerade nicht ein
öffne die Datei mal mit WINOLS. Hab gerade kein Windows da. Ich denke das sind nur ein paar Kennfelder, die ins EEPROM des PICS geschrieben werden und weniger der Programmcode selbst. Könntest mal nach dem PIC Datenblatt schauen dort ist die Speicheraufteilung drin dann kann man rausfinden was wohin geschrieben wird.
Thomas O. schrieb: > WINOLS Hi, danke für deine Mühe. Aber für mich sind das leider Böhmische Dörfer......
WINOLS ist ein Programm für Chiptuner, denke das du dir selbst in der Demoversion die Kennfelder ansehen kannst. Aber wie gesagt deine Datei enthält nicht sehr viel wenn da das ganze Programm drin sein soll, würde ich sagen das ist ganz schön simple gehalten.
Also. Ich habe mir jetzt einen Programmer bestellt. Ein ISCP Anschluss ist ja vorhanden. Jetzt habe ich mich etwas eingelesen. Ich muss die Softwaredatei in eine Hex Datei umwandeln und über den Programmer und der Microchip Software auf den Chip schreiben. Mit welchem Programm generiere ich am besten die Hex ? Oder gibt es eine Möglichkeit die Hex direkt aus der Datei herauszukopieren?
Thomas O. schrieb: > WINOLS ist ein Programm für Chiptuner, denke das du dir selbst in > der Demoversion die Kennfelder ansehen kannst. Aber wie gesagt deine > Datei enthält nicht sehr viel wenn da das ganze Programm drin sein soll, > würde ich sagen das ist ganz schön simple gehalten. In der Tat ist das Programm sehr klein (15 MB exe Datei)und hat nur ein paar Funktionen zum kalibrieren und auslesen des Steuergerätes der gasanlage
Tikko schrieb: > Hi, > > leider ist der Hersteller wenig auskunftsfreudig. Ein bekannter sagte > mir das man neu flashen müsste, die frage ist halt wie.... So wie beim vorhergehenden Flashorgang
Geht ja nicht. Der Flashversuch vorher war über die Software und das Interface. Ich kann aber nach dem abgebrochenen Flashversuch nicht mehr das Interface mit dem Steuergerät verbinden.
Tikko schrieb: > Ich kann aber nach dem abgebrochenen Flashversuch nicht mehr > das Interface mit dem Steuergerät verbinden. "Möchten Sie den Flashvorgang abbrechen? Das Steuergerät ist danach nicht mehr verwendbar [J/N]" Ich hab da mal "Nein" gewählt! :-D Beitrag "Re: Ubuntu: Aktualisierung gescheitert"
Hi! Sind auf der Platine des 4-Zylinder Steuergerätes auch die Ein-/Ausgänge für 6-Zylinder bestückt? Wenn ja, Steuergerät anstöpseln und gucken ob es funktioniert. Vg
Leider nicht. Hat nur 4 Ausgänge. Habe angeschlossen, das Fahrzeug startet auch, nur läuft er auf 4 Zylindern
Hallo zusammen, ich bin jetzt etwas weiter gekommen. Ich habe die Software .exe mit PEID ausgelesen. Kann man Anhand des angehängten Bildes erkennen um welche Programmierumgebung es sich handelt? Die Firmware für das Steuergerät ist nämlich in einem Ordner in dieser Software. Mir wurde erklärt das man die Programmiersprache wissen muß um die Firmware auf den PIC schreiben zu können. Angehängt ist nochmal die Firmware & .exe um die es geht.
Tikko schrieb: > Hallo zusammen, > > ich bin jetzt etwas weiter gekommen. Ich habe die Software .exe mit PEID > ausgelesen. Kann man Anhand des angehängten Bildes erkennen um welche > Programmierumgebung es sich handelt? Die Firmware für das Steuergerät > ist nämlich in einem Ordner in dieser Software. Mir wurde erklärt das > man die Programmiersprache wissen muß um die Firmware auf den PIC > schreiben zu können. Angehängt ist nochmal die Firmware & .exe um die es > geht.
Tikko schrieb: > Mir wurde erklärt das > man die Programmiersprache wissen muß um die Firmware auf den PIC > schreiben zu können. Das hört sich unglaubwürdig an! Die Programmiersprache dient zum erstellen eines Binärcodes für den uC. Normalerweise kann man am Binärfile nicht erkennen von was es erstellt wurde. Ok, forensic analytics kann das schon aber das ist jetzt nicht Bestandteil hier. Woher kommt genau die Datei? Und woher kommt das Programm zum Flashen?
Alex W. schrieb: > Tikko schrieb: >> Mir wurde erklärt das >> man die Programmiersprache wissen muß um die Firmware auf den PIC >> schreiben zu können. > > Das hört sich unglaubwürdig an! Die Programmiersprache dient zum > erstellen eines Binärcodes für den uC. Normalerweise kann man am > Binärfile nicht erkennen von was es erstellt wurde. Ok, forensic > analytics kann das schon aber das ist jetzt nicht Bestandteil hier. > > Woher kommt genau die Datei? Und woher kommt das Programm zum Flashen? Die Datei kommt vom Hersteller/Vertreiber des Steuergerätes. Ich habe es hier hochgeladen weil es auf der Seite des Vertreibers kostenlos zum Download angeboten wird. Die Firmware ist in der Software enthalten. Man kann über die Software ein Firmwareupdate starten. Dies ging bei mit schief, seitdem ist das Steuergerät tot. Wie oben beschrieben muss jetzt die Firmware über ICSP neu auf den PIC gebrannt werden. Aber scheint wohl nicht ohne weiteres möglich zu sein.
Die .dfw-Datei enthält doch Standard-HEX, das sollte doch jeder Programmer unterstützen? Da du ja ohnehin nix mehr versauen kannst, würde ich das File stumpf auf den Prozessor laden und probieren.... Ahoi, Martin
Martin S. schrieb: > Die .dfw-Datei enthält doch Standard-HEX, das sollte doch jeder > Programmer unterstützen? > > Da du ja ohnehin nix mehr versauen kannst, würde ich das File stumpf auf > den Prozessor laden und probieren.... > > Ahoi, Martin Also damit ich es richtig verstehe.... Einfach mit dem HEX Editor öffnen und als Standard HEX speichern und danach auf den Prozessor schreiben? Oder eine anderes HEX auswählen (Intel-HEX?)?
Das PicKit2 kann das dfw-File importieren. Inklusive EEPROM, Config und Codeprotect. Ich wuerde vorsichtshalber den alten Zustand vorher auslesen und sicher wegspeichern.
$$$ schrieb: > Das PicKit2 kann das dfw-File importieren. > Inklusive EEPROM, Config und Codeprotect. > > Ich wuerde vorsichtshalber den alten Zustand vorher auslesen > und sicher wegspeichern. Pickit 3 könnte das auch?
> Pickit 3 könnte das auch?
Hab keins weil brauch ich nicht.
Das ist eine ganz normale Intel-Hex Datei, die kannst du mit dem PICkit 3 flashen. Da das Programm eh schon zerschossen ist, kannst du da auch nicht mehr kaputt machen. Nur, wie oben schon gesagt, am besten vorher mal noch den Speicherinhalt auslesen (das ist dann auch die Kontrolle ob das PICkit mit dem µC kommunizieren kann)
Daniel schrieb: > Das ist eine ganz normale Intel-Hex Datei, die kannst du mit dem > PICkit > 3 flashen. Da das Programm eh schon zerschossen ist, kannst du da auch > nicht mehr kaputt machen. Nur, wie oben schon gesagt, am besten vorher > mal noch den Speicherinhalt auslesen (das ist dann auch die Kontrolle ob > das PICkit mit dem µC kommunizieren kann) Hi, danke für die Rückmeldung. Kann ich die Datei direkt so wie sie ist aufspielen, oder muss ich vorher die Datei in eine Intel-Hex umwandeln?
Tikko schrieb: > Hi, > > danke für die Rückmeldung. Kann ich die Datei direkt so wie sie ist > aufspielen, oder muss ich vorher die Datei in eine Intel-Hex umwandeln? Wie schon mehrfach von mehreren Leuten geschrieben, die Datei ist schon Intel hex. Nur die Dateiendung ist halt eine andere. Wenn du das schöner findest, kannst du sie einfach umbenennen. Du musst nix umwandeln.
Thomas O. schrieb: > wenn da das ganze Programm drin sein soll, würde ich sagen das ist ganz > schön simple gehalten. Was soll da auch groß drin sein. Ich weiß auch nicht wieso man daran rumspielen muss. 99% sind es die Zündkerzen, dann ist mal der Verdampfer verdreckt.
F. F. schrieb: > 99% sind es die Zündkerzen, dann ist mal der Verdampfer verdreckt. .... oder die Injektoren sind verschmutzt (war bei mir so, es hat dauernd geruckelt und Fehleeinträge gegeben). Injektoren-Reinigung hat nicht geholfen, aber nach 100.000 km war es ok, da mal neue Injektoren einzusetzen. Danach schnurrte der Motor wieder wie ein Kätzchen.
$$$ schrieb: > Ich wuerde vorsichtshalber den alten Zustand vorher auslesen > und sicher wegspeichern. Das wird wohl sinnlos sein: Tikko schrieb: > Dieser Vorgang wurde bei mir > abgebrochen. wendelsberg
Tikko schrieb: > Daniel schrieb: >> Das ist eine ganz normale Intel-Hex Datei, die kannst du > ...oder muss ich vorher die Datei in eine Intel-Hex umwandeln? machst du das absichtlich?
F. F. schrieb: > Thomas O. schrieb: > wenn da das ganze Programm drin sein soll, würde ich sagen das ist ganz > schön simple gehalten. > > Was soll da auch groß drin sein. > Ich weiß auch nicht wieso man daran rumspielen muss. > 99% sind es die Zündkerzen, dann ist mal der Verdampfer verdreckt. Also wenn die Gasdruckanzeige in der Software ständig auf "0" springt und ein Tausch des Mapsensors nichts bringt, dann ist es definitiv kein Problem mit den Zündkerzen oder Verdampfer.
fast schrieb: > Tikko schrieb: > Daniel schrieb: > Das ist eine ganz normale Intel-Hex Datei, die kannst du > > ...oder muss ich vorher die Datei in eine Intel-Hex umwandeln? > > machst du das absichtlich? Habe mich falsch ausgedrückt. Die Frage war ob ich die Dateiendung ändern muss. Diese Frage wurde beantwortet.
Tikko schrieb: > Also wenn die Gasdruckanzeige in der Software ständig auf "0" springt > und ein Tausch des Mapsensors nichts bringt, dann ist es definitiv kein > Problem mit den Zündkerzen oder Verdampfer Ach nein? Wenn nur stoßweise Gas durch den Verdampfer kommt, kann kein Sensor was richtiges messen. Ich arbeite seit 30 Jahren auch an Treibhausanlagen. Früher sehr viel, heute eher selten.
:
Bearbeitet durch User
F. F. schrieb: > Tikko schrieb: > Also wenn die Gasdruckanzeige in der Software ständig auf "0" springt > und ein Tausch des Mapsensors nichts bringt, dann ist es definitiv kein > Problem mit den Zündkerzen oder Verdampfer > > Ach nein? Wenn nur stoßweise Gas durch den Verdampfer kommt, kann kein > Sensor was richtiges messen. > > Ich arbeite seit 30 Jahren auch an Treibhausanlagen. > Früher sehr viel, heute eher selten. Der Fehler war aber nach einem reset des Steuergerätes kurzzeitig weg. Also softwareseitiges Problem. Deshalb hat man ein FW Update empfohlen. Diese war auch die erste Version .
Hi zusammen, ich habe mir einen PICKIT3 Clone besorgt und konnte mit MPLABX IPE die HEX auf dem Steuergerät auslesen. Herausgekommen ist die Datei im Anhang. Danach habe ich die .DFW Datei als .HEX gespeichert und mit dem PICKIT auf den PIC geschrieben (vorher natürlich Chip gelöscht). Nach dem beschreiben habe ich folgende Meldung erhalten: The following memory area(s) will be programmed: program memory: start address = 0x800, end address = 0x58ff configuration memory EEData memory Programming/Verify complete 2019-06-15 14:15:53 +0200 - Programming complete dann habe ich "Verify" gestartet und folgende Meldung erhalten: The following memory areas(s) will be verified: program memory: start address = 0x0, end address = 0x7fff configuration memory EEData memory User Id Memory program memory Address: 0 Expected Value: ff Received Value: 0 Verify failed Ist da etwas schiefgegangen? Angehäbgt habe ich die .HEX vor und nach dem Beschreiben des PICs.
Da muss es noch was zum anhacken geben damit der ganze Flash gelöscht wird und nicht nur bestimmte Bereiche überschrieben werden.
> bestimmte Bereiche überschrieben werden Das waere mal doof. Weil das Hexfile ja nur Ausschnitte hat. Unter anderem fehlt dort ab $0000. $FF heisst nicht programmiert. Das PicKit2-Standalone-Utility zeigt nach dem Import dort auch: $FF. Damit waer solcher Schlamassel wohl nicht passiert. Ob sich der PIC mit der gesetzen Codeprotection ueberhaupt vernuenftig auslesen laesst, darf auch bezweifelt werden.
Ich habe jetzt die Daten von dem 4. Zylinder Steuergerät ausgelesen und auf das Defekte Ecu gespielt, auch "Verifying" war erfolgreich. Doch das Steuergerät startet nicht. Es scheint wohl ein bootloader Problem zu sein. Jemand noch eine Idee was ich versuchen kann?
Tikko schrieb: > Ich habe jetzt die Daten von dem 4. Zylinder Steuergerät ausgelesen Kannst Du die HEX-Datei davon hochladen? Interessant waere ob dort der Bereich 0x000-0x7FF ebenfalls mit Codeprtection geschuetzt ist.
Dieter schrieb: > Tikko schrieb: >> Ich habe jetzt die Daten von dem 4. Zylinder Steuergerät ausgelesen > > Kannst Du die HEX-Datei davon hochladen? Interessant waere ob dort der > Bereich 0x000-0x7FF ebenfalls mit Codeprtection geschuetzt ist. Hier ist Sie.....
Ich habe mal etwas in dem IPE Programm geschaut. Kann es sein das ich an den Optionen im angehängten Bild etwas verändern muss wenn ich die Firmware auf den PIC schreibe?
Es sieht so aus als ob fuer den Bereich 0x000-0x7FF Code-Protection und Write-Protection gesetzt ist (bei beiden Steuergeraeten). Das "Verify" hat beim ersten mal nicht funktioniert weil beim Lesen des geschuetzten Bereichs immer "0x00" gelesen wird, die PICKIT Software nach dem Loeschen aber "0xFF" erwartet hat. Wenn man ab 0x800 ein Verify macht sollte das "Verify" funktionieren. Die Frage ist was genau im Bootloader-Bereich 0x000-0x7FF steht. Die Software zum Flashen des Steuergeraets verwendet PICBOOT.dll, die ist auch bei den diversen Bootloader-Beispielen von Microchip dabei. Ob der Bootloader aus diesen Beispielen auch im Steuergeraet verwendet ist unklar, ebenso ob ueberhaupt ein Fehler im Bootloader vorliegt (der Bereich ist ja eigentlich vor Ueberschreiben geschuetzt).
Dieter schrieb: > Es sieht so aus als ob fuer den Bereich 0x000-0x7FF > Code-Protection und > Write-Protection gesetzt ist (bei beiden Steuergeraeten). > > Das "Verify" hat beim ersten mal nicht funktioniert weil beim Lesen des > geschuetzten Bereichs immer "0x00" gelesen wird, die PICKIT Software > nach dem Loeschen aber "0xFF" erwartet hat. Wenn man ab 0x800 ein > Verify macht sollte das "Verify" funktionieren. > > Die Frage ist was genau im Bootloader-Bereich 0x000-0x7FF steht. Die > Software zum Flashen des Steuergeraets verwendet PICBOOT.dll, die ist > auch bei den diversen Bootloader-Beispielen von Microchip dabei. Ob der > Bootloader aus diesen Beispielen auch im Steuergeraet verwendet ist > unklar, ebenso ob ueberhaupt ein Fehler im Bootloader vorliegt (der > Bereich ist ja eigentlich vor Ueberschreiben geschuetzt). Also ist besteht aktuell keine möglichkeit die Firmwaredatei die ich als HEX habe komplett auf den Chip zu schreiben?
Tikko schrieb: > Also ist besteht aktuell keine möglichkeit die Firmwaredatei die ich als > HEX habe komplett auf den Chip zu schreiben? Die kann Du komplett schreiben, aber dort fehlt der Bootloader-Bereich (0x000-0x7FF): In den DFW Dateien vom Hersteller ist der Bereich 0x000-0x7FF gar nicht enthalten und in den HEX Dateien, die Du von den Steuergeraeten ausliest, sind alle Bytes in diesem Bereich 0x00 (wegen der Code-Protection). Ich weiss nicht genau wie die PICKIT Software arbeitet, wenn sie aber beim Programmieren des defekten Steuergeraets den Flash vollstaendig geloescht hat, dann war der Bootloader damit weg.
Dieter schrieb: > Tikko schrieb: >> Also ist besteht aktuell keine möglichkeit die Firmwaredatei die ich als >> HEX habe komplett auf den Chip zu schreiben? > > Die kann Du komplett schreiben, aber dort fehlt der Bootloader-Bereich > (0x000-0x7FF): In den DFW Dateien vom Hersteller ist der Bereich > 0x000-0x7FF gar nicht enthalten und in den HEX Dateien, die Du von den > Steuergeraeten ausliest, sind alle Bytes in diesem Bereich 0x00 (wegen > der Code-Protection). > > Ich weiss nicht genau wie die PICKIT Software arbeitet, wenn sie aber > beim Programmieren des defekten Steuergeraets den Flash vollstaendig > geloescht hat, dann war der Bootloader damit weg. Eines wundert mich. Als ich die firmware vom 4.Zylinder ausgelesen und auf das defekte Steuergerät geschrieben habe, hat ja das Verifying funktioniert. und im Screenshot kann man sehen das es der Bereich start address = 0x0, end address = 0x7fff ist. Also wurde der Bereich doch erfolgreich beschrieben, oder?
Tikko schrieb: > Eines wundert mich. Als ich die firmware vom 4.Zylinder ausgelesen und > auf das defekte Steuergerät geschrieben habe, hat ja das Verifying > funktioniert. und im Screenshot kann man sehen das es der Bereich start > address = 0x0, end address = 0x7fff ist. Also wurde der Bereich doch > erfolgreich beschrieben, oder? Du hast beim Auslesen den Bereich 0x000-0x7FF mit lauter 0x00 gelesen (wegen der Code-Protection), beim "Verify" werden auch lauter 0x00 in diesem Bereich gelesen, also passt alles. Beim Programmieren des defekten Steuergeraets hast Du beim ersten mal wohl die umbenannte DFW Datei vom Hersteller programmiert, darin fehlt der Bereich 0x000...0x7FF und PICKIT nimmt dann 0xFF fuer "leer" und damit passt dann das "Verify" natuerlich nicht mehr weil 0x00 wegen der Code-Protection zurueckkommt.
Dieter schrieb: > Beim Programmieren des defekten Steuergeraets hast Du beim ersten mal > wohl die umbenannte DFW Datei vom Hersteller programmiert, darin fehlt > der Bereich 0x000...0x7FF und PICKIT nimmt dann 0xFF fuer "leer" und > damit passt dann das "Verify" natuerlich nicht mehr weil 0x00 wegen der > Code-Protection zurueckkommt. Danke für die Hilfe! Ich würde sagen da ist dann wohl nichts mehr zu machen.....
Tikko schrieb: > Danke für die Hilfe! Ich würde sagen da ist dann wohl nichts mehr zu > machen..... Man könnte versuchen ob der Bootloader aus den Microchip Beispielen ausreicht. Dazu sollte man sich aber mit PIC Assembler Code auskennen um den Beispielcode entsprechend anzupassen. Vielleicht reicht ja schon einfach den Code ab 0x800 anzuspringen, dann hat man zwar noch keinen Bootloader, aber wenn der restliche Code ohne den Bootloader auskommt und das Steuergerät läuft weiß man dass man auf dem richtigen Weg ist. Aber wie schon gesagt, ohne PIC Kenntnisse wird das vermutlich nichts.
Dieter schrieb: > Tikko schrieb: >> Danke für die Hilfe! Ich würde sagen da ist dann wohl nichts mehr zu >> machen..... > > > und das Steuergerät läuft weiß man dass man auf dem richtigen Weg ist. > > Aber wie schon gesagt, ohne PIC Kenntnisse wird das vermutlich nichts. Ich befürchte das würde ich, mit meinen aktuellen Kenntnissen, nicht hinbekommen.
Tikko schrieb: > Ich befürchte das würde ich, mit meinen aktuellen Kenntnissen, nicht > hinbekommen. Immerhin bist du doch gut dabei. Mach doch einfach weiter! Selbst wenn du zwischenzeitlich ein anderes Steuergerät einbauen musst. Du bist doch schon von Null ziemlich weit, und das in kurzer Zeit, gekommen.
Ich werde versuchen einen neuen Bootloader auf den PIC zu schreiben. Es kommen wohl 2 Stück für den PIC18F8520 in Frage. Der AN851 und der serial Bootloader AN1310. Dieser ist von 2010. Da das Steuergerät von 2007 ist denke ich das es der AN851 sein wird. Jetzt die Preisfrage.... Wie bekomme ich den Bootloader hinter den Bereich 0X800 geschrieben? Der Bereich davor ist ja geschützt oder bereits gelöscht und auf der zu schreibenden Firmware nicht vorhanden. Bin für jede Hilfestellung und Anleitung dankbar!
Tikko schrieb: > Wie bekomme ich den Bootloader hinter den > Bereich 0X800 geschrieben? Der Bereich davor ist ja geschützt oder > bereits gelöscht und auf der zu schreibenden Firmware nicht vorhanden. Beim Programmieren kannst Du den Bereich 0x000-0x7FF beschreiben, die Code-Protection und auch die anderen Config-Daten stehen in der HEX Datei (0x300001-0x30000D) und werden am Schluss gesetzt, nachdem programmiert wurde. Was Du im Prinzip machen musst: - Vom Reset (0x000) auf den Anfang des Programms springen (vermutlich ist das Adresse 0x840) - Vom High Priority Interrupt Vector (0x008) und Low Priority Interrupt Vector (0x018) zur Interrupt-Behandlung springen (es gibt vermutlich nur eine ab Adresse 0x800) Ich würde mich erstmal noch gar nicht um den Bootloader kümmern sonder nur die entsprechenden Routinen vom Reset und den Interrupts anspringen, wenn dann das Steuergerät läuft kannst Du den Bootloader anpassen. Aber wie schon mal geschrieben, Du solltest Dich mit PIC Programmierung auskennen. Wenn das nicht auf Anhieb funktioniert muss man experimentieren, eventuell macht der original Bootloader auch mehr als nur die Adressen umbiegen.
Wird nicht funktionieren, in der Firmware sind teile Auskommentiert, welche aber angesprungen werden wo auf vorhandene Firmware aufgebaut wird. Kann sein dass man von mehreren FW Updates die alle herstellen kann, aber nur von diesem ist es nicht möglich. Auch wird der Bootloader angesprungen, ich vermute mal um den Flash auszulesen für irgendwelche Tabellen, aber theoretisch passt der Bootloader vor dieser Sprungadresse rein, könnte also wirklich eine zentrale Programmlogik dahinter verborgen sein. Auch scheint es einen Bereich zu geben, welcher entweder als XOR fungiert, oder als Patch, oder als irgendwelche escaped data. Als Code macht er keinen Sinn, Eventuell gibt es sogar im EEprom eine Checksum der Firmware, welche überprüft wird und sollte diese nicht passen, dann started die FW gar nicht.
Heart of Darkness - exploring the uncharted backwaters of HID iCLASSTM security …?
Yammi schrieb: > Heart of Darkness - exploring the uncharted backwaters of HID iCLASSTM > security Bei dem defekten Gerät ist der Bootloader sehr wahrscheinlich beim Programmieren der Firmware mit PICKIT gelöscht worden, also hilft ein Dump des geschützten Bereichs wohl nicht mehr weiter. Beim funktionierenden Gerät könnte man eventuell den Bootloader über die USART Schnittstelle auslesen, die auch von der Gas-Konfigurationssoftware verwendet wird. Auf den ersten Blick kann der USART-Handler den Speicher (RAM/EEPROM/Flash) lesen und schreiben, das müsste man aber im Detail prüfen ob es tatsächlich so gehen würde.
Ich habe jetzt eine Anleitung vom Bootloader AN851. Was außer dem was dort steht muss ich noch beachten oder machen?
Tikko schrieb: > Ich habe jetzt eine Anleitung vom Bootloader AN851. Was außer dem was > dort steht muss ich noch beachten oder machen? Ich habe weiter oben bereits beschreiben wie Du in etwa vorgehen könntest. Der Bootloader an sich interessiert noch nicht, der ist ja im Prinzip nur dazu da dass Du ein Firmware-Update ohne den PICKIT machen kannst. Wenn das Umbiegen von Reset und den Interrupts nicht reicht um die Software zum Laufen zu bringen dann wird der Beispiel-Bootloader von Microchip auch nicht weiterhelfen. Ich habe mal die HEX Datei, die Du schon programmiert hast, so angepasst dass Reset und die Interrupts so umgebogen werden wie von mir vorgeschlagen. Außerdem ist die Code-Protection abgeschalten, damit sollte das Verify funktionieren. Versuche mal ob Du mit dem PICKIT diese Datei auf das defekte Steuergerät programmieren kannst (inklusive "Verify" OK) und ob sich etwas tut. Wenn nicht wird es vermutlich schwierig weiterzukommen.
Dieter schrieb: > Tikko schrieb: > Ich habe jetzt eine Anleitung vom Bootloader AN851. Was außer dem was > dort steht muss ich noch beachten oder machen? > > Ich habe weiter oben bereits beschreiben wie Du in etwa > Ich danke dir vielmals. Also beschreibe ich jetzt ganz einfach mit mlab ipe wie vorher auch?
Dieter schrieb: > Tikko schrieb: > Versuche mal ob Du mit dem PICKIT diese Datei auf das defekte > Steuergerät programmieren kannst (inklusive "Verify" OK) und ob sich > etwas tut. Wenn nicht wird es vermutlich schwierig weiterzukommen. Hi Dieter also... ich habe den PIC zuerst mit MPLAB IDE verbunden, gelöscht & danach beschrieben. Während des beschreibens gingen auch zum ersten mal die LEDs auf der platine für längere Zeit an. Vorher waren diese immer aus. Leider schlug das Verify fehl. Danach habe ich das ganze mal mit dem PICKIT 3 Programmer versucht...Also gelöscht dann beschrieben. Damit hat das Verify geklappt. Zur Prüfung habe ich jetzt nochmal das Verify vom MPLAB IPE benutzt und auch dort steht wie im Screenshot sichtbar "Verify successful". Was mich jetzt aber wundert, als ich mit dem PICKIT Programmer beschrieben habe, blieben alle LEDs auf der Platine aus???
Tikko schrieb: > Dieter schrieb: >> Tikko schrieb: > > versucht...Also gelöscht dann beschrieben. Damit hat das Verify > geklappt. Zur Prüfung habe ich jetzt nochmal das Verify vom MPLAB IPE > benutzt und auch dort steht wie im Screenshot sichtbar "Verify > successful". Was mich jetzt aber wundert, als ich mit dem PICKIT > Programmer beschrieben habe, blieben alle LEDs auf der Platine aus??? Jetzt habe ich nochmal mit MPLAB IPE geschrieben. LEDs auf der Platine gehen an. Aber Verify schlägt fehl. Wie im Screenshot oben: EEData memory Address: 11 Expected Value: 0 Received Value: 4 Verify failed
> EEData memory > Address: 11 Expected Value: 0 Received Value: 4 > Verify failed Das sollte wohl das EEPROM sein. Da wird das gestartete Programm wohl schon drin rumgeschrieben haben. Vielleicht zaehlt er da die Startversuche. Beim naechsten Verify wuerde dann wohl 5 stehen.
$$$ schrieb: >> EEData memory >> Address: 11 Expected Value: 0 Received Value: 4 >> Verify failed > > Das sollte wohl das EEPROM sein. > Da wird das gestartete Programm wohl schon drin rumgeschrieben haben. > > Vielleicht zaehlt er da die Startversuche. > > Beim naechsten Verify wuerde dann wohl 5 stehen. Pickit 3 programmer gibt jetzt die meldung im screenshot raus...
Nochmal langsam: Das Programm im Controller schreibt selbst in das EEPROM. Wenn man also den Controller nach dem Programmieren startet, ist es moeglich das sich der Inhalt des EEPROM dadurch aendert. Das muss einen erstmal nicht besonders sorgen. Wie ich oben schrieb kann das alles moegliche sein: Etwa ein Zaehler der die Starts mitzaehlt oder die Anzahl der Zylinder fuer den Motor...
$$$ schrieb: > Das Programm im Controller schreibt selbst in das EEPROM. Ja genau, das Programm schreibt relativ früh in den EEPROM. Das wäre also schon mal ein gutes Zeichen, zumindest der Programmstart (umgebogenere Reset) findet dann statt. Ob die Interrupts passen könnte man eventuell daran feststellen ob die Gas-Konfigurationssoftware mit dem Steuergerät Verbindung aufbauen kann und z.B. die Kennlinien auslesen kann.
LEDs auf der Platine sind jetzt an... Dieter schrieb: > $$$ schrieb: > Das Programm im Controller schreibt selbst in das EEPROM. > > Ja genau, das Programm schreibt relativ früh in den EEPROM. Das wäre > also schon mal ein gutes Zeichen, zumindest der Programmstart > (umgebogenere Reset) findet dann statt. > > Ob die Interrupts passen könnte man eventuell daran feststellen ob die > Gas-Konfigurationssoftware mit dem Steuergerät Verbindung aufbauen kann > und z.B. die Kennlinien auslesen kann. Jetzt ist es leider zu dunkel draußen. Ich werde morgen Mal anschließen und berichten ob ich mit dem Interface und der Software auf das Steuergerät zugreifen könnte. Danke nochmal.
Tikko schrieb: > Jetzt ist es leider zu dunkel draußen. Ich werde morgen Mal anschließen > und berichten ob ich mit dem Interface und der Software auf das > Steuergerät zugreifen könnte. Bitte programmiere vorher die angehängte HEX Datei, in der ersten Version ist ein Fehler beim Umbiegen der Interrupts (es müssen einige Daten gesichert werden, die am Ende des Interrupts von dem Code ab 0x824 wiederhergestellt werden). Dass LEDs an sind und sich der EEPROM Inhalt bei jedem Start des Programs ändert passt. Wenn die Kommunikation mit der Gas-Software klappt sollte man das auch an einer flackernden LED erkennen können.
Dieter schrieb: > Tikko schrieb: >> Jetzt ist es leider zu dunkel draußen. Ich werde morgen Mal anschließen >> und berichten ob ich mit dem Interface und der Software auf das >> Steuergerät zugreifen könnte. > Hallo zusammen, ich habe eine gute und eine schlechte Nachricht. Die gute: Das Steuergerät funktioniert wieder. Ich kann auf alles zugreifen. Die schlechte: Ich würde gerne allen die mitgeholfen haben, insbesondere Dir Dieter, ein Bier ausgeben. Das wird aber leider nicht möglich sein :((( Nochmals vielen Dank für Eure Geduld und Ausdauer mit mir! Eine Abschließende Frage hätte ich noch. Wenn ich irgendwann ggf. eine andere Firmware auf diesen PIC schreiben möchte, muss ich dann einfach löschen und beschreiben oder muss ich einen bestimmten Bereich schützen wie im Screenshot sichtbar?
Tikko schrieb: > Eine Abschließende Frage hätte ich noch. Wenn ich irgendwann ggf. eine > andere Firmware auf diesen PIC schreiben möchte, muss ich dann einfach > löschen und beschreiben oder muss ich einen bestimmten Bereich schützen > wie im Screenshot sichtbar? Kommt immer auch auf die Software an. Du bist jetzt so weit, bleibe am PIC dran und befasse dich mit der Software. Vielleicht kannst du bei diesem Steuergerätetyp auch später anderen helfen. In jedem Fall hast du dann ein neues und spannendes Hobby.
Tikko schrieb: > Das Steuergerät funktioniert wieder. Ich kann auf alles zugreifen. Ist ja prima wenn es geklappt hat. Nur um sicher zu sein, Du hast die korrigierte Version "PIC18F8520_nach_flash_Reset_und_Int_angepasst_V2.hex" verwendet? Tikko schrieb: > Eine Abschließende Frage hätte ich noch. Wenn ich irgendwann ggf. eine > andere Firmware auf diesen PIC schreiben möchte, muss ich dann einfach > löschen und beschreiben oder muss ich einen bestimmten Bereich schützen > wie im Screenshot sichtbar? Wenn Du den Bereich 0x000..0x7FF schützt ("Preserve Program Memory...") sollte alles passen. Eventuell wird wieder die Code-Protection für diesen Bereich gesetzt, das stört aber nicht.
F. F. schrieb: > Tikko schrieb: > Eine Abschließende Frage hätte ich noch. Wenn ich irgendwann ggf. eine > andere Firmware auf diesen PIC schreiben möchte, muss ich dann einfach > löschen und beschreiben oder muss ich einen bestimmten Bereich schützen > wie im Screenshot sichtbar? > > Kommt immer auch auf die Software an. > > Du bist jetzt so weit, bleibe am PIC dran und befasse dich mit der > Software. Vielleicht kannst du bei diesem Steuergerätetyp auch später > anderen helfen. > In jedem Fall hast du dann ein neues und spannendes Hobby. Also ich meinte schon dieses Steuergerät. Sorry hatte mich falsch ausgedrückt...
Ne, habe dich schon verstanden. Wäre nur schade, wenn du es dabei bewenden lässt.
> > Ist ja prima wenn es geklappt hat. Nur um sicher zu sein, Du hast die > korrigierte Version > "PIC18F8520_nach_flash_Reset_und_Int_angepasst_V2.hex" verwendet? Ja. Habe die V2 verwendet. Mit der anderen habe ich es gar nicht erst versucht,nachdem du gesagt hattest dass dort ein Fehler drin ist. Ich hätte ja mehrere Firmware Versionen hier hochgeladen, welche hattest du für die HEX verwendet ?
Tikko schrieb: > Ich hätte ja mehrere Firmware Versionen hier hochgeladen, welche hattest > du für die HEX verwendet ? Ich habe als Basis "PIC18F8520_nach_flash.hex" verwendet, die hast Du hier bei Deinem ersten Versuch mit dem PICKIT hochgeladen. Welche Version das ist weiß ich nicht, es klang aber so als ob das die Version wäre, die Du auf dem Gerät haben willst. Wie schon geschrieben, wenn Du den Bereich 0x000..0x7FF schützt ("Preserve Program Memory...") kannst Du auch andere Versionen mit dem PICKIT programmieren, ohne den geht es aber nicht weil es ja keinen "echten" Bootlader mehr gibt.
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.