mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430F449: UART0 funzt nicht!!!


Autor: Rooney (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich mich nicht irre ist standardmäßig der interne Oszillator 
aktiviert; ändern kann man das zur Laufzeit in irgendwelchen Registern.

Einen kostenlosen, uneingeschränkten Compiler mit Windows-Oberfläche 
gibt es nicht.

Autor: Joerg Huebler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rolf Freitag (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.