Forum: Mikrocontroller und Digitale Elektronik Atmega8 - Quarzoszillator konfigurieren und Taktfrequenz erhöhen


von Stearman (Gast)


Lesenswert?

Hi,

Wie ich einen Quarzoszillator (4 Beine) an den Mikrocontroller 
anschliesse weiss ich, was danach folgt jedoch nicht.
Habe zwar gehört, dass man Fusebits setzten muss, was ich mit PonyProg 
tun würde, welche ich jedoch setzten muss verstehe ich überhaupt nicht. 
Muss ich da bereits die Taktfrequenz meines Oszillators irgendwo angeben 
oder wird diese später per Software an den Mikrocontroller übermittelt?

Angenommen ich würde keinen Oszi anschliessen, würde der Atmega8 doch 8 
MHZ machen, nicht? Standartmässig ist aber nur 1MHz definiert, wie 
ändere ich das?

Besten Dank
gruss
Stearman

von Ahem (Gast)


Lesenswert?

Was die Fuses betrifft, ist das hier erklärt: 
http://www.mikrocontroller.net/articles/AVR_Fuses#Taktquellen_Fuse_Einstellung

>Muss ich da bereits die Taktfrequenz meines Oszillators irgendwo angeben
>oder wird diese später per Software an den Mikrocontroller übermittelt?
Die Fuses definieren die Taktquelle. Bei der Taktquelle "interner 
RC-Oszillator" ist aber damit auch schon die Frequenz gegeben. Der 
RC-Osz. läuft bei 8MHz. Allerdings hat noch die CKDIV-Fuse einen 
Einfluss.

In der Software selbst brauchst Du die Taktfrequenz nur dann angeben, 
wenn Du irgendwelche Frequenzabhängige Peripherie benutzt. Timer oder 
UART. Siehe Tutorials.

>Angenommen ich würde keinen Oszi anschliessen, würde der Atmega8 doch 8
>MHZ machen, nicht?
Nein. Nur wenn Du auch die CKSEL Fuse auf "internen RC-Oszillator" 
setzt.

>Standartmässig ist aber nur 1MHz definiert, wie ändere ich das?
Nein. Kommt darauf an, was Du unter "standardmäßig" verstehst. Einen 
Standard gibt es nicht. Allerdings werden die Prozessoren ab Fabrik mit 
gewissen Fuses ausgeliefert. Welche das sind, steht im Datenblatt.

von Vlad T. (vlad_tepesch)


Lesenswert?

der mega kann auch mit internen oszi 8Mhz, ohne dass du außen was 
dranhängst.
Die einstellung der Fusebits ist etwas  tricky. Wenn du da was falsch 
machst, kannst du den nicht mehr umprogrammieren.
ich benutze zum programmieren avrdude mit Burn-O-Mat als Gui. das hat 
den Vorteil, dass die für die meisten Controllertypen dieFuses nicht 
selbst ausrechnen musst, sondern in einer GUI einstellen kannst, was du 
für einen Oszi du benutzen willst.

von Peter R. (pnu)


Lesenswert?

Rein theoretisch sagt das Datenblatt alles, was man dazu braucht.


Man programmiert also die Betriebsart "external clock" ein (nicht 
external crystal). Dazu sicherheitshalber die start-up-time (SUT-bits) 
mit 64ms (die größte), denn kürzere start-up-zeiten könnten Probleme 
bringen.

Die Frequenz spielt bis zur maximalen Arbeitsfrequenz des atmega8 dann 
keine Rolle, was die fuses angeht.

Wenn external clock einprogrammiert ist, ist automatisch der interne 
RC-Oszillator vom Takt weggeschaltet. Ein Programmieren geht dann nur 
noch, wenn der externe Takt wirklich angeschlossen ist.

von Vlad T. (vlad_tepesch)


Lesenswert?

Peter R. schrieb:
> Rein theoretisch sagt das Datenblatt alles, was man dazu braucht.
>
>
> Man programmiert also die Betriebsart "external clock" ein (nicht
> external crystal). Dazu sicherheitshalber die start-up-time (SUT-bits)
> mit 64ms (die größte), denn kürzere start-up-zeiten könnten Probleme
> bringen.
>
> Die Frequenz spielt bis zur maximalen Arbeitsfrequenz des atmega8 dann
> keine Rolle, was die fuses angeht.
>
> Wenn external clock einprogrammiert ist, ist automatisch der interne
> RC-Oszillator vom Takt weggeschaltet. Ein Programmieren geht dann nur
> noch, wenn der externe Takt wirklich angeschlossen ist.


Die Betriebsart esxternal Clock sollte man auf keinen Fall wählen!
Die ist dazu da, wenn man den µC durch nen Taktgenerator mit dem Takt 
versorgen will.

für einen externen Kristall, oder Resonator gelten andere Einstellungen!

von Michael U. (amiga)


Lesenswert?

Hallo,

Vlad Tepesch schrieb:
> Die Betriebsart esxternal Clock sollte man auf keinen Fall wählen!
> Die ist dazu da, wenn man den µC durch nen Taktgenerator mit dem Takt
> versorgen will.

Zitat aus der Frage des Posters:
>Wie ich einen Quarzoszillator (4 Beine) an den Mikrocontroller
>anschliesse weiss ich, was danach folgt jedoch nicht.

Genau das will er ja offensichtlich.......

Gruß aus Berlin
Michael

von Vlad T. (vlad_tepesch)


Lesenswert?

sorry, hab ich falsch verstanden, ich dachte er meint nen normalen 
Quarz.

Was ist denn der Vorteil von nem Quarzoszilator zu nem normalen Quarz 
mit 2 Kerkos?

von Falk B. (falk)


Lesenswert?

@  Vlad Tepesch (vlad_tepesch)

>Was ist denn der Vorteil von nem Quarzoszilator zu nem normalen Quarz
>mit 2 Kerkos?

Wenn man etwas mehr Geld ausgibt kann man einen genaueren bzw. stabilen 
Oszillator kaufen. Der interne + Quarz tut es aber für 99% aller 
Anwendungen.

MFG
Falk

von Peter R. (pnu)


Lesenswert?

Gründe für externen Taktoszillator:

Der Takt wird auch für andere Prozessoren/IC's benötigt, dann ist ein 
externer Oszillator die bessere Lösung.

Einzelquarze am Kontroller schwingen nach dem Reset langsam hoch, d.h 
der Takt steht erst nach einer start-up-zeit von einigen ms zur 
Verfügung. Bei einem externen Taktoszillator steht der Takt sofort zur 
Verfügung, der Kontroller kann nach wenigen  Takten bereits arbeiten.

In einer Umgebung mit starken Störsignalen können u.U. die Zuleitungen 
des Quarzes zuviel an Störungen einfangen.

Die Frequenz des Quarzes ist so speziell, dass keine Quarze gefertigt 
werden können, die zum Oszillator des Kontrollers passen.

Die geforderte Frequenzkonstanz ist nur durch Teko erfüllbar, nicht 
durch Einzelquarz.

sorry: was ich oben zur start-up-Zeit gesagt habe, gilt für Einzelquarz, 
nicht für externen Takt, bei dem kann man die kürzeste start-up-Zeit 
einstellen

von Michael U. (amiga)


Lesenswert?

Hallo,

Peter R. schrieb:
> sorry: was ich oben zur start-up-Zeit gesagt habe, gilt für Einzelquarz,
> nicht für externen Takt, bei dem kann man die kürzeste start-up-Zeit
> einstellen

Würde ich nicht so verallgemeinern wollen, auch der externe Oszillator 
muß bei PowerOn anschwingen und nach dieser Zeit ein sauberes Signal 
liefern.

Gruß aus Berlin
Michael

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.