LPC2136 Problem UART ohne JTAG

OP #2627886
Lesenswert?

Hallo!

Ich habe ein ganz kurioses Problem..
Rahmenbedingungen:
LPC2136
ARM-USB-OCD
Rowley Crossworks

In einem kleinen Testprogramm wird ein Zeichen über die UART0 des ARMs 
ausgegeben. Gleichzeitig, damit ich sehe, dass das Programm noch läuft, 
blinkt dabei eine LED. Das Programm funktioniert im Debugger 
anstandslos. Ich kann es auch flashen und es funktioniert ohne Debugger 
genauso. Leider geht über UART nichts mehr, wenn ich den Stecker vom 
JTAG entferne.

Also zum verdeutlichen (Programm läuft aus dem Flash und wird nicht 
über JTAG gedownloadet):
Szenario 1:
- JTAG dran, Crossworks usw. alles geschlossen
- Debug-Jumper vom Port 1.27 (TDO) entfernt
- Spannung dran
- Programm läuft: ich sehe die Zeichen und LED blinkt.

Szenario 2:
- JTAG nicht angeschlossen
- Debug-Jumper vom Port 1.27 (TDO) entfernt
- Spannung dran
- LED blinkt, es kommt aber nichts an!

Ich kann auch im laufenden Betrieb einfach den JTAG-Stecker einstecken 
und entfernen und ich sehe, wie die Zeichen ankommen bzw. nicht.

Die Hardware ist OK. Darauf läuft seit mehreren Jahren ein größeres 
Projekt, das aber bisher ohne UART ausgekommen ist.

Das aktuelle Programm ist sehr einfach gehalten. Keine Interrupts. Init 
von der LED und Implementierung von _delay_ms habe ich mal weggelassen. 
Daran liegt es nicht (schon geprüft). Hat jemand eine Idee wonach ich 
suchen soll??

Gruss
Thomas

main()
{
unsigned int divisor = 
liblpc2000_get_pclk(liblpc2000_get_cclk(OSCILLATOR_CLOCK_FREQUENCY)) / 
(16 * baud);
  U0LCR = 0x83; /* 8 bit, 1 stop bit, no parity, enable DLAB */
  U0DLL = divisor & 0xFF;
  U0DLM = (divisor >> 8) & 0xFF;
  U0LCR &= ~0x80; /* Disable DLAB */
  PINSEL0 = PINSEL0 & (~0xF)| 0x5;
  U0FCR = 1;

for(;;)
{
  LEDON;
  while(!(U0LSR & U0LSR_THRE));
  U0THR='#';
  _delay_ms(2);
  LEDOFF;
}
}
OP #2628351
Lesenswert?

Hallo!

Dieser Hinweis war Gold wert! Da hängt ein USB-Seriell-Adapter dran an 
drei Leitungen (TX,RX,GND). An dem Board sind die Leitungen direkt an 
die Platine angelötet und GND hing am falschen Pad... War gestern wohl 
schon zu spät gewesen!

Vielen Dank Martin! Wünsche dir noch einen erholsamen 2. Feiertag!

Gruss
Thomas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren