www.mikrocontroller.net

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


Autor: Thorsten Heimberg (imonkey)
Datum:

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

Autor: Daniel Bauer (und3rt4ker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
wie siehts mit Quarz aus? Oder is das eingebaut...

MfG Und3rt4ker

Autor: __ __ (unrouted)
Datum:

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

Autor: Thorsten Heimberg (imonkey)
Datum:

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

gruß

Autor: __ __ (unrouted)
Datum:

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

Autor: Thorsten Heimberg (imonkey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

eine sehr scharfsinnige Analyse des sachverhalts...

Autor: Icke Muster (Firma: my-solution) (hendi)
Datum:

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

Autor: __ __ (unrouted)
Datum:

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

Autor: Thorsten Heimberg (imonkey)
Datum:

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

Autor: Robert Teufel (Gast)
Datum:

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

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.