Gast
#206081
Hi, Gibts Erkennungsmechanismen, wenn ein Mikrokontroller unordnungsgemäßig abgeschaltet (z.B. bei der Uebertragung von Daten) wird? MfG Campus
|
Anzeige
|
Mikrokontroller unordnungsgemäßig abgeschaltet
Gast
#206081
Hi, Gibts Erkennungsmechanismen, wenn ein Mikrokontroller unordnungsgemäßig abgeschaltet (z.B. bei der Uebertragung von Daten) wird? MfG Campus
Gast
#206082
@Campus: Positiv! Suche nach "Brown out detection"! Habe gerade mal nachgeschaut, was das eigentlich auf deutsch heißt. In einem Onlinewörterbuch steht da "Büschelentladung" als technische Übersetzung ?!? Auf Mikrocontrollern wird das oft in Zusammenhabg mit Watchdog und Power On Reset erwähnt.
Gast
#206083
"Brown Out Detection" erkennt, wenn die Versorgungsspannung unter einem Minimalwert liegt. Campus, Du beschreibst nicht ganz genau, welchen Zustand Du erkennen möchtest. Vielleicht reicht ja schon der eingebaute Watchdog. Eine Alternative wäre ein Pufferkundensator für die Versorgungsspannung nach einer Diode bei regelmäßiger Messung der Eingangsspannung - dann kann der Controller vor dem Abschalten noch "bescheid sagen". Da ein uC aus vielerlei Gründen seine Tätigkeit einstellen kann, würde ich für sehr kritische Anwendungen eine Art "Toter Mann - Schaltung" vorschlagen. Alle paar ms klappert der Controller mit einem Ausgang und setzt damit einen externen Timer (z.B. NE555) zurück. Bleibt das Signal aus, löst der Timer nen Alarm aus.
Gast
#206084
Die Idee mit dem Watchdog, sofern vorhanden, ist schon ganz gut. Wenn der kommt und der µC über RESET springt, kann man dort einen Ausgang aktivieren , an dem eine LED hängt, die dann leuchtet. Somit weiß man, daß der Watchdog ausgelöst hat. Den Ausgang setzt man nach einiger Zeit dann wieder zurück, um einen erneuten Reset auswerten zu können. Dieses Schaltsignal kann dann auch von weiteren "Alarmschaltungen" ausgewertet werden.
Gast
#206085
Das ist die Beschreibung über den Watchdog meines uCs: The purpose of the Watchdog is to reset the microcontroller within a reasonable amount of time if it enters an erroneous state. Ich weiß immer noch nicht, wie ich den Watchdog in meinem Fall einsetzen soll. Wenn der Strom fällt aus, gehen alle Informationen in Register und Speicher verloren. Wie bemerkt der uC beim nächten Start, daß die Versorgung weg war? Gruss Campus
Gast
#206086
Hi @Campus, der Watchdog bewahrt dich viel mehr vor Software-Fehlern, die in eine Endlosscheife führen: Bleibt das Resetten des WDTs zu lange aus, so löst dieser selbstständig einen Reset aus und das Programm beginnt von vorne. Schau mal genau im Datenblatt nach, für meine MSP430 ist dort beschrieben, was man wie auswerten kann nach einem Reset. Wie du aber nach einem Reset feststellen könntest, ob eine Datenübertragung im Gange war, kann ich dir so leider auch nicht sagen. Gruss Tom
Gast
#206087
Was willst Du denn genau erkennen? Soll der Sender Deiner Daten erkennen, daß der Empfänger (-Mikrocontroller) kein Strom hat, oder soll der Empfänger merken, daß er wieder eingeschaltet wurde und vorher offensichtlich während eines Datenempfangs ausgeschaltet wurde? Du musst schon genau sagen, bzw. die im Klaren darüber sein, was Du exakt feststellen willst. Dann kann man Dir auch weiter helfen.
Gast
#206088
Mein uC soll Daten von einem FRAM ablesen und im internen Flash speichern. Da das System jederzeit abgeschaltet werden kann, entsteht dieses Problem. Wenn ein Abschalten bei der Datenübertragung geschen würde, müßte das System an diesen Unfall erinnern! Gruss Campus
Gast
#206089
Na, dann setze doch im internen Flash ein Flag vor dem Auslesen des FRAM und lösche es wieder, wenn der Vorgang beendet ist. Wenn beim nächsten Einschalten das Flag gesetzt ist, weisst du, dass der Vorgang beim letzten mal nicht korrekt beendet wurde.
Gast
#206090
Eben. Das kannst Du auch feiner machen, also pro Block oder so im EEPROM speichern, wieviel Du schon ausgelesen hast. Eben ein "Mini-Journaling-Dateisystem" implementieren. Allerdings ist mir noch nicht ganz klar, warum der Mikrocontroller nicht einfach von vorne beginnt, das FRAM auszulesen, wenn er eingeschaltet wird... Irgendwie ziemlich wirr, Dein Problem...
Gast
#662019
Auch wenn die Klatstellung sehr, sehr spät kommt: Was immer eine Büschelentladung sein mag.... mit "Brown-Out" hat es ganz sicher nichts zu tun. Ein Brown-Out bezieht sich auf einen Spannungseinbruch oder eine Unterspannung. Im Vergleich zum Black-Out geht die Spannung aber nicht ganz weg. Ich würde lieber alles im FRAM machen. Vielleicht reicht schon ein Flag aus oder du speicherst immer en einer definierten Stelle die Adresse, aus der gelesen wurde. EEPROm würde ich nicht unbedingt nehmen um so viele Daten zu speichern (1 Lesezyklus = 1 EEPROM Schreibzyklus), da dieser nur begrenzt wiederbeschreibbar ist. In so einem Fall sind eingige Tausend Speichervorgäng schnell erreicht. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|