Forum: Mikrocontroller und Digitale Elektronik lpc2294 gibt über UART1 nur hieroglyphen aus.


von Thorsten H. (imonkey)


Lesenswert?

Hallo Forum,

mein lpc (2294 auf phytec 200) soll eigentlich "hello world" sagen aber 
irgendwie kommt das beim hyperterminal nicht an...langsam gehen mir auch 
einfach die ansätze zur problembehebung aus (is ja eigentlich auch nur 
nen bsp-programm von keil was gehen sollte!)...:

baudrate-9600 eingestellt (teiler=16 bei 2.5 mhz vpb-clock=1/4cpu)

8-bit wordlänge

1 stoppbit

kein paritybit

keine flussteuerung

befehl: printf(bla bla/n)
        bei sendchar('x') nur leerzeichen....

stdio.h eingebunden

jumper geprüft...

Im hyperterminal habe ich alles auch so eingestellt, wird auch im 
ansi-format erkannt aber...

Auch example-code von der nxp-seite (bsp. zu uart ausgabe) wird von der 
uart vornehm zurückgehalten. Bestenfalls erhalte ich OU~D oder sowas.

gruß
thorsten

von Daniel B. (und3rt4ker)


Lesenswert?

Hi,
wie siehts mit Quarz aus? Oder is das eingebaut...

MfG Und3rt4ker

von __ _. (unrouted)


Lesenswert?

Hallo,

bei "Hieroglyphen" würde ich auch auf einen ungenauen Takt (oder falsche 
Baudrate) tippen. Ich würde mal periodisch ein einzelnes Zeichen senden 
und diesen Datenframe mit dem Oszilloskop aufzeichen. Dann kannst du die 
reale Baudrate bestimmen und versuchen diesen Frame per Hand zu 
decodieren.

Übersichtlichere Terminals für solche Spielereien:
http://www.der-hammer.info/terminal/index.htm
oder das br@y Terminal...

von Thorsten H. (imonkey)


Lesenswert?

Hallo,
vielen dank für den link ersteinmal, sende ich mit printf(" \n") ein 
leerzeichen (0x20) zeigt mir HTerm eine E8 ?????????

gruß

von __ _. (unrouted)


Lesenswert?

Naja auf den ersten Blick würde ich sagen da stimmt was nicht... Auf 
jeden fall liegt es nicht an HTerm.

von Thorsten H. (imonkey)


Lesenswert?

Servus,

eine sehr scharfsinnige Analyse des sachverhalts...

von Icke M. (Firma: my-solution) (hendi)


Lesenswert?

Schreib doch mal welchen COM du verwendest. Ich kenn jetzt nur den 2378, 
dort sind 2 u 3 wenn ich mich recht errinnere am Anfang gar nicht 
eingeschaltet. Aber dein Problem klingt schon nach falscher Baudrate. 
Was benutzt du denn für eine Funktion  zum initialisieren? Bist du 
sicher, dass du alle Register für den jeweiligen Comport eingestellt 
hast? Ich glaube da gabs noch irgendwo ne zusätzliche Clockeinstellung, 
die man beachten musste, also nicht nur das Register für die Baudrate. 
Dazu kann ich dir heute nachmittag evtl. mehr sagen.

von __ _. (unrouted)


Lesenswert?

Mehr ist ja auch schlecht möglich bei dieser ausführlichen 
Fehlerbeschreibung. Ich geh etz mal davon aus du hast kein Oszi oder 
meidest zumindest den Umgang damit.

Jedenfalls tippe ich wie gesagt auf eine falsche oder ungenaue Baudrate. 
Mit folgenden Ursachen:
- Fehler in der Schnittstellenkonfiguration (Software im Controller/PC)
- Oszillatortakt zu ungenau (meist bei internem Resonator)
- Controller oder PC kann die gewünschte Baudrate nicht mit einem 
ausreichend kleinem Fehler erzeugen
- Schlechte oder falsche Verbindung / Störungen

Lösungsmöglichkeiten:
- Rumprobieren bis es klappt
- Messen (Oszilloskop) und Ursache finden. Wenn am Controller das 
falsche raus kommt liegts an der Software ansonsten an Dingen nach dem 
Controller.

von Thorsten H. (imonkey)


Lesenswert?

das rätsel ist gelöst!

xtal und cpucore freq.(aus der die baudrate abgeleitet wird) sind nicht 
dieselbe frequenz. bei xtal=10mhz ist cpu=50mhz woraus folgt das u1dll 
nicht 16 sondern 0x51 sein muss um 9600bit/s zu erhalten!

vielen dank für die rege anteilnahme am problem!

mfg Th.H

von Robert Teufel (Gast)


Lesenswert?

Die mitgelieferte Startup Datei benuetzt, nicht verstanden was drin war, 
die PLL aktiviert und ploetzlich laeuft die CPU viel schneller als 
erwartet. Warum eigentlich 10 MHz, das ist normalerweisse 12 MHz auf 
diesem Board und dann hatten all die Kommentare mit 15 MHz VPB 
Geschwindigkeit gestimmt.
Naja, laeuft jetzt, ist wohl die Hauptsache.

Robert

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.