Forum: Mikrocontroller und Digitale Elektronik Externer Quarz: Problem


von Flo S. (tuxianer)


Lesenswert?

hi,
ich habe an meinem Mega32 einen 16 MHz Quarz. Laut Schaltung müsste ich 
ihn ja über je einen 22pF Kondensator mit masse verbinden. Das Problem 
ist wenn ich die Teiel drann habe gehts nicht wenn...wenn se ab sind 
gehts. kann sich das einer erklären?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, du musst den Kondensator dranhängen, den der Quarzhersteller als
Lastkapazität spezifiziert hat.  Einzurechnen sind dabei auch die
Kapazität der AVR-Pins selbst sowie der Platine.  Wenn du ein
Steckbrett benutzt, kann dessen Kapazität schon komplett ausreichend
sein.

Denk auch dran, dass du bei ATmega32 für Quarze größer 8 MHz unbedingt
die CKOPT-Fuse setzen musst.  Dadurch wird die Ausgangsamplitude des
Oszillators auf volle Vcc angehoben, was aber auch den Stromverbrauch
vergrößert.

von Flo S. (tuxianer)


Lesenswert?

Ja ich benutze ein Steckbrett das wirds sein. Ich habe mal geschaut. 32 
pF sind angegeben. Wenn ich dan über nen Kondi an die Masseleitung 
verbinde, wird das sicher viel zu viel sein... Ob ich den CKOPT-Fuse 
gesetzt habe weis ich nicht. Das glaube ich aber eher weniger, da ich 
meines Wissens eigentlich nur Im AvrProg auf Quarz umgestellt hatte.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Florentin Schirmer wrote:

> Ja ich benutze ein Steckbrett das wirds sein.

Dann lass die Kondensatoren weg, die hat dein Steckbrett ,,eingebaut''. 
;-)

> Ob ich den CKOPT-Fuse
> gesetzt habe weis ich nicht. Das glaube ich aber eher weniger, da ich
> meines Wissens eigentlich nur Im AvrProg auf Quarz umgestellt hatte.

Naja, ist ja nicht dasselbe.  Bei bis zu 8 MHz muss man CKOPT nicht
setzen, nur höhere Frequenzen werden ohne diese Einstellung vom
Oszillator nicht sicher erreicht.  Das heißt, es kann auch ohne
gehen, aber es ist dann nicht mehr sicher, dass es über Temperatur
und Betriebsspannung stabil ist.

p.s.: Wenn du die Frequenz mit dem Oszi messen willst, klemme besser
nicht den Tastkopf direkt dran.  Das ist nochmal Kapazität.  Leider
hat der ATmega32 noch keine Möglichkeit, sich via CKOUT-Fuse die
Oszillatorfrequenz direkt auf ein Pin legen zu lassen, aber man kann
sich mit einem einfache Timer-Setup behelfen, das dann den Oszillator
1:2 geteilt an einem OCx-Ausgang ausgibt.

von Flo S. (tuxianer)


Lesenswert?

wegen dem Fusebit wo stellt man das denn in AVRosp oder AvrProg ein?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Da erwischste mich leider auf dem falschen Fuß.  Ich hab' kein Windows.

Mit avrdude (solltest du haben, wenn du WinAVR installiert hast) wäre
es:
1
avrdude -c avr910 -P com1 -p m32 -U hfuse:w:0x89:m

Das stellt alle anderen Bits in der high fuse auf seine Defaults
zurück.  Wenn du EESAVE auch noch programmiert haben willst, wäre
es 0x81 statt 0x89.

[Edit: da fehlte noch ein "w" drin.]

von Flo S. (tuxianer)


Lesenswert?

tja...das Problem ist nur ich habe nen USB Programmer, da mein PC kein 
Com hat. Und da gehen nur die beiden. PS ich nutze auch eigentlich 
MacOs. Nur durch die Mikrocontroller habe ich seit langem mal wieder 
Windows benutzt, da das auf mac nicht geht.

von Agamemnon (Gast)


Lesenswert?

Windows ist schon in Ordnung, damit kann man wenigstens vernünftig 
arbeiten. Alles andere ist ja nur Gefrickelkernelkomilieremacs.

von core (Gast)


Lesenswert?

...Da erwischste mich leider auf dem falschen Fuß.  Ich hab' kein 
Windows.....


ach du meine güte, ein ausserirdischer oder gelegenheitsbastler.

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.