mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USART gibt komische Zeichen aus


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin noch ziehmlicher uC Anfänger und versuche mich gerade am Nachbau 
des SD Interface nach Ulrich Radig.

Ich hatte es schon so weit, dass ich die gewünschten Meldungen über das 
USART ausgegeben hatte. Dann habe ich einiges hin und her probiert. 
Jetzt bekomme ich nur noch eine Menge Sonderzeichen über das USART.

Offensichtlich habe ich irgendwo etwas bzgl. Taktfrequenz / Baudrate 
verstellt.

Aber ich finde es nicht! Folgendes ist der Stand der Dinge:

In der "usart.h" steht:

#ifndef F_CPU
  #define F_CPU 1000000UL

In AVR Studio habe ich im Programmierfenster im Reiter "Fuses" 
ausgewählt:
Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms, default value

Im Reiter "Advanced" steht die Frequenz auf 1MHz

In der Main.c initialisiere ich das USART mit:
usart_init(9600);

Mein Terminal steht auch auf 9600 ber zeigt nur Mist an.

Habe ich da noch irgendwo etwas übersehen?

Gruß
Ralf

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jetzt habe ich alles auf 4MHz umgestellt und es geht :-).

Autor: Andreas H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unabhängig von möglichen anderen Fehlern, zum ungefähr zweihundertsten 
mal in diesem Forum:

>Int. RC Osc. 1 MHz;

Das funktioniert nicht zuverlässig! Der interne RC-Oszillator ist zu 
ungenau. Wenn du den UART verwenden willst, kannst du das nur mit Quarz 
machen. Ändere das mal, erst dann kannst du weitere Fehler suchen.

Autor: Marc Seiffert (euro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> #ifndef F_CPU
>  #define F_CPU 1000000UL


möglicherwese ist die Frequenz ja schon woanders mit 4 000 000 definiert 
? dann überliest dre comppiler diese definition einfach



und der RC ist schon genau genug. Allerdings bei ungefär Raumtemperatur 
und mit halbwegs exacten Grundbaudraten. Schaden kann ein Quarz 
natürlich nie...

Autor: Klaus 2m5 (klaus2m5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> jetzt habe ich alles auf 4MHz umgestellt und es geht :-).

Im Sommer gehts dann wieder nicht mehr.

> Unabhängig von möglichen anderen Fehlern, zum ungefähr zweihundertsten
mal in diesem Forum:

Eher zum tausendsten Mal.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man den internen RC Oszillator kalibriert ist er genau genug. 
Zumindest für 20°C. (Wenn man das mitgelieferte Calibration Word benutzt 
:-))

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann den internen RC auch mit einem 32kHz quarz kalibrieren. Siehe :
http://www.ibrtses.com/embedded/avrosccal.html

Autor: Klaus 2m5 (klaus2m5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man natürlich die 100 Euro für den Quarz sparen will....

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei 1 Mhz und 9600 Baud beträgt der Baudratenfehler schon 7%.
Bei 4 Mhz und 9600 Baud sind es nur noch 0,2%.

Das wird das hüpfende Komma, äh der springende Punkt sein. ;-)

MfG Paul

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.