Forum: Mikrocontroller und Digitale Elektronik MSP430 UART Echounterdrückung


von Karl-heinz S. (cletus)


Lesenswert?

Hallo,

ich habe den MSP430F169 genutzt um Daten über die UART zu verschicken 
und zu empfangen.

Dabei waren TX und RW logisch kurzgeschlossen, alles, was ich gesendet 
habe, hatte ich also empfangen.

Bei dem 169 habe ich einfach über das ME-Register während des 
Sendevorgangs die Empfangseinheit ausgeschaltet, das hat auch gut 
geklappt.


Weil ich "mehr Power" (tm) benötigt habe, bin ich nun auf den 248 
umgestiegen. Der hat aber kein ME-Register und ich muss die 
Empfangseinheit anders abschalten. Die Deaktivierung der Interrupts 
brachte nichts, da kommen dann trotzdem Zeichen durch (auch wenn ich vor 
dem Reaktivieren das passende IFG-Bit lösche).

Was kann ich also tun, damit ich das Zeugs, welches ich verschicke, 
nicht wieder empfange?

von Stefan (Gast)


Lesenswert?

Ich hab's weder ausprobiert, noch den User-Guide zu dem Thema ganz genau 
durchforscht... aber ich vermute das Flag UCDORM im UCAxCTL1-Register 
könnte genau das sein, was Du brauchst ?!

von Karl-heinz S. (cletus)


Lesenswert?

Dazu müsste ich den UCMODE von UART auf
01 Idle-Line Multiprocessor Mode.
10 Address-Bit Multiprocessor Mode oder
11 UART Mode with automatic baud rate detection.
umstellen. Würde dann wahrscheinlich meinen Sendevorgang leicht stören.

Ich habe es mal ohne die Umstellung probiert: Keine Verbesserung.

von Peter Diener (Gast)


Lesenswert?

Hallo,

mir ist nicht klar, warum du alles, was du sendest, zurückbekommst. Hast 
du vielleicht auf PC-Seite das Echo eingeschaltet? Meine MSP430 machen 
das nicht, und ich wüsste auch nicht, wie man ihnen ein solches 
Verhalten beibringen könnte.

Gruß,

Peter

von Karl-heinz S. (cletus)


Lesenswert?

Weil ich nur eine Leitung für RX und TX habe.

Also kommt alles das, was ich sende, auch wieder bei mir an.

von Peter Diener (Gast)


Lesenswert?

Hallo,

ich verstehe jetzt das Problem, das mit "logisch kurzgeschlossen" habe 
ich als Software interpretiert, es ist unüblich, UARTs als 1-Draht zu 
betreiben.

Aber nun ein Lösungsvorschlag:

Damit die Schnittstelle funktioniert musst du mit PxSEL die Portfunktion 
auf UART umleiten. Wenn du das nicht machst, sollte auch nichts 
empfangen werden. Das schaltest du statt dem ME-Register, das du vorher 
verwendet hast.

Ich hoffe das hilft,

Peter

von Karl-heinz S. (cletus)


Lesenswert?

Peter Diener wrote:
> Hallo,
>
> ich verstehe jetzt das Problem, das mit "logisch kurzgeschlossen" habe
> ich als Software interpretiert, es ist unüblich, UARTs als 1-Draht zu
> betreiben.
>

Naja, deswegen finde ich wohl kein "Example Code" ;-)
Aber das macht die Aufgabe umso interessanter...

> Aber nun ein Lösungsvorschlag:
>
> Damit die Schnittstelle funktioniert musst du mit PxSEL die Portfunktion
> auf UART umleiten. Wenn du das nicht machst, sollte auch nichts
> empfangen werden. Das schaltest du statt dem ME-Register, das du vorher
> verwendet hast.
>

Gute Idee, eigentlich. Allerdings verliere ich den JTAG-Kontakt in dem 
Moment, in dem ich den PSEL umschalte. Das scheint der bei aktivierter 
UART gar nicht zu mögen.

von Karl-heinz S. (cletus)


Lesenswert?

Karl-heinz Strunk wrote:

> Gute Idee, eigentlich. Allerdings verliere ich den JTAG-Kontakt in dem
> Moment, in dem ich den PSEL umschalte. Das scheint der bei aktivierter
> UART gar nicht zu mögen.

Arg, falscher logischer Operator...;-)

Scheint doch zu gehen.

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.