www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Oscillator Fault bei MSP430F2012


Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den 2012 im Steckbrett am eZ430-F2013-Dongle. Es ist lediglich 
die Betriebsspannung und die Pins 10 (RST) und 11 (TEST) an den Dongle 
angeschlossen.

Seltsamerweise ist schon vor Ausführung des ersten ASM-Befehls das 
OFIFG-Flag (Oscillator fault) im IFG1-Register gesetzt.

Das Flag läßt sich nicht zurücksetzen, weder im Debugger, noch per
bic.b #OFIE, IFG1

Sobald ich den OFIE-Interrupt (Oscillator Fault enable) im IE1-Register 
freigebe lande ich in der NMI-Interrupt-Service-Routine.

Was ist da los?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das gesetzte OFIFG resultiert aus einem gesetzten LFXT1OF, weil der 
LFXT1 standardmäßig nach Reset aktiv ist. Ohne 32kHz am LFXT1 kommt 
LFXT1OF-Fehler.

Siehe User-Guide "Basic-Clock_module+"

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur leider bekomme ich den NMI auch, wenn ich einen Uhrenquarz an die 
Pins 12 und 13 hänge. Die Einstellungen für die Lastkondensatoren habe 
ich alle durchprobiert, ohne daß sich was geändert hat.

Ist das so kritisch, daß es im Steckbrett nicht funktioniert?

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
D.h. das Bit kommt ständig wieder?
Normalerweise musst du ja erst warten bis der Quarz richtig 
angeschwungen ist bevor das Bit nicht mehr vom MSP gesetzt wird.

Siehe User Guide:
After a PUC, the basic clock module+ uses DCOCLK for MCLK. If required,
MCLK may be sourced from LFXT1 or XT2.
The sequence to switch the MCLK source from the DCO clock to the crystal
clock (LFXT1CLK or XT2CLK) is:
1) Switch on the crystal oscillator and select appropriate mode
2) Clear the OFIFG flag
3) Wait at least 50 μs
4) Test OFIFG, and repeat steps 1-4 until OFIFG remains cleared.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs gelöst - wenn ich ihm genug Zeit gebe, dann kann ich das 
IR-Flag zurücksetzen und bekomme dann den NMI nicht mehr.

Danke für den Anschub.

Autor: OFIFG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe auch eine Frage bzgl des Oscillator-fault-Flags und den damit 
zusammenhängenden Interrupts, konkret ist mir nicht ganz klar, was ich 
eigentlich aus dieser Bedingung ableiten soll...

Wenn ich merke, dass der Oscillator instabil wird, zu langsam, zu 
schnell, oder was auch immer das Oscillator-Fault-Flag auslöst, was 
genau soll ich daraus denn nun schlussfolgern, bzw. welche Reaktion wäre 
angemessen?

In Beispiel Interrupt-Service-Routinen wird oftmals schliht das Flag 
zurückgesetzt...

Bestenfalls ist wohl die Zeitbasis zerstört.
Schlechtestenfalls hat der Controller ab Setzen des Flags noch ein oder 
zwei Takte bis er zum Stillstand übergeht...

In jedem Fall aber ist wohl bei einem Oscillator-Fehler davon 
auszugehen, dass dieser mit steter Regelmäßigkeit erneut auftreten 
wird..., sofern der Oscillator überhaupt nochmal anschwingt.

mfg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.