Quarz

Gast #496692
Lesenswert?
• ▲
▼
Hallo zusammen!
Möchte mein atmega16 auf dem STK500 mit einem externen Quarz betreiben 
(8 MHz) - leider bin ich zu dumm dafür...
Also XTAL1 ist gejumpert und OSCSEL ist auf die ersten beiden gesetzt. 
Im AVR-Studio ist das externe Fuse-Bit gesetzt. leider will die 
Ausführun noch nicht so richtig - die Daten kommen in kryptischen 
Lettern an (normalerweise kenn ich das nur bei falsch eingestellten 
Baudraten).
Nehme ich sie Frequenz des Boards funktioniert alles - also es liegt 
nicht am Programm.

Wer weiß, was ich falsch mache?
Gast #496701
Lesenswert?
• ▲
▼
> Im AVR-Studio ist das externe Fuse-Bit gesetzt
Was bitteschön ist denn das "externe Fusebit"? Und welche Daten kommen 
kryptisch an? Versuchst Du, etwas über UART zu übertragen? Wenn 
überhaupt was ankommt, dann gehe ich auch mal von einer falschen 
Baudrate aus. Hast Du denn die Baudraten angepasst bzw. die CPU-Frequenz 
korrekt eingegeben?
Gast #496710
Lesenswert?
• ▲
▼
Ok, ich hab mich wohl nicht präzise ausgedrückt.

externe Fuse-Bit
Damit wollte ich nur sagen, dass ich das Fuse-Bit für einen externen 
Quarz gesetzt habe.

Der uC rechnet ein bischen und zeigt mir zur Kontrolle die Daten an. 
Lese sie aus dem Hyperterminal. Du hast recht, ich nutze ich den UART.

Wieso muss ich das Programm anpassen? Vorher habe ich die 3,68 MHz 
genutzt und eine Baudrate von 19200 gewählt. Diese Baudrate wollte ich 
auch beibehalten. Wenn ich ehrlich bin, kann ich euch nicht ganz 
folgen...
Gast #496716
Lesenswert?
• ▲
▼
Wenn der Compiler nichts davon weiß, dass Du plötzlich einen anderen 
Takt verwendest, dann kann das nicht funktionieren! Du musst dem 
Compiler das über das Makefile (bzw. in AVRStudio über die Configuration 
Options) mitteilen. Und ich vermute mal, dass Du das nicht getan hast.

Und das Fuse-Bit für einen externen Quarz gibt es nicht. Da müssen 
eine ganze Reihe von Fusebits eingestellt werden. Wenn Du natürlich aus 
AVRStudio programmierst, dann ist das ein Häkchen in dem entsprechenden 
Fenster, was aber nicht bedeutet, dass es nur ein Fuse-Bit ist!
Gast #496728
Lesenswert?
• ▲
▼
Damit wir nicht aneinander vorbeireden: Ich bin oben davon ausgegangen, 
dass die Baudrate in Deinem Programm mit einer Formel berechnet oder 
direkt in die entsprechenden Register geschrieben wird. Wenn das der 
Fall ist und Du (für den ersten Fall, also mit Formel im Programm) dem 
Compiler nicht mitgeteilt hast, dass Deine Taktfrequenz jetzt nicht mehr 
3,68 MHz sondern 8 MHz ist, dann ist die Baudrate jetzt um den Faktor 
8/3,68 = 2,17 zu hoch. Wenn Du die Baudratengenerator-Register händisch 
geschrieben hast, musst Du natürlich da auch die Werte entsprechend 
ändern.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.