Forum: Compiler & IDEs MSP430 UART HW Probleme


von Michael P. Jung (Gast)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

das Wetter ist heiss und laed gerade dazu ein Zuhause zu bleiben und
ein bisschen mit Elektronik und µC zu basteln. - Natuerlich nur in
Anwesenheit eines Ventilators... ;-)

Derzeit kaempfe ich mit dem UART interface meines MSP430F1232. Ich habe
einen xx232 (MAX232 Nachbau) zwischen meinen PC RS232 und den MSP430
gehaengt um die Spannungspegel anzupassen. Der MSP laeuft bei 3.6V und
den Datenblaettern des MAX232 kann ich entnehmen, dass dies Spannung
auch fuer ihn passt. Nun habe ich mit Hilfe der Beispielprogramme von
TI 2400kbaud und 300kbaud (letzteres ein Selbstberechnetes Beispiel)
ausprobiert und bekomme bis auf den selbst ausgeloesten Interrupt keine
wirklich umwerfenden Resultate. Ich habe bei meinem Vater - ein alter
Analog-Elektroniker - nachgefragt und von ihm erfahren, dass dem µC
vermutlich Spannungsschwankungen zu schaffen machen. Kommt mir
pesoenlich nicht einleuchtend vor, denn ich benutze fuer die
Spannunsversorgung ein billiges, aber doch recht gutes, stabilisiertes
Labornetzteil. (Manson 0-30V ,.5A DC Power Supply)

Ich benutze Minicom uw 2400 bzw 300 baud mit meiner RS232 Schnittstelle
zu erreichen und bei dem Echo programm auf dem MSP bekomme ich entweder
"." oder Sonderzeichen mit Apostroph bzw. Doppelpunkte ueber den
Buchstaben zurueck. Teilweise auch zwei Buchstaben auf einmal. Also ich
vermute, dass irgendetwas mit dem Spannungspegel oder der Frequenz
nicht stimmt, aber ich hab das noch nicht mit einem Osci nachgemessen.

Bin ich auf eine LM317 Schaltung angewiesen - Hat sich die Welt gegen
mich verschworen - oder hab ich einfach etwas uebersehen?

Anhang:
test1.c - Auf MSPGCC konvertiertes TI beispiel Programm
"fet120_uart01_02400.c" mit 300 baud modifikation.

von Joerg Wunsch (Gast)


Lesenswert?

Bist Du Dir sicher, daß der Takt des Prozessors OK ist?  Ich kenne
den MSP430 zu wenig, aber nicht daß Du statt Deines Quarzes mit dem
RC-Generator arbeitest oder sowas.

von Weinga-Unity (Gast)


Lesenswert?

Einen 32kHz Quarz verwendest du für XTAL1?
Kontrolle, ob der MAX funktioniert: Verbinde die RXD und TXD Leitung
auf µController-Seite (den µC trennst du ab). wenn der max mit 3,6V
arbeitet, müsste das was gesendet wird beim PC auch wieder empfangen
werden. Ansonsten verwende einen CD3232 oder ähnliches (3232 ist dabei
wichtig).

mfg W.K.
http://www.Weinga-Unity.de.vu

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Die MSP430 laufen standardmäßig mit dem internen RC-Oszillator, wenn du
den Quarz verwenden willst musst du das also umstellen (siehe
Datenblatt). AFAIK kann man CPU und USART auch getrennt voneinander mit
unterschiedlichen Taktquellen betreiben.

von Michael P. Jung (Gast)


Lesenswert?

@Joerg: Bei dem Prozessortakt bin ich mir noch herrlich unsicher. Mit
32kHz ist der Prozessor mit Sicherheit nicht angetaktet. (Siehe
Andreas' Post)

@Weinga-Unity: Bei meinem Sonnenbrand heute ist vermutlich mehr
verschmort als es mir zuerst bewust war. Nach ein wenig After-Sun auf
dem Hirn ging es dann aber wieder. Ich Held habe solange bei der
Schaltung rumgesteckt (Auf einem Experimentierboard) bis ich es
geschafft hab VCC und VSS (beide!) auf Masse zu legen. Wie es da mit
der RS232/TTL Pegelwandlung aussah kann man sich quasi ausmalen. Ist
mir vorhin beim nochmal anschauen der Schaltung aufgefallen. Ich sollte
wieder den Kosmoskasten auspacken, bei den 1,5mm Schaltungen erkennt
man das immer so schlech... >=]

@Andreas: Danke fuer den Hinweis, dass der MSP einen internen
RZ-Oszillator besitzt. Mich hatten die Beispielprogramme auf eine
aehnliche Spur gebracht, jedoch war ich im Datenblatt noch nicht
soweit, dass ich das mit Sicherheit ausschliessen konnte. Und ja, man
kann wohl UART und CPU getrennt voneinander Takten. Bei dem
Blockschaltbild sieht man, dass aus Rosc und XIN/XOUT drei weitere
Takte generiert werden. MCLK (fuer die CPU) und ACLK/SMCLK fuer P1-P3.
Mir wird jetzt einiges VIEL klarer.


Ist R[osc] der RZ-Oszillator, von dem Andreas gesprochen hat?

von Weinga-Unity (Gast)


Lesenswert?

Die Tutorials von IAR für die UART benötigen einen 32kHz Uhrenquarz.
Ansonsten funktionierts nicht. Den internden Oszillator (DCO genannt)
würde ich nicht verwenden, da man nicht so einfach herausfinden kann,
wie schnell der läuft bzw. verändert sich das ganze bei
Tempschwankungen.

Ich selbst verwende immer einen 32kHz Quarz für UART-Funktionen 0-9600
Baud. Funktioniert einwandfrei.

mfg W.K.

von dr.karrotte (Gast)


Lesenswert?

Da würde ich drauf tippen, daß das Setup der USART nicht
stimmt. Glaube nicht, daß das was mit den Spannungspegeln
zu tun hat.
Kuck doch mal auf den Seiten von ti.com nach den Code-Examples
für die MSP's. Da sind auch Beispiele für
das USART-Handling drin.

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.