MSP430F449: UART0 funzt nicht!!!

Gast #23418
Lesenswert?
• ▲
▼
Ich hab das Eval Board MSP-TS430PZ100 von Texas Instruments und hab 
gerade mal angefangen mich mit dem Teil vertraut zu machen. Ich hab zwar 
Kenntnisse in 80C167 und PIC Programmierung und darf ruhig behaupten, 
dass ich nicht schlecht darin bin, aber der MSP will einfach nicht. Ich 
hab einen 32768Hz Uhrenquarz aufs Evalboard gelötet, ohne Kondensatoren, 
aber die kann man ja intern konfigurieren. Ich hab einen RS232 Adapter 
mit ST3232CN der die Verbindung zwischen PC und MSP herstellt. Spannung 
ist auf 3V eingestellt und sämtliche Massen miteinander verbunden. Mit 
HyperTerminal empfange ich sogar etwas aber leider das falsche :-( Kann 
mir zufällig werd den Code, C-Code, rüberschicken, aber ich weiß nicht 
was das ist und habe keine Zeit mich länger damit zu beschäftigen, weil 
es ist Teil einer Projektarbeit für die Schule und mich stresst eh schon 
alles. Entweder ist die Hardware kaputt oder ich bin zu dämlich dafür 
;-)
Also die UART0 soll verwendet werden mit 9600 BAUD, Interrupts 
interessieren mich jetzt mal nicht, weil ich verwende zur Zeit eine 
while(1) und ein Delay, damit immer der gleiche Char rausgeschrieben 
wird und keine Konflikt entsteht.
Hat zufällig wer einen C-Compiler für den MSP430F449, aber mit Windows 
Oberfläche?
Gast #23420
Lesenswert?
• ▲
▼
Hallo,

zuerst im 449 die FLL initial.:

InitFll(TRUE,108,1); Damit läuft dann SMCLK mit 7.1434 MHz

Dann Uart initial.:

/*******************************************************
Initialisieren der USART0

Eingestellt wird UART-Mode
********************************************************/
USHORT InitUARTPhysical(USHORT teiler)
{
  P2SEL |= 0x30;  // Alternativfunktionen (TxD RxD)

  // USART Controlregister U0CTL

  U0CTL =  CHAR;  // Reset USART und 8Bit pro Zeichen

  // Transmitcontrolregister U0TCTL

  U0TCTL = SSEL0 | SSEL1;  // Taktquelle auf SMCLK setzen

  // Receivercontrolregister

  U0RCTL = 0x00;

  // Baudratenregister

  U0BR0 = teiler & 0xff;
  U0BR1 = (teiler >> 8) & 0xff;

  // Moduleenableregister1

  ME1 |= (UTXE0 + URXE0);    // Enable USART0 TXD/RXD
  IE1 |= URXIE0;     // Enable USART0 RX interrupt

  U0CTL &= ~SWRST;

  return(0);    // Kein Fehler
}


unsigned short InitFll(BOOL dcoplus, UCHAR n, UCHAR d)
{
  if(dcoplus == TRUE)
    FLL_CTL0 = XCAP0PF | DCOPLUS;
  else
    FLL_CTL0 = XCAP0PF;

  SCFQCTL = (n & 0x7f);  // Multiplikationsfaktor setzen
  SCFI0 = ((d & 3) << 6) | FN_3;
  return(0);
}

jetzt nocht die Defs. :

typedef enum {FALSE,TRUE} BOOL;
typedef unsigned char UCHAR;

#define FRQ_MCLK  7143424  // Frequenz des Mastertaktes

#define BAUDRATE   9600
#define BRTEILER  FRQ_MCLK/BAUDRATE



Es muessen natuerlich die Interruptroutinen vorhanden sein,
damit man was empfangen oder senden kann.
Hier ist nur der Empfangsinterrupt freigegeben. der Sendeinterrupt wird 
bei Bedarf benutzt.
Die 7.xxx Mhz habe ich gewaehlt, da bei dieser Frequenz die
Leistungsfaehigkeit des MSP bei mit (Vcc=3.3V) voll ausgenutzt
wird und der Fehler der tatsächlichen Baudratenfrequnz verglichen mit 
der Sollfrequenz klein ist.

MfG
Gast #23421
Lesenswert?
• ▲
▼
Am besten fängst Du mit den Beispielen von Ti an, um erstmal zu testen 
ob die serielle Schnittstelle richtig angesprochen wird, denn die hat ja 
selbst bei einer Geschwindigkeit noch dutzende Modi.

Von IAR gibt es eine kostenlose Version bis 4 kB Code und von anderen 
ähnliches, was meist Laufzeitbeschränkt ist. Es gibt aber den 
kostenlosen MSPGCC. Ich benutze den unter Linux mit der bash, aber auch 
für Win gibt's dazu kostenlose Oberflächen.

Antwort schreiben

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.

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.