mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega16 vs. Quarzoszillator


Autor: Bernhard Friedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Nachdem mir ein ATmega16 gestorben ist habe ich gleich einen neuen
gekauft und setzte die Fuses wie beim ersten.

ext. Clock (16MHz Quarzoszillator):
CLKSEL: 0000 (PonyProg: alle CKSEL angehakt)
sonst blieb alles default.

Wie es nicht anders zu erwarten war, funktionierte das ganze natürlich
nicht (PonyProg: Device missing or unknown device).

Im moment läuft er wieder mit dem internen RC-Oszillator (konnte ihn
durch ständiges "retry" drücken wieder zurücksetzen - nicht sehr
professionell, aber es hat funktioniert).

Bin dankbar für jeden noch so kleinen Tipp,

Bernhard Friedel

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Friedel,

nur um Missverständnissen vorzubeugen, meinst du nun
externen Quarz an XTAL1 und XTAL2 mit den beiden 22pF Kondensatoren,
oder Externen Oszillator nur an XTAL1?
Ich frage deshalb, weil es da schon öfter Verwechselungen gab.

Gruß,
Arno

Autor: maxigs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
# nur um Missverständnissen vorzubeugen, meinst du nun
# externen Quarz an XTAL1 und XTAL2 mit den beiden 22pF Kondensatoren,
# oder Externen Oszillator nur an XTAL1?
# Ich frage deshalb, weil es da schon öfter Verwechselungen gab.

Was genau ist überhaupt der Unterschied zwischen diesen beiden
Möglichkeiten?
Was ist besser, stabiler ..oder so?
Bin erst seit einer weile dabei mich (soweit nur theoretisch) mit
AVR's zu befassen und da hab ich bisher noch nie ne Begründung
gesehen, wieso jemand das eine oder das andere benutzt.

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ein externer Quarz mit den beiden Kondensatoren nutzt die im
Controller vorhandene Elektronik um damit den Quarz zum
schwingen zu bringen.
Diese Schwingung wird dann auch wieder im Controller in eine
Rechteckschwingung gewandelt für den Takt.

Beim externen Oszillator wird ein schon fertiges Rechteck-
Signal an den XTAL1 Pin angelegt.
Dieses Signal wird also nicht im Controller erzeugt sondern
ausserhalb.
Dieser externe Oszillator den man fertig kaufen kann, zB. in einem
14 poligen IC-Gehäuse enthält also einen Quarz und die Elektronik
zur Takterzeugung.

Gruß,
Arno

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab noch was vergessen, was die Genauigkeit anbelangt ist der
externe Quarzoszillator der bessere, weil in der Schaltung
auch eine Temperaturkompensation enthalten ist.

Die preiswerteste Lösung ist der interne RC-Oszillator.
Dieser ist aber in der Frequenzkonstanz nicht gut und kann daher
zu Problemen führen wenn man den UART benutzt.

Die am meissten benutzte Variante ist die mit dem externen Quarz.
Die Genauigkeit ist viel besser als der interne RC-oszillator.

Gruß,
Arno

Autor: maxigs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wow das ging ja schnell - danke

also nen oszillator wenns genau sein soll, ein normaler quarz als gute
standartlösung und wenns egal ist den internen takt..

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ist es.
Jede dieser Taktarten hat aber eine andere Fusebit-Einstellung.
Die Daten dazu findest du im Datenblatt.

Gruß,
Arno

Autor: Bernhard Friedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>meinst du nun
>externen Quarz an XTAL1 und XTAL2 mit den beiden 22pF Kondensatoren,
>oder Externen Oszillator nur an XTAL1?

Ich meine den externen Oszillator an XTAL1.

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, also die Einstellung stimmt dann so, hast du eventuell
einen ATmega16L ?
Hat der externe 16Mhz Quarzoszillator Spannung?
Kannst du feststellen ob er schwingt?
An XTAL1 sollten so ca. 2,5V zu messen sein.

Autor: Bernhard Friedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ATMEGA16-16PI - müsste der Richtige sein
Die Oszillatoren (hab 2 zur verfügung) schwingen auch mit ihren 16MHz.

Autor: Bernhard Friedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte es am Steckbrett liegen?
Der ATmega16 funktioniert nur mit dem internen Oszillator einwandfrei -
mit einem ext. Quarz oder einem Quarzoszillator funktioniert er nicht
mehr. Ein mega8 hat sich ähnlich verhalten.

Wieso dann mein erster AVR auf diesem Steckbrett funktioniert hat, ist
wieder eine andere Frage ...

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ein ähnliches Problem,auch mit dem ATMega16.Benutze Bascom,und will
einen externen Quarz benutzen(8MHz),welche einstellung muß ich nun
genau nutzen?

danke

Autor: Joern Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Wenn der Quartz von Reichelt stammt (Conrad ist wohl nicht anders,
weiss ich gerade nicht), dann hat er wohl ein C-load von 32pF.

Die beiden externen Kondensatoren (C1, C2) berechnen sich nun
folgendermassen:
c1=c2=(2*Cload)-Cstray
Cstray ist angeblich ca. 5-7pF, also sollten die C1 und C2 demnach
C1 = C2 = (2*32)-7 = 57pF gross sein.

Keine Ahnung, warum man das nie in irgendwelchen Schaltungen sieht,
aber ich vermute mal, dass (abgesehen von conrad reichelt) meistens
Quarze mit weniger C-load verkauft werden (Grosskunden können sich
quasi wünschen, wie die Quarze geliefert werden sollen), daher die
empfohlenen 22pF.
Aber ich würde einfach mal die von allen Quarzherstellern empfohlene
obige Formel benutzen und ca. 55pf versuchen.

Wenn die Kondensatoren falsch sind, dann schwingt der Quarz zu schnell
oder zu langsam oder eben gar nicht.

Aber es gibt viele andere Fehlerquellen, diese hier ist es wohl eher
selten. Bei den anderen hilft aber ein gründliches Lesen des
Atmel-Datenblatts! ;-)

cu JOern

Autor: Bernhard Friedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wäre froh wenn es am Quarz liegen würde, aber ein ext. Oszillator
funktioniert genauso wenig.

z.B.: wenn ich einen Rechteck an einem Pin ausgeben will funktioniert
dies mit dem internen RC Oszillator perfekt, aber zu langsam.
Lasse ich das Programm im Flash stehen und stelle die Fuse Bits auf
einen Quarz oder ext. Oszillator um wird das Programm zwar noch
ausgeführt, aber nicht richtig - der Rechteck kommt irgendwie raus und
hat keine gleichbleibende Periodendauer.

Aber nicht mal das Programmieren funktioniert noch, wenn man einen
Quarz oder ext. Oszillator benutzt.

Danke

Autor: Markus Friedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Namenskollege,

hast du SUT0 und SUT1 gesetzt? Wenn nur eins davon gesetzt (also 0 bzw.
Häkchen) ist wird der Start des Controllers etwas verzögert und der
Oszillator hat mehr Zeit zum Anschwingen.

Alternativ könntest du zum Beispiel einen 8 Mhz Oszillator testen,
möglicherweise gibt es einfach EMV Probleme auf dem Steckbrett...

Hat der Mega16 eine ausreichende Betriebsspannung? Je höher die
Frequenz desto höher die minimale Spannung. Hatte das Problem auch als
meine Batterie lehrging, der 7805 lieferte nur noch 4V. Es lief zwar
noch mit 8Mhz, aber nicht mehr mit 16.

Gruss

Markus

Autor: Bernhard Friedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

SUT1..0 ist auf 10 gesetzt - sind 65ms lt. Datenblatt.

Ein 8MHz Oszillator ist auch nicht besser wie ein 16MHz.

Betriebspannung hat er 4,97V.

Also hätte er eigentlich keinen Grund um nicht zu funktionieren ...

Autor: Bernhard Friedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den Oszillator etwas weiter vom µC entfernt und JTAG wieder
eingeschaltet.
Funktioniert nun problemlos mit einem 8MHz Oszillator:
http://dasboot.covers.de/8MHzJTAG.jpg
Schaltet man JTAG wieder ab (ich brauche den ganzen PORTC) so ergibt
sich dies hier: http://dasboot.covers.de/8MHz.JPG

Ein 16MHz Oszillator funktioniert nicht mal mit eingeschaltenem JTAG:
http://dasboot.covers.de/16MHzJTAG.JPG

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.