Hallo Ich habe da ein Gerät mit einem 56F8013 Der Mikrocontroller hat sich aufgehängt und ich würde den gerne per Seriellen Bus reseten.. Leider ist die Elektronik gekapselt und ich komme nicht zu der Resetleitung dazu.. (ist mit eigener Stromversorgung) Darum müsste ich einen Reset über den Bus machen. Ginge das irgendwie mit der Bootloaderfunktion ? Per Bus komme ich noch auf die Register... aber was muss ich Senden, damit er resetet ?? Geht der Reset per Bus (Bootloader) überhaupt, oder verlangt der Bootloader im MC, immer ein Programm zum nachschieben.. ? Welche Befehle würde man bei einem anderen MC verwenden ? (AVR,Pic) Würde mich freuen, wenn Ihr mir weiterhelfen könnt Danke l.G. Roberto
Man nutzt dafür normalerweise den Watchdog indem man den Watchdog started und auf reset konfiguriert und den Counter nicht zurücksetzt.
Du kannst auch das SIM Control Register SIM_CTRL (Adresse 0x00F140) benutzen, indem Du 0x0010 reinschreibst (Bit 4 / SW_RST setzen). Das löst einen Reset aus. Jörg
Ich kenne mich mit dem Freescale 56F8013 nicht aus, falls er es denn ist, aber im Datenblatt lese ich: 6.3.1.10 Software Reset (SWRST)—Bit 4 Writing 1 to this field will cause the part to reset. Wenn Du also die Register mit dem Bootloader setzen kannst, sollte das so gehen.
Hallo Danke für die Antworten :-) Habe es gestern probiert, aber scheinbar kann ich doch nicht auf Register zugreifen.:-( Kann nur auf eine Speicheradresse zugreifen, aber das ist leider nicht das Register. Andere Frage: Ist der Aufruf des Bootloaders immer gleich, oder je nach Programmierung des Bootloaders, verschieden ?! Schaufelt ein Bootloader zuerst immer die Daten in das Flash und macht dann einen Reset ?! Oder macht er nach einer gewissen Wartezeit auch einen Reset ?! (Timeout) (oder je nach Programmierung des Bootloaders ?) Die Frage stelle ich mir deshalb, weil falls ich doch die Sequenz für den Bootloader rausfinde, ob er dann auch irgendwann resetet oder ewig auf Daten wartet ? l.G. Roberto
Ich kenne deinen Bootloader nicht, aber allgemein ist es so: Der Bootloader läuft doch gar nicht. Der wird nur bei einem Reset gestartet, wenn es nichts zum Laden gibt, wird das eigentliche Programm gestartet. Dann hat der Bootloader keine Kontrolle mehr. Du hast ja kein Multitaskingsystem, wo zwei verschiedene Programme zugleich laufen können.
Ich kann mir nicht vorstellen, dass das geht. Hat ein µP sich einmal aufgehängt, so hat er sogar für die hübsche Nachbarin kein Auge mehr. Geschweige denn für eine USB- bzw. RS232-Schnittstelle. Einzige Ausnahme: Es wird eine Unterbrechung ausgelöst und, was ganz wichtig ist, es sollte in irgendeiner Form bereits vorgesehen/vorbereitet sein. Wenn es auch nur das Scheiben, in ein beliebiges Register, ist.
Roberto schrieb: > Der Mikrocontroller hat sich aufgehängt und ich würde den gerne per > Seriellen Bus reseten.. Was ein aufgehängter Controller tut ist völlig unbekannt, es wäre ein Wunder wenn er auf etwas auf dem Bus noch reagieren würde. Und ein Bootloader startet NACH einem Reset. Ein Reset von aussen müsste konstruktiv vorgesehen werden, und zwar in Hardware, nicht in Software. So ist Strom abklemmen die einzige Möglichkeit. Georg
Je nach Design kann man auch auf anderem Wege darauf einwirken. z.b. gehen akkus bei tiefen temperaturen in die Knie, evtl. ist einfrieren eine Option (kann aber natürlich auch schaden anrichten durch kondensation und so). Was ist dass denn für ein geheimes Gerät, dass so krass gegen äussere Einwirkung geschützt ist ?
mmmhhh.. Eigentlich ist das Gerät ein Akku und der MC ist ein Teil des BMS. Mit der Bezeichnung aufgehängt, liege ich wohl nicht ganz richtig ?! Ich weiß nur sicher, dass der Akku nicht mehr so regiert wie er soll... Da ich auf den Speicher(Daten) noch zugreifen kann, scheint der MC wohl wirklich nicht aufgehängt zu sein, aber er ist in einem Modus, wo das BMS den Status "Störung" ausgibt. Was ich weiß, wenn ich den MC reseten lasse, indem ich die Zellen entlade, geht das BMS wieder.... nur ist es umständlich die Zellen zu entladen und auch nicht so gut für die Zellen, weil ich sehr tief entladen muss, damit der MC durch die Zellen keine Spannung mehr bekommt. Darum hatte ich die Idee, den MC vielleicht über den Bus zu reseten. Über den Bus kann der Hersteller ein neues Programm aufspielen (Bootloader) Ich leider nicht... Vermutlich wird im Programm eine Funktion sein, wo er dann über den Bus ein updatet macht... ( mit vielleicht Reset ?!) Ich dachte, dass vielleicht der MC eine Standardfunktion für das aufspielen eines Updatet hat.. (soll ja schon einen Bootloader drinnen haben). Den muss man aber wohl mit einem Hardware-Reset aktivieren... Bei diesem Akku wird es wohl nur über einen speziellen Befehl über den Bus funktionieren..?! Danke für die Antworten :-) l.G.Roberto
Bei diesem Prozessor-Typ sind die Peripherieregister auch auf den Speicher abgebildet. Siehe Datenblatt, Tabelle 4-8 und für das SIM-Modul, Tabelle 4-22. Joerg hat oben auch schon die genaue Adresse angegeben. Falls Du also auf den Datenspeicher zugreifen kannst, dann kannst Du auch dieses fragliche Bit beeinflussen. Du schreibst aber, in Antwort auf Joergs Beitrag (und meinen) dass Du auf das Register anscheinend nicht zugreifen kannst - hingegen aber auf den Speicher. Möglicherweise trifft das zu. Das wirft aber die Frage auf, auf welche Weise Du es denn versucht hast. Bitte beschreibe das mal. Ein Screenshot wäre unter Umständen auch ganz nützlich.
Roberto schrieb: > Den muss man aber wohl mit einem Hardware-Reset aktivieren... Dachte ich auch mal. Danach hat das Ding überhaupt nicht mehr reagiert. Die Hersteller nageln ihre Akkus recht gut zu, damit ja niemand auf die Idee kommt, selbst die Zellen zu tauschen. Also... viel Glück. Ich habe damals das komplette BMS rausgeworfen und etwas handelsübliches eingebaut, zusammen mit einem ATtiny13 für die Kommunikation mit dem Display.
Hallo Ich habe ein paar Sachen probiert.... brachte aber nix.. Habe jetzt einen Hardware-Reset gemacht und es geht wieder... Ich behalte Eure Infos im Hinterkopf und vielleicht ergibt sich später mal eine Erleuchtung... Danke für Eure Antworten.. l.G. Roberto
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.