Forum: Mikrocontroller und Digitale Elektronik MSP430F2410: Neustart bei Daten auf UCA1RXD


von Mika (Gast)


Lesenswert?

Hallo!

Ich stehe gerade vor einem merkwürdigem Problem.
Egal ob ich den UCSI_A1 (UART-Mode) initialisiere, oder nicht, startet 
die MCU bei jedem Byte auf diesem Port neu.
Die Versorgungsspannung ist stabil. Es besteht kein Kurzschluss zu 
benachbarten Leitungen.
Watchdog ist aus (WDTCTL = WDTPW + WDTHOLD).

Weiß jemand woran das liegen könnte?
Bin für jeden Tipp dankbar!

Gruß
Mika

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Interrupt aktiviert, kein Interrupthandler vorhanden?

von Mika (Gast)


Lesenswert?

Ähm!?
Ich habe keine Interrupts aktiviert, dementsprechend auch keine 
Interrupthandler implementiert.

Welche brauche ich denn!?

BTW:
Ist es normal, dass wenn der MSP Reseted auch die RST/NMI Pin auf Low 
geht!? Dieser Pin ist via Pull-Up an VCC angeschlossen und wenn die CPU 
reseted geht der Pin auf low für ca. 1,3ms auf Low.

von Mika (Gast)


Lesenswert?

Habe jetzt sogar den General Interrupt (_DINT) deaktiviert.
Der Neustart erfolgt trotzdem!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nun, dann könnte der Watchdog der schuldige sein - das kann einem 
passieren, wenn man nicht die zum jeweiligen MSP430-Derivat gehörende 
Headerdatei verwendet; die I/O-Adresse des Watchdogs ist nicht bei allen 
MSP430 gleich.

von Mika (Gast)


Lesenswert?

Hallo!

Danke für deine Antwort.
Momentan verwendet wird die "msp430x24x.h", so wie es auch in den 
Code-Beispielen von Ti der Fall ist. Und den Watchdog habe ich doch 
deaktiviert (WDTCTL = WDTPW + WDTHOLD). Oder ist das nicht ausreichend?

Gruß
Mika

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nun, das scheint die richtige Datei zu sein. Dann sollte auch Dein 
Deaktivieren des WD funktionieren.

Du könntest natürlich zur Sicherheit mal nachsehen, wie die Adresse 
WDTCTL in der Headerdatei definiert ist, und das mit der Angabe im 
Datenblatt/User Manual abgleichen.

Mehr ist ohne ein Blick auf Deinen Code nicht drin.

von Christian R. (supachris)


Lesenswert?

Du kannst ja auch nach so einem Reboot mal in das IFG1 Register gucken, 
ob wirklich das WDTIFG gesetzt ist. Das bleibt nach dem WDT-Reset aktiv, 
bis man es selbst zurück setzt. Damit kann man erkennen, ob der MSP 
normal gestartet oder durch den WDT zurückgesetzt wurde.
Mal noch was anderes: Hast du eventuell große Arrays im RAM angelegt? 
Bei großen Arrays dauert das Initialisieren durch den CStartup Code 
nämlich länger als das WDT Intervall und der MSP startet immer wieder 
durch. Daher muss bei großen RAM-Arrays das Anhalten des WDT vor den 
StartUp Code gelegt werden.

von Jörg S. (joerg-s)


Lesenswert?

Mika schrieb:
> BTW:
> Ist es normal, dass wenn der MSP Reseted auch die RST/NMI Pin auf Low
> geht!? Dieser Pin ist via Pull-Up an VCC angeschlossen und wenn die CPU
> reseted geht der Pin auf low für ca. 1,3ms auf Low.
Hört sich nicht normal an.

von Christian R. (supachris)


Lesenswert?

Jörg S. schrieb:
> Mika schrieb:
>> BTW:
>> Ist es normal, dass wenn der MSP Reseted auch die RST/NMI Pin auf Low
>> geht!? Dieser Pin ist via Pull-Up an VCC angeschlossen und wenn die CPU
>> reseted geht der Pin auf low für ca. 1,3ms auf Low.
> Hört sich nicht normal an.

Hört sich auch nicht normal an, dass da nur ein Widerstand dran ist. Da 
gehört ja eigentlich noch ein Kondensator nach Masse dran.

von Mika (Gast)


Lesenswert?

Hallo!

Vielen Dank für eure Tipps!
Hab den Fehler gefunden. Und es lag nicht am MSP.
Parallel zu meinem Pull Up am Reset lag noch eine Steuerleitung von eine 
Adapterplatine, was ich komplett übersehen habe. Und die Adapterplatine 
war falsch konfiguriert und hat den MSP resetet. Komisch ist nur, dass 
ich der erste bin, der das festgestellt hat. Aber sei's drum. Problem 
gefunden und beseitigt. Auch wenn es mir jetzt schon peinlich ist diese 
Fehlerursache zu berichten. Hoffe ich hab draus gelernt.

Aus euren Antworten nehme ich auch noch zwei Dinge mit:
* den Kondensator am Reset
und
* die langen Arrays (Watchdog)

Danke euch noch mal! Das Forum hier kann man echt weiterempfehlen! ;)

Viele Grüße
Mika

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.