www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik HTerm empfängt nur Quark von Soft-UART MSP430


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Speckbauch (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo,

ich verzweifle hier langsam beim Versuch eine UART-Verbindung vom MSP zu 
Windows aufzubauen.
Nehme ich das Programm aus diesem Thread:

Beitrag "MSP430 launchpad TimerA_UART"
Empfängt HTerm angeblich nur Nullen.

Mit dem Code Example
msp430g2xx1_ta_uart9600
Empfängt er beim Starten zwei Sinnlose Werte, aber jedes Mal andere 
(z.B. E9 und F4, D9 und FA. Die Echo-Funktion geht überhaupt nicht.
Bevor ihr fragt: natürlich habe ich an den Quartz gedacht.

Mit der Demo die bei Auslieferung des Launchpad dabei war, schickt er in 
Rascher Abfolge immer wieder FF. Manchmal aber auch gemischt Null und 
Eins.

Ich habe hier auch ein Stellaris LM3S2965-Board. Da geht empfangen und 
Echoen ohne Probleme. Sind für den MSP vielleicht andere Einstellungen 
in HTerm notwendig (Baud niedriger-is klar, habe auch schon alle 
möglichen Bauds ausprobiert)? Realterm bringt die gleichen Ergebnisse.

...Ich glaube das irgendwas treibermäßig nicht stimmt, was meint ihr?

Autor: Hinz (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Nimm ein Oszi und guck dir den Zeichensalat, den dein µC sendet, an. 
Damit kannst du schon mal Bitdauer und Polarität überprüfen.
An HTerm wird es wohl kaum liegen, es sei denn, deine Baudrate stimmt 
nicht.

Autor: Speckbauch (Gast)
Datum:
Angehängte Dateien:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Gute Idee! Hier sind Oszillogramme. Ich habe sie mit dem Code Example 
von TI gemacht und die entsprechenden Werte dort eingesetzt. Die 
übertragenen Werte scheinen zu stimmen, aber die Frequenz... sieht 
irgendwie schneller aus als es sein sollte?!

Autor: Speckbauch (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Also wenn ich mir das genau betrachte überträgt er 8 Bits in ca. 40µs. 
Das entspricht einer Baud von 200.000! Wie kommt der auf so einen hohen 
Wert? Mit dem Code-Example kann was nicht stimmen oder?!

Autor: Stefan (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Speckbauch schrieb:
> Bevor ihr fragt: natürlich habe ich an den Quartz gedacht.

Soweit ich das erkennen kann wir der Quarz nicht benötigt weil ACLK 
nirgends genutzt wird.

Aktivier mal die SMCLK Ausgabe an einem Pin und kontrollier die 
Freuquenz. Oder schau mal nach was im Info Flash an den Stellen 
CALBC1_1MHZ und CALDCO_1MHZ steht.

Autor: Speckbauch (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ich habs probiert. Mit dem Code aus diesem Thread:
Beitrag "MSP430: SMCLK, MCLK, ACLK messen"

Erhalte an P1.0 (ACLK) und P1.5 (MCLK) gar kein Signal, an P1.4 ein 
Dreieck mit 22 MHz?! Wie ist das nun wieder zu erklären? Ich dachte die 
CPU packt maximal 16 Mhz.

Hier also mein Code:
void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;               // Stop watchdog timer

    DCOCTL = 0x00;                          // Set DCOCLK to 1MHz
    BCSCTL1 = CALBC1_1MHZ;
    DCOCTL = CALDCO_1MHZ;
    
P1SEL = BIT4;       //  xx11 xx1x = Pins werden nicht als I/O
                    //              verwendet, sondern als
                    //              Peripheral Funktion (ACLK...)

P1DIR = BIT4;      //  xx11 xx1x
                    //         1  = P1.1 = MCLK
                    //     1      = P1.4 = SMCLK
                    //    1       = P1.5 = ACLK
for(;;);

}

Autor: Speckbauch (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
meinte natürlich P1.1 MCLK und P1.5 ACLK...

Autor: ./. (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Sieht nach einem geleerten Info-Flash aus.
Mit 0xFF in den Konstanten kann man die CPU schon auf 22 MHz bringen :-)

Such mal nach DCO-Kalibrator...
Damit kannst Du die Konstanten des Controllers neu kalibrieren.

Autor: Speckbauch (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ich hab also quasi übertaktet?! Das erklärt einiges. Auch, warum die 
Datenrate so hoch ist. 200000 ist ca. das 22-fache von 9600, weil der 
mit 22 Mhz läuft statt 1 Mhz.

Aber wie ist das geschehen, dass der Flash verändert wurde?

Autor: Jörg S. (joerg-s)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Meist ist der Programmierer schuld ;)

Autor: tnzs (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hmm verwendest Du die IAR Kickstart Version? Falls ja: Da gibt es ein 
Menü: option => FET Debugger => Download. Dort kannst Du einstellen ob 
Flash oder Flash&Info beim Download gelöscht werden...vielleicht trifft 
letzeres bei Dir zu ...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
tnzs schrieb:
> Dort kannst Du einstellen ob
> Flash oder Flash&Info beim Download gelöscht werden

Das aber darf die Kalibrierdaten im Infomemory nicht löschen; die Page 
im Infomemory, wo die untergebracht sind, ist auch gegen einfaches 
Überschreiben geschützt.

Autor: Stefan (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wenn bei den Optionen den Haken bei "Allow erase/write access to locked 
flash memory" gesetzt ist kann auch das normaleweise schreibgeschützte 
Segment mit den Kaslibrierdaten ohne weitere Sicherheitsabfragen 
gelöscht werden.


Speckbauch schrieb:
> Erhalte an P1.0 (ACLK) und P1.5 (MCLK) gar kein Signal, an P1.4 ein
> Dreieck mit 22 MHz?! Wie ist das nun wieder zu erklären? Ich dachte die
> CPU packt maximal 16 Mhz.

Speckbauch schrieb:
> meinte natürlich P1.1 MCLK und P1.5 ACLK...

Bei den auf das Launchpad passenden Mikrocontrollern wie z.B. 
MSP430G2231 oder G2553 kann MCLK nicht an einem Portpin ausgegeben 
werden. ACLK kann an P1.0 ausgegeben werden, P1SEl und P1DIR müssen 
natürlich passend gesetzt werden.

Autor: tnzr (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Rufus Τ. Firefly schrieb:
> tnzs schrieb:
>> Dort kannst Du einstellen ob
>> Flash oder Flash&Info beim Download gelöscht werden
>
> Das aber darf die Kalibrierdaten im Infomemory nicht löschen; die Page
> im Infomemory, wo die untergebracht sind, ist auch gegen einfaches
> Überschreiben geschützt.

Nö, der löscht hemmungslos das gesamte Infoflash..wenn du das 
auswählst...schon mehrfach passiert. Aber mit dem passenden Ti bzw. 
ElpotronicTool kannst du den MSP neu kalibriern und die Werte im Info 
ablegen...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net