mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 UART1 sendet nix


Autor: Gino B. (gin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Die MSP Programmierung ist ziemliches Neuland für mich und daher habe
ich auch arge Probleme...
Mein momentanes ziel ist dem MSP430F147 Daten aus dem UTXD1 Port zu
locken. Die Daten gehen dann in einen FT232BM.
Im Moment wird nix gesendet, und wenn ich das richtig verstanden habe,
sollte das ja der Fall sein, sobald man etwas in den TXBUF1 schreibt.
(Benutzte externen quarz 4Mhz)

Hier meine Initialisation:
void init_uart() {
  U1CTL  |= SWRST;                 // USART Software Reset
   UCTL1  |= CHAR;                  // 8-bit character

   URCTL1 = 0;                // reset all possible error flags

   UTCTL1 |= SSEL1;                 // UCLK = SMCLK

   UBR01   = 0xA0;                  // 4Mhz divided by 0x1A0 --> baud
9600
   UBR11   = 0x01;                  //
   UMCTL1  = 0x00;                  // clear Modulation
   ME2    |= UTXE1 + URXE1;         // Enable USART1 TXD/RXD

   UCTL1  &= ~SWRST;                // Initialize USART state machine
}

void init_clock() {
   BCSCTL1 &= XT2OFF;
   BCSCTL1 |= XTS + RSEL1;

   BCSCTL2 |= SELM_2 + SELS;
}


Habe auch Probleme beim empfangen von Daten: Die Daten kommen (sehe ich
mit Oszilloskop) aber der TXBUF1 bleibt mit altem Speichermüll gefüllt.

Ich hoffe so sehr jemand von euch kann mir helfen!!

Autor: thomas.o (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du die ausgehenden daten auch auf dem oszi kontrolliert? vor allem
die frequenz bzw. baudrate?


   UBR01   = 0xA0;                  // 4Mhz divided by 0x1A0 --> baud
9600

im kommentar steht "divided by 0x1A0, was auch zu 9600baud fuehren
wuerde, jedoch im code steht 0xA0, was ein teiler von 160 ist, und auf
eine baudrate von 25000 fuehrt

mfg,
thomas

Autor: Gino B. (gin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Kommentar ist eine zeile zu früh, danach kommt ja noch:
   UBR11   = 0x01;
und UBR berechnet sich ja aus UBR11 + UBR01 = 0x01 + 0xA0 = 0x1A0
oder seh ich das falsch?

Autor: thomas.o (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups.. stimmt. hab zu schnell geantwortet.
du hast recht.

die frequenz die du mit dem oszi misst stimmt aber, oder?
wie hast du denn dein clock system konfiguriert?
ist schon wieder laenger her, dass ich mit dem msp gearbeitet hab.

mfg,
thomas

Autor: Yagan Ζ. Dongobar (yagan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gino,

hast Du die Port-Pins für die USART1 aktiviert?

    P3SEL |= 0xC0;              // P3.6,7 = USART1 TXD/RXD

Ciao, Yagan

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wie ließt du den receiver aus?? pollst du ihn (zyklische abfrage)
oder löst du nen interrupt aus???

Autor: Gino B. (gin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die vielen Antworten!
Yagan hat die Lösung gefunden...ist mir fast schon peinlich! Ich erzähl
am besten niemandem wie lang ich schon an der Fehlersuche saß...wegen
ner grundlenden Sache...naja..

Danke euch!

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.