Erfahrungen UART TI Launchpad

Gast #1940460
Hallo,

Ich versuche nun schon seit geraumer Zeit den UART von meinem Launchpad 
zum laufen zu bringen.

Als Programm nutze ich das Temperatursensor Beispiel von TI:

http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2)?DCMP=launchpad&HQS=Other+OT+launchpadwiki#Complete_Projects

Als Entwicklungsumgebung nutze ich IAR Kickstart.
Compiler Optimierung ist auf "Low" gestellt.

Die virtuelle COM Schnittstelle lese ich via HTerm aus.
Einstellungen 2400,N,8,1

Das Problem ist das ich immer wenn ich ein Byte übertrage Rechnerseitig 
nur Nullen ankommen.
Ich hab auch mal eine Schleife durchlaufen lasse in denen ich TX Byte 
von 0-255 alle Werte übertragen lassen hab.
Aber auch dort bekomme ich immer nur Nullen.
Auch wenn ich eine LED zwischen TX und GND anhänge kann ich ein blinken 
erkennen. Ein Scope habe ich leider nicht da.

Außerdem hab ich festegestellt as wenn ich meine Compiler Optimierung 
auf "None" stelle, gar keine Bytes mehr bekomme auch keine Nullen mehr.

Auch habe ich versucht den COM Port zu wechseln also mal von COM3 auf 
COM9 umgestellt usw.
Dies brachte allerdings ebenso wenig Erfolg wie das Neuinstallieren der 
Treiber oder Neustarten des Rechners.

Nun hat hier schon jemand ähnliche Erfahrungen mit dem Application UART 
des Launchpad gemacht, oder weiß woran es liegen könnte. Oder ist 
eventuell TI's Beispielcode fehlerhaft?
Gast #1940544
Das Beispiel von TI sendet Zeichenfolgen, keine Ziffern und es 
funktioniert auch... wenn auch eher schlecht als recht. Die Beispiele 
sind insgesamt eher mau.

Du weißt aber schon das es auch ein entsprechendes Programm braucht um 
die Temperatur zu messen ? ist ebenso auf der TI WebSite. HTerm bringt 
dir da nicht viel.
Gast #1940550
Tag,

Ja es sendet immer einen Byte Hterm bringt mir da schon was ,da ich mir 
die Bytes auch als Hex bzw. Dezimalzahl anzeigen lassen kann.

Bzw würde es mir erstmal schon reichen wenn ich sehe das was anderes 
ankommt als Null.

Die TI GUI funktiniert bei mir gar nicht ab den Punkt wo ich den COM 
Port wählen muss ignoriert er meine Tastatureingaben.
Gast #1940556
Leg halt deinen Finger auf den MC und heiz den ein bischen auf... dann 
sollte auch ein anderer Buchstabe zu sehen sein. Ist ja schließlich ne 
Temperaturmessung :-)

Ansonsten baust du das Beispiel ein bischen um, Meßwert itoa z.B.
Gast #1940560
Es ist egal was ich sende(Wie gesagt hab schon ne While Schleife mit 
allen möglichen Werten durchlafuen lassen) es kommen nur Nullen an.
Auch das mit dem Reiben hab ich schon ausprobiert.
Gast #1940578
Dauerhaftes Senden mag keine clevere Idee sein, wie gesagt, der Code ist 
etwas schräg :-)

Anbei mal ein simples "Hello World" aber es funktioniert. Achtung, ist 
auch eher nur hingemurxt.

Ich kann dir gerne heute abend eine Temperaturmessung von mir 
bereitstellen, habe den Code leider nicht hier auf meinem Rechner.
Angehängte Dateien:
Gast #1940981
Tag,

Habe es mit deinem Code versucht.

Meine Einstellungen bei HTerm sind 9600,8,N,1

Ich bekomme jedesmal wenn ich den Button drücke ein Zeichen dieses ist 
aber Müll hab mal ne 7 bekomme mal das Zeichen für 1/2 aber jedes mal 
wenn ich drücke halt nur 1 Zeichen.

Ich glaube mittlerweile es ist entweder ein Treiberproblem werde das 
programm morgne mal an einem anderen Rechner ausprobieren, oder der TUSB 
Chip ist defekt oder etwas in der Richtung werde auch mal versuchen mir 
ein anderes Board auszuleihen und es damit auch nochmals zu probieren
Gast #1941232
So, habe noch ein bischen Zeit. Ich habe mir mal HTerm angeschaut und 
ich finde es nicht sehr praktisch... ist aber nett anzusehen.

http://www.heise.de/software/download/teraterm_pro/51776

Ich verwende für solche Tests TeraTerm und das funktioniert klaglos 
obwohl es durchaus weniger Optionen zu bieten hat. Ich würde an deiner 
Stelle mal ein anderes Terminal Programm verwenden.

Im Anhang findest du einen Screenshot mit beiden Programmen. Hier siehst 
du die Ausgabe einer ADC Messung welche ebenfalls auf dem Launchpad 
läuft.

Für die Temperaturmessung habe ich dir einen TestCode beigefügt. Der 
Code unterscheidet sich deutlich von dem TI Beispiel. Die Ausgabe 
erfolgt Terminal gerecht... will sagen, mit der TI Software hat das 
nichts mehr zu tun sondern die Ausgabe erfolgt direkt im Klartext auf 
das Terminal.
Angehängte Dateien:
Gast #1941333
Habe deinen Hallo Welt code auf HTerm und TeraTerm probiert.
Kein Erfolg.

Finde HTerm persönlich schöner weil ich mir die Daten in Hex anzeigen 
lassen kann.
Gast #1946951
Hey,

Bin jetzt dazu gekommen es wieder auzuprobieren bin jetzt allerdings 
noch mehr am verzweifeln.

Und zwar hat das Beispiel von TI was Standartmäßig auf dem Launchpad 
geflasht ist funktioniert hab ein noch verpacktes Launchpad bekommen und 
dieses getestet.

Anschließend hab ich selber ein Programm draufgespielt und nix 
funktioniert mehr auch nicht mit dem obigen Testprogramm.

Es ist also kein Treiberproblem, kein Hardwareproblem und an der 
Software kann es auch nicht liegen. Es kann also nur an den Compiler 
Einstellungen liegen und am Downloaden des Programms.

Ich benutze IAR Embedded Workbench und downloade das Programm mittels 
download and debug. Anschließen lass ich den Controller "rennen".
Auch nach ausstecken des Launchpads und anschließendem einstecken ist 
das Programm noch drauf kann es sein das hier schon ein Fehler ist?

Welche Entwicklungsumgebung nutzt du ?

Gruß Tobias
Gast #1947009
Tag,

Einstellungen sind:

Target Einstellungen:
Device MSP430G2231
Size of double 32 bits

Language Einstellugen:
Language: C
C dialect: C99
Language conformance: Standard with IAR extensions

Optimizations:

Low

Debugger
FET Debugger

FET Debugger:
Texas Instruments USB-IF
Spy-Bi-Wire

Das sind so die Hauptsächlen Einstellungen.

Gruß Tobias
Gast #1947025
Hmm funktinoiert auch nicht.
Du benutzt aber auch IAR oder Code Composer?
Wie spielst du das Programm auf den Controller?
Irgendwo muss ja ein Unterschied sein.

Gruß Tobias
Gast #1947095
Also... wenn ich dein Projektfile verwende bekomme ich die Fehlermeldung 
"broken Options" und der Optimizer steht immer noch auf low.

Also mal Schritt für Schritt:
- Im Workspacefenster ganz oben links dein Prokekt anklicken.
- Ist das Projekt eingefärbt dann Projekt / Options klicken
- General Options Targe ...G2231
- C Compiler Optimization High, Pulldown Size wählen

Der Rest sollte passen.
Gast #1947119
Anbei mal der LED blinky code, versuch mal ob das Projekt geht... wenn 
das schon nicht geht dann weiß ich es nicht.

Sollte es funktionieren dann per cut & paste den anderen Code 
hineinwerfen.
Angehängte Dateien:
Gast #1947143
das Blink LED Programm funktioniert.
Habe anschließend das UART Programm von dir reingeladen und das 
funktinoniert wieder nicht.

Komisch...

kann man irgendwie ne .hex oder .bin file erzeugen und diese aufspielen.
Dann könnte man den Fehler weiter einkreisen ?

Gruß Tobias
Gast #1947146
Ich kann dir leider so nicht sagen was dein Problem ist, sorry.

Ich kann dir nur anbieten mal mit dem TeamViewer ne Session zu machen, 
du kannst mich einladen. Kanns dir dann vorführen und versuchen dahinter 
zu kommen.

http://www.teamviewer.com/de/download/index.aspx

Du brauchst die Software nicht mal installieren, nur die .exe ausführen 
und mich einladen. Dazu bräuchte ich dann deine Nummer.
Gast #1947218
@ Stefan, das funktioniert, keine Sorge, siehe Screenshot.

TXByte = (c |= 0x100);

Bei den TI Blogs steht ne Menge falsches Zeug. Hast du ein Launchpad 
dann häng ich dir meine Variante gerne hier herein.
Angehängte Dateien:
Gast #1947320
Interessant, das funktioniert tatsächlich mit allen in diesem Thread 
angehängten Programmen.
Die Zeile
TXByte |= 0x100;
kann man dann aber auch noch weglassen und es funktioniert immer noch.
Gast #1947332
Ups, viel zu lange selbst die verschiedenen Varianten ausprobiert und 
nicht gesehen, dass in der Zwischenzeit ein paar Beiträge dazugekommen 
sind.
Die Übertragung von 8-Bit Zeichen mit gesetztem höchsten Bit wird mit 
TXByte als char wohl nicht funktionieren.
Gast #1947421
Moin,

>> Die Übertragung von 8-Bit Zeichen mit gesetztem höchsten Bit wird mit
>> TXByte als char wohl nicht funktionieren.

Ja, funktioniert ebenso. Woher kommt das 9te BIT ?
Gast #1947721
Bernd,
bei mir funktioniert die Übertragung von 8-Bit Zeichen mit gesetztem 
höchsten Bit nicht wenn TXByte als char definiert ist.
Ich habe es mit deinem HelloWorld Programm vom 17.11. ausprobiert und 
nur den zu übertragenden String geändert.
Wenn ich ASCII 171 (1/2 Zeichen) sende kommt ein + Zeichen an.

Mit dem Problem des Threadstarters hat das aber wohl nichts zu tun.
Ich denke er hat die DCO Kalibrierungswerte gelöscht.

Wenn ich sein Projekt öffne erhalte ich ebenso wie du eine 
Fehlermeldung.
Wenn ich dann das richtige main.c auswähle und das Programm übersetze 
und starte sind bei mir auch die Kalibrierungswerte gelöscht.
Bei den Optionen sollte der Haken bei Debuger - FET Debugger - Download 
- "Allow erase/write acces to locked flash memory" wohl besser nicht 
gesetzt sein wenn unter Flash erase "Erase main and Information memory" 
ausgewählt ist.

Mit einem Launchpad mit aufgelötetem Uhrenuarz hat kann man mit dem "DCO
Calibration Constants Programmer" aus der Beispielprogrammsammlung
http://www.ti.com/lit/zip/slac080 die 1 MHz Kalibrierwerte zusammen mit 
den bei der Value Line Serie im Auslieferungszustand fehlenden Werten 
für 8, 12 und 16 MHz berechnen und ins Information Memory programmieren 
lassen.

Wenn man den Uhrenquarz bestückt sollt man vorher die beiden 0R
Widerstände/Brücken zwischen Quarzanschlüssen und der Steckerleiste
entfernen um einen störungsfreien Betrieb sicherzustellen.

Stefan
Gast #1947845
Mit TXByte als "unsigned char" oder uint8_t passiert genau das gleiche 
wie mit TXByte als char. Das ist aber auch so zu erwarten da die 
Optionen hier so gesetzt sind, dass plain 'char' unsigned ist.

Mit TXByte als "unsigned int" oder uint16_t werden 8-Bit Zeichen mit 
gesetztem höchsten Bit natürlich korrekt übertragen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.