Forum: Mikrocontroller und Digitale Elektronik MSP430: Kriege UART nicht zu laufen


von Eduard I. (eiten)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich arbeite mich zur Zeit in die MSP430 ein. Ich habe ein 
MSP-EXP430FR5994 hier liegen und versuche, per UART etwas zu senden, 
allerdings klappt das nicht. Der TX-Pin macht keinen Wank, und der LED 
nach zu Urteilen bleibt das Programm auf Zeile 54 hängen. Kann mir mal 
jemand auf die Sprünge helfen? main.cpp für gcc ist im Anhang.

Danke und Gruss, Edi

: Bearbeitet durch User
von Max G. (l0wside) Benutzerseite


Lesenswert?

Aus den MSP430 bin ich zwar schon ein bisschen länger draußen, aber dass 
du den SEL-Registern beiden TXD und RXD zuweist, sieht seltsam aus.

von Eduard I. (eiten)


Lesenswert?

Danke Dir. Naja, aktuell brauche ich den RXD noch nicht, aber zukünftig 
sollen beide Pins die 3. Funktion übernehmen.

von Abiturient a.D. (Gast)


Lesenswert?

> macht keinen Wank

Ist ja auch kein Wanker.
Die Bildung in D zerfällt exponentiell.

von wv (Gast)


Lesenswert?

Hallo Edi,
in Zeile 54 prüfst Du zwei Flags gegeneinander, diese Bedingung ist 
immer FALSE. Du muß die Flags gegen die entsprechenden Register prüfen.
Gruß wv

von Eduard I. (eiten)


Lesenswert?


von Eduard I. (eiten)


Lesenswert?

wv schrieb:
> Hallo Edi,
> in Zeile 54 prüfst Du zwei Flags gegeneinander, diese Bedingung ist
> immer FALSE. Du muß die Flags gegen die entsprechenden Register prüfen.
> Gruß wv

Hm, aus der msp430fr5994.h:
1
sfr_w(UCA0IFG);                               /* eUSCI_Ax Interrupt Flag Register */

Ich denke schon, dass das ein Register ist.

von DerEinzigeBernd (Gast)


Lesenswert?

wv schrieb:
> in Zeile 54 prüfst Du zwei Flags gegeneinander

Nö, das ist korrekt. UCA0IFG ist ein Register, und UCTXCPTIFG ist ein 
Bit in diesem Register. Der Code wartet, bis das Bit gesetzt ist.

Wieso eigentlich "gegeneinander"?

Eduard I. schrieb:
> Sagt man dass nur in der Schweiz so?

Auch in der Schweiz: "das" mit nur einem 's'. Wank in diesem Gebrauch 
ist im (nichtschweizerischen) Hochdeutschen sehr ungebräuchlich.

von Abiturient a.D. (Gast)


Lesenswert?

> Wank in diesem Gebrauch
> ist im ... Hochdeutschen sehr ungebräuchlich.

Indeed!

von Markus (eichhorn)


Lesenswert?

Hallo,

vorne weg: ich habe bis jetzt eigentlich nur etwas mit der MSP430F2xx 
Familie gemacht.

Probier mal auf das Flag UCTXIFG zu prüfen.
Denn UCTXCPTIFG ist nach dem Reset mit 0 initialisiert. Da rennst du 
schön in eine Endlosschleife.
UCTXIFG hingegen mit 1.

Was mir aber irgendwie etwas unlogisch erscheint, denn nach Reset ist ja 
der UCAxTXBUF ja leer und eigentlich müssten beide Flags ja 
dementsprechend gesetzt sein.

von wv (Gast)


Lesenswert?

hallo Edi
laut Tab. 6-23 im Datenblatt soll für UART nur P2SEL1 gesetzt werden.
--wv

von DerEinzigeBernd (Gast)


Lesenswert?

wv schrieb:
> laut Tab. 6-23 im Datenblatt

Welches Datenblatt soll das sein? In 
https://www.ti.com/lit/ds/symlink/msp430fr5994.pdf gibt es keine Tabelle 
6-23, auch in https://www.ti.com/lit/ug/slau367p/slau367p.pdf gibt es 
keine Tabelle 6-23.

von Eduard I. (eiten)


Lesenswert?

wv schrieb:
> hallo Edi
> laut Tab. 6-23 im Datenblatt soll für UART nur P2SEL1 gesetzt werden.
> --wv
Perfekt, DANKE! In meinem Datenblatt gibt es diese Tabelle nicht... Wie 
heist diese? Ist aber eigentlich logisch, das ist die 3. Funktion bei 
der Pinbeschreibung, also die *2.* Alternativfunktion. Ich musste Zeile 
57 noch zu while (!(UCA0IFG & UCTXIFG)); anpassen, wie Markus schon 
schrieb. Nun habe ich wohl noch ein Problem mit den Bitrate-Registern, 
da 0xE0 anstatt 'x' ankommt, aber es kommt was an! Herzlichen Dank!

von wv (Gast)


Lesenswert?

hallo edi,
ich hatte ein älteres Datenblatt auf meinem Rechner, in der neuesten 
Version des Datenblatts ist es die Tabelle 9-23
-wv

von Eduard I. (eiten)


Lesenswert?

DerEinzigeBernd schrieb:
> wv schrieb:
>> laut Tab. 6-23 im Datenblatt
>
> Welches Datenblatt soll das sein? In
> https://www.ti.com/lit/ds/symlink/msp430fr5994.pdf gibt es keine Tabelle
> 6-23, auch in https://www.ti.com/lit/ug/slau367p/slau367p.pdf gibt es
> keine Tabelle 6-23.

Habs rausgefunden, ist Tabelle 9-23! DANKE!
Und: Mit neu rechnen und UCBR1=0; funktioniert nun alles!

von Eduard I. (eiten)


Lesenswert?

wv schrieb:
> hallo edi,
> ich hatte ein älteres Datenblatt auf meinem Rechner, in der neuesten
> Version des Datenblatts ist es die Tabelle 9-23
> -wv

Supi, danke, da haben wir uns gerade überschnitten. Funzt nun alles, 
Danke für die schnelle Hilfe!

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.