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.
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.
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
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.
@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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.