mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART Programmierung bei ARM LPC2138


Autor: SaschaW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich versuche den UART0 bei einem LPC2138 ein zu richten. Leider bekomme 
ich entweder keine, oder keine Sinnvolle Ausgabe auf das Terminal.

Ich verwende das Embedded Artist QuickStart Board.

Hier mein Code:
#include <LPC213x.h>

int main( void ) 
{

  // Pins auf UART Funktion schalten  
  PINSEL0 = (PINSEL0 & 0xfffffff0) | 0x00000005;
  // PLL einstellen  
  PLLCFG = (4-1)|((2-1)<<5); // M=4 und P=2 (Multiplikatoren von 0 sind nicht erlaubt)
  PLLCON = 0x01; // PLL aktivieren
 
  PLLFEED = 0xAA;  //PLL Feed-Sequenz
  PLLFEED = 0x55;
  while ( !( PLLSTAT & (1<<10) ) ); // Auf PLOCK warten 
  
  MAMTIM = 3; 
  
  VPBDIV = 1;
 
  PLLCON = 0x03; // PLL aktivieren und mit dem internen Taktgeber verbinden
  PLLFEED = 0xAA;  //PLL Feed Sequence
  PLLFEED = 0x55;
  
  // UART0 Initalisieren
  U0LCR  = 0x80;                // enable access to Divisor Latches

  U0DLL = 0x20;                // PCLK = CCLK @ 58,9225 MHz
  U0DLM = 0x00;                // divider is 32; desired baud rate = 115200, real baud rate 115083
  
  U0LCR = 0x00;                // disable access to Divisor Latches
  U0LCR = 0x03;                // 8 bit, 1 Stop bit, keine parity
  
  U0FCR = 0x00;                //reset FIFO
  U0IER = 0x00;                //clear interrupt bits

  U0FCR = 0x07;                //enable UART0 FIFO
  U1FCR = 0x07;                //enable UART1 FIFO

  // 'a' auf UART0 ausgeben
  while( 1 ){                // Endlos-Schleife
      while (!(U0LSR & (1<<5))) continue; // Warten, bis der Sendepuffer geleert ist
 
    // Neuen Wert in das "Transmitter Holding Register" schreiben
    U0THR = (char)'a';
  }
  return 0;
}

Ich bin für jeden Vorschlag offen.

Autor: Robert Teufel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beispielprogramm UART:
http://www.standardics.nxp.com/support/documents/m...
Ist zwar fuer den LPC2106 geschrieben aber sollte genauso auf dem 
LPC2138 laufen. NXP hat ein sogenanntes Familienkonzept, Code kann sehr 
haeufig von kleineren Bausteinen uebernommen werden in der LPC2000 
Familie.

Weitere Beipielprogramme:
http://www.standardics.nxp.com/support/documents/m...

Eine Liste mit Hilfreichen Dokumenten  Programmen  Application Notes 
ist hier: 
http://www.standardics.nxp.com/support/documents/m...

Robert

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.