Forum: Mikrocontroller und Digitale Elektronik Wird der externe Quarz wirklich verwendet? Atmega8515L


von Lynn S. (Firma: Gecko) (wolke)


Lesenswert?

Hallo zusammen,

Aufgrund Probleme mit der USART Kommunikation (empfange nichts) habe ich 
die AVR Checkliste (unter Artikel) konsultiert. Unter UART/USART steht:

"Um zu prüfen, ob der externe Quarz auch wirklich verwendet wird, kann 
man mittels _delay_ms() einfach mal eine LED im Sekundentakt blinken 
lassen. Den Unterschied zwischen Quarz und internem RC-Oszillator kann 
man bei grösseren Frequenzunterschieden leicht sehen. [...]"

Also schrieb ich ein C Programm, um ein blinkendes LED zu erzielen:
1
#define F_CPU 1000000UL  // 1 MHz
2
#include <avr/io.h>         
3
#include <util/delay.h> 
4
5
6
int main (void) {           
7
 
8
   DDRB  = 0xff; 
9
               
10
   while(1){ 
11
      PORTB = 0xFE; 
12
      _delay_ms(200);   
13
      PORTB = 0xFF; 
14
      _delay_ms(200);
15
   }                    
16
   return 0;                
17
}


Ich benutze den Atmega8515L mit dem STK500 über AVR Studio4. Für den 
internen RC Oscillator habe ich die SUT_CKSEL fuses auf "int. RC Osc. 
1MHz; Start-up time: 6CK+64ms" gesetzt.
Lass ich das Programm laufen, blink es eher langsam.

Stecke ich einen 4MHz Quarz auf das STK500 board (OSCSEL Jumper auf 2,3) 
und stelle die Fuses auf "Ext. Crystal/Resonator Medium Freq.; Start-up 
time: 1K CK+64 ms" blink es anschliessend schneller (Programm nicht neu 
geflasht).

Aber genauso schneller blinkt es auch, wenn ich den Quarz vom board 
wegnehme. In dem Fall wird der externe Quarz gar nicht verwendet. Aber 
trotzdem blinkt es schneller.

Wo muss ich noch Einstellungen machen, damit mein Quarz verwendet wird? 
Der Clock Generator Wert von 3.686MHz unter "HW Settings" bleibt in 
jedem Fall immer der selbe (sollte wahrscheinlich auch nicht so sein).

Wäre um hilfreiche Tipps sehr froh! Stehe eher am Anfang meiner 
Mikrocontroller-Karriere ;-)
Danke im voraus.

von Uwe .. (uwegw)


Lesenswert?

Irgendwoher muss der takt ja kommen...
Bis du dir sicher, dass der OSCSEL-Jumper richtig sitzt? Stell mal den 
Clock Generator des STK auf "off". (oder nimm eine andere Frequenz, und 
schau ob sich was tut)

Mit der derzeitigen Fusebit-Einstellung holt sich der AVR den Takt 
jedenfalls von XTAL1. Und da hängt entweder der Quarz, oder der 
Softclock von STK.

von Lynn S. (Gast)


Lesenswert?

Vielen Dank für Deinen Hinweis!

Tatsächlich hatte ich den OSCSEL Jumper verkehrt gesetzt. Ich habe die 
Pins von links nach rechts gezählt und 2,3 war für mich was eigentlich 
1,2 ist. Und so wie ich es gesetzt hatte, nahm er den Takt vom Software 
Clock und nicht vom Quarz.

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.