Forum: Mikrocontroller und Digitale Elektronik Quarz


von Anfänger (Gast)


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?

von johnny.m (Gast)


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?

von Michael U. (Gast)


Lesenswert?

Hallo,

Du hast Dein Programm auch entsprechend angepasst, wenn die 8MHz nicht 
der "Frequenz des Boards" entsprechen? Baudrate?

Gruß aus Berlin
Michael

von Anfänger (Gast)


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...

von johnny.m (Gast)


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!

von johnny.m (Gast)


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.

von Anfänger (Gast)


Lesenswert?

Wie blöde... - Ich habe vergessen das Baudratenregister anzupassen. 
Jetzt funktioniert es.

Nochmals Dank für die schnelle Hilfe!

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
Noch kein Account? Hier anmelden.