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
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.
> #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...
> 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.
Wenn man den internen RC Oszillator kalibriert ist er genau genug. Zumindest für 20°C. (Wenn man das mitgelieferte Calibration Word benutzt :-))
Man kann den internen RC auch mit einem 32kHz quarz kalibrieren. Siehe : http://www.ibrtses.com/embedded/avrosccal.html
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.