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?
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+"
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?
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.
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.
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
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.