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
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