www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART funktioniert nur mit internem Oszillator!


Autor: Mathias Müller (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich habe ein "etwas" seltsames UART-Problem...

Testkonfiguration:
- STK500
- Mega16
- 1 * Hilgraeve HyperTerminal von 1998 unter Windows 98
  1 * Hilgraeve HyperTerminal Ver. 6.3 unter Windows XP

Also, fogendes Problem tritt auf:

Benutze ich das alte Hyper-Terminal mit dem internen 8 MHz Oszillator
funktioniert eigentlich alles wunderbar, die Startmeldung wird
ausgegeben und ich kann Befehle eintippen ( z.B. led1_on ).
Setze ich jedoch die Fuses für den externen Oszillator (8MHz-Quarz auf
dem STK500) erhalt ich nur noch "Zeichensalat".

Das neue Hyper-Terminal zeigt mir, egal ob mit internem oder externem
Oszillator, keine Zeichenketten an. Es wird also beispielsweise keine
Startmeldung ausgegeben. Tippe ich einzelne Zeichen ein werden diese
jedoch angezeigt?!

Ich verstehe die Welt nicht mehr, normalerweise sollte man doch einen
Externen Quarz benutzen und bei mir funktioniert es nur mit dem intern
en...

Ich habe wegen der Kompilierbarkeit mal das komplette Projekt angehängt
( soll eigentlich eine Art Debug-Monitor werden ). Bitte nicht wegen des
schlechten Stils meckern, das ganze befindet sich noch im pre-pre alpha
Stadium und ist noch etwas konfus und unvollständig ;-)
Interessant sind eigentlich auch nur die Dateien uart.c, uart.h und die
main.c.

Autor: Mathias Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, hab' noch etwas vergessen, das Makro zur Baudratenberechnung
befindet sich in config.h ( muss ich unbedingt noch verschieben... )

Autor: Mathias Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Niemand eine Idee?

Bin wirklich am Verzweifeln...

Autor: Daniel (x2) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Setzt du "External Crystal Oscillator"?

Und...hast du das STK umgejumpert um den Quarz zu benutzen?

Autor: Mathias Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bis jetzt hatte ich immer "Ext. Clock" eingestellt, hab's jetz mal
mit "Ext. Crystal/Reonator High Freq." probiert (wo liegt da
eigentlich der Unterschied?), mit dem gleichen Ergebnis: einzelne
Zeichen kann ich eingeben und ich bekomme auch das Echo, es werden
jedoch keine Zeichenketten ausgegeben und "Enter" funktioniert auch
nicht.

Die Jumper sollten richtig gesteckt sein, wie gesagt, mit einzelnen
Zeichen geht's ja...

Autor: Daniel (x2) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Unterschied liegt in der Beschaltung des Atmegas. Für Quarze nimmst
du andere als für reine Taktquellen. Ich verwende "Ext. Crystal Medium
Freq. 16k + 0 ms".

Wenn die Jumper auch richtig sind, hab ich grad keine Ahnung. Hab
leider keine Zeit, deinen Quellcode anzuschauen.

Autor: Mathias Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Hab
leider keine Zeit, deinen Quellcode anzuschauen"

Kann ich verstehen ;-), trotzdem vielen Dank!

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

welchen seriellen Anschluß auf den STK500 verwendest du?
Der obere ist für das STK500 der untere ist für den Controller
der in einem der Sockerl steckt.

Für externen Quarzoszillator muß der Jumper "OSCSEL" auf 1-2
stecken.

Für externen Quarz muß der Jumper "OSCSEL" auf 2-3 stecken und
es muß ein Quarz im Sockel "CRYSTAL" stecken.

Der Jumper "XTAL1" muß gesteckt sein.

Falls der Controller in einem der Sockel mit RS232 angesprochen
werden soll, dann muß noch von "PD1" und "PD2" eine Verbindung
nach "RS232" RXD,TXD hergestellt werden.

Es grüsst,
Arno

Autor: Cosmic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hatte eine ähnliches Problem: beim Hyperterminal kamen immer nur wirre
Zeichenketten an.
Hab dann mal im Programm und im Hyperterminal die Bautrate von 9600 auf
4800 gesetzt und siehe da es funktioniert. Hab vorher jede Einstellung
mit den Fusebits und jede Möglichkeit (int. ext. Oscillator) probiert.
Das hat mich jetzt zwei Tage gekostet. Aber manchmal ist es einfach so
eine blöde Einstellung. Bei mir klappt jede Bautrate bis 4800, darüber
hab ich nur Buchstabensalat.

Mfg

Cosmic

Autor: Mathias Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh mann, ich hab' den Fehler gefunden: Ich hatte bei der
Initialisierung teilweise "UCSRB" und "UCSRC" vertauscht!
Das Problem sitzt eben doch meistens vor dem Bildschirm...

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.