Forum: Mikrocontroller und Digitale Elektronik Ist das Reseten per Bootloader möglich ?


von Roberto (Gast)


Lesenswert?

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

von uwe (Gast)


Lesenswert?

Man nutzt dafür normalerweise den Watchdog indem man den Watchdog 
started und auf reset konfiguriert und den Counter nicht zurücksetzt.

von Joerg W. (joergwolfram)


Lesenswert?

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

von Hanswurst (Gast)


Lesenswert?

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.

von Roberto (Gast)


Lesenswert?

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

von Fritz G. (fritzg)


Lesenswert?

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.

von Amateur (Gast)


Lesenswert?

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.

von Georg (Gast)


Lesenswert?

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

von Max D. (max_d)


Lesenswert?

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 ?

von Roberto (Gast)


Lesenswert?

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

von Hanswurst (Gast)


Lesenswert?

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.

von Georg G. (df2au)


Lesenswert?

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.

von Roberto (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.