Forum: Mikrocontroller und Digitale Elektronik Wann nehme ich welchen Quarz?


von Hi_ich_bins_die_µC_Uschi (Gast)


Lesenswert?

Guten Abend,

Ich hätte mal eine Frage zu externen Quarz an µControllern.
Da ich ein Anfänger bin, hätte ich gerne gewusst, wann man einen 
bestimmten Quarz mit einem bestimmten Takt nimmt? Ich weiß, dass der 
Takt für jeden Controller-Typ begrenzt ist. Aber wann brauche ich einen 
hohen Takt und wann kann ich auch einen geringen nehmen? Woher weiß ich 
das? Schätzt ihr das ab oder kann das berechnet werden?

Danke im Voraus.

MfG

von Einer K. (Gast)


Lesenswert?

Faustregel:
Wenn du Rechenpower/Geschwindigkeit willst, nimmst du einen hohen Takt.

von Hi_ich_bins_die_µC_Uschi (Gast)


Lesenswert?

Hi,

das ist mir schon klar. Aber unsere Profi-Entwickler ist diesem Forum 
wählen den Quarz bestimmt präziser oder?

von Wolfgang (Gast)


Lesenswert?

Hi_ich_bins_die_µC_Uschi schrieb:
> Woher weiß ich das? Schätzt ihr das ab oder kann das berechnet werden?

Wenn du Strom sparen möchtest, kann es sinnvoll sein, einen Takt mit 
niedrieger Frequenz zu verwenden. Auch bei niedriger Spannung ist die 
mögliche Taktfrequenz eines µC oft niedriger, als bei voller Spannung.

Und welche Rechenleistung man braucht, i.e. wieviel Takte der Prozessor 
zur Bearbeitung einer bestimmten Aufgabe braucht, kann man sich im 
Simulator ansehen.

von Einer K. (Gast)


Lesenswert?

Hi_ich_bins_die_µC_Uschi schrieb:
> das ist mir schon klar. Aber unsere Profi-Entwickler ist diesem Forum
> wählen den Quarz bestimmt präziser oder?

Kann sein...
Wenns einen Grund dafür gibt..

Aber einen Grund, oder sonstige Randbedingungen, hast du ja nicht 
genannt.
Also kann man auch keine Empfehlung geben.

von Hi_ich_bins_die_µC_Uschi (Gast)


Lesenswert?

Arduino F. schrieb:
> Hi_ich_bins_die_µC_Uschi schrieb:
>> das ist mir schon klar. Aber unsere Profi-Entwickler ist diesem Forum
>> wählen den Quarz bestimmt präziser oder?
>
> Kann sein...
> Wenns einen Grund dafür gibt..
>
> Aber einen Grund, oder sonstige Randbedingungen, hast du ja nicht
> genannt.
> Also kann man auch keine Empfehlung geben.

Wie sieht es z.B. aus, wenn man einen LCD nehmen will?
Wie sieht es aus, wenn man mehrere UART realisieren will?
Wie sieht es aus, bei Verwendung von Bluetooth, WiFi, GPS und etc.?

Das wären z.B. Fragen, wo ich mich fragen würde, welchen Takt soll ich 
da genau nehmen?

von Mani W. (e-doc)


Lesenswert?

Der empfohlene Quartz steht normalerweise in den Applikationen des
jeweiligen Herstellers und den nimmt man dann auch...


Meistens...

von H.Joachim S. (crazyhorse)


Lesenswert?

Oft ist es völlig egal. Sehr viele MCs langweilen sich eh die meiste 
Zeit. Das können sie langsamer oder schneller tun :-)
Strombedarf - klar. Manchmal ist das ein Argument. Aber ob nun 4 oder 
5mA ist dann doch meist auch völlig egal.
Eine Besonderheit ist die UART. Bei hohen Baudraten kommt man dann um 
einen sog. Baudratenquarz nicht herum.
Man kommt eigentlich für den "normalen" MC-Betrieb mit rel. wenigen 
Frequenzen gut aus.
-4MHz und 16/20MHz.
-9,216MHz und 14,74MHz für die UART

von Wolfgang (Gast)


Lesenswert?

Hi_ich_bins_die_µC_Uschi schrieb:
> Das wären z.B. Fragen, wo ich mich fragen würde, welchen Takt soll ich
> da genau nehmen?

Einen, der ausreicht, damit der µC in der verfügbaren Zeit seine Aufgabe 
erledigen kann. Wenn der höher als der maximal für den Prozessor 
zulässige ist, ist der Prozessor unpassend, die Rechenalgorithmen 
ungünstig oder das Programm schlecht.

von DCAC (Gast)


Lesenswert?

Hi_ich_bins_die_µC_Uschi schrieb:
> Wie sieht es z.B. aus, wenn man einen LCD nehmen will?

Du kannst auch einen Präzisions-IC-Sockel zersägen und daraus eine 
Steckhalterung für Quarze gewinnen (--> drei Beinchen in einer Reihe, 
das mittlere Beinchen entfernen).

Dann kannst du durch umstecken mit verschiedenen Quarzen 
experimentieren.

von Axel S. (a-za-z0-9)


Lesenswert?

Hi_ich_bins_die_µC_Uschi schrieb:
> Arduino F. schrieb:
>> Hi_ich_bins_die_µC_Uschi schrieb:
>>> das ist mir schon klar. Aber unsere Profi-Entwickler ist diesem Forum
>>> wählen den Quarz bestimmt präziser oder?
>>
>> Kann sein...
>> Wenns einen Grund dafür gibt..
>>
>> Aber einen Grund, oder sonstige Randbedingungen, hast du ja nicht
>> genannt.
>
> Wie sieht es z.B. aus, wenn man einen LCD nehmen will?

LCD haben idR. keine engen Anforderungen an das Timing.

> Wie sieht es aus, wenn man mehrere UART realisieren will?

Ein UART hingegen schon. Wenn der Quarz den Takt für den UART liefern 
soll, würde man eine Frequenz wählen, die ein ganzzahliges Vielfaches 
der gewünschten Baudrate ist. Für den UART RX braucht man meist sogar 
ein Vielfaches dieser Frequenz, z.B. das 16-fache. Aus naheliegendem 
Grund nennt man derartige Quarze Baudratenquarze.

> Wie sieht es aus, bei Verwendung von Bluetooth, WiFi, GPS und etc.?

Da kommt es auf die Schnittstelle an, mit denen man sie anspricht. SPI 
z.B. ist unkritisch (hat eine eigene Taktleitung), I²C/TWI dito, UART 
hatten wir ja gerade. USB braucht typisch 12MHz bzw. ein Vielfaches 
davon. Auch Ethernet oder I²S (Audio) brauchen bestimmte, feste 
Taktraten.

von eagle user (Gast)


Lesenswert?

Axel S. schrieb:
> USB braucht typisch 12MHz bzw. ein Vielfaches
> davon. Auch Ethernet oder I²S (Audio) brauchen bestimmte, feste
> Taktraten.

CAN ist auch so ein Kandidat für einen genauen Takt. Eine Uhr ist eher 
keiner weil die aus der Batterie laufen muss und dafür braucht ein 
(MHz-)Quarz zu viel Strom.

Wann immer es geht, nimmt man keinen Quarz, sondern den internen 
Oszillator oder als Mittelweg einen keramischen Resonator. Der hat die 
beiden Kondensatoren schon eingebaut und trotzdem ein kleineres Gehäuse. 
Er braucht auch keine Widerstände und belegt deshalb weniger Platz 
wodurch das Layout viel einfacher wird. Von den Frequenzen her gibt es 
keinen Unterschied zum Quarz, nur die Genauigkeit ist schlechter. Dafür 
ist er mechanisch und elektrisch robuster.

Ein Argument für höhere Quarz-Frequenzen ist der Platzbedarf. Genau wie 
bei Musikinstrumenten braucht man für niedrige Frequenzen größere 
Resonanzkörper. Besonders bei SMD-Quarzen versucht man die Natur zu 
überlisten, aber je kleiner, umso schlechter. Die brauchen dann eine 
genau angepasste Oszillatorschaltung und schwingen schlecht an -- nichts 
für Bastler.

von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

nimm einfach denjenigen Quarz, der zu Deiner Anwendung nach reiflicher 
Überlegung und Studium aller relevanten Datenblätter am besten passt.

Als Anfängerin würde ich Dir 4 MHz empfehlen. Dieser ist universell.

mit freundlichem Gruß

von Hmm (Gast)


Lesenswert?

Hi_ich_bins_die_µC_Uschi schrieb:
> Wie sieht es z.B. aus, wenn man einen LCD nehmen will?

Dann nimmt man gar keinen Quarz. Für fast alle LCD reicht der interne 
RC-Oszillator.

> Wie sieht es aus, wenn man mehrere UART realisieren will?
Dann muss man rechnen, welche Baudraten man nutzen will, wie man den 
Prescaler wählt und ob sich das ausgeht.
Das ist schwieriger als du dir vorstellst, weil das von den 
Eigenschaften von allen beteiligten UART-Modulen abhängt, die nicht 
immer gleich funktionieren müssen.
Wer faul ist, nimmt einen Baudratenquarz, mit dem sich alle Baudraten 
ausgehen.

> Wie sieht es aus, bei Verwendung von Bluetooth, WiFi, GPS und etc.?

Da nimmt man gar keinen Quarz. Für die Kommunikation zum Bluetooth, 
WLAN, GPS-Modul reicht der RC-Oszillator. Oder nicht (wenn es eine UART 
ist).
Ein WLAN oder Bluetooth-System baut kaum jemand selber auf, das hat 
zulassungstechnische Gründe. Also brauchst du auch den Quarz nicht 
auszuwählen.

> Das wären z.B. Fragen, wo ich mich fragen würde, welchen Takt soll ich
> da genau nehmen?

Bei so unpräzisen Angaben kann man keine Empfehlung geben!

von Hmm (Gast)


Lesenswert?

Christian S. schrieb:
> Als Anfängerin würde ich Dir 4 MHz empfehlen. Dieser ist universell.

Bah, so ein schmarrn.
Damit kann man kaum mal eine schnellere UART betreiben. Oder I2S.
Völlig unpassend für viele Anwendungen.

--> von wegen universell...

von Frank (Gast)


Lesenswert?

Auch wenn man Strom sparen möchte könnte man sich je nach Applikation 
überlegen trotzdem einen Quarz mit höherer Frequenz zu erledigen 
(Programm ist schneller abgearbeitet) und sich dann in den Sleepmode zu 
legen...

von 6a66 (Gast)


Lesenswert?

Hi_ich_bins_die_µC_Uschi schrieb:
> Aber unsere Profi-Entwickler ist diesem Forum
> wählen den Quarz bestimmt präziser oder?

Moin.

Eine Schaltung eines uC mt einem geringen Takt auszulegen als der 
maximal möglichen Frequenz birgt immer das Risiko später in der SW nicht 
ausreichend Performance zu haben. In der HW hat das keine 
Qualitätsfolgen also wird man sich normalerweise an die Obergrenze 
legen. Es sei denn es gibt Spezialanforderungen (spezielle Taktfrequenz 
für bestimmte Zeiten, z.B. Baudrate, SleepMode, Stromverbrauch, .... 
oder Anforderungen durch HW- und SW- Architektur). Bei den Resonatoren 
selbst versucht man wie sonst auch an den Kosten zu sparen welhalb 
Keramikresonatoren überall dort eingesetzt werden wo eine 
Frequenzabweichung von 1...2% kein Problem darstellt (üblicherweise 
schätze ich den Einsatzfall auf etwa 80...90%). Wo es genuer gehen muss 
werden Quarze einsgesetzt. der Quarzoszillator ist ein Device das nur 
noch geringe Bedeutung hat da die meisten uC den Oszillator-Treibe an 
Bord haben. Ausnahme sind TCXOs die eine extreme Genauigkeit (1...2ppm) 
bieten.

rgds

von Volle (Gast)


Lesenswert?

viele µC haben eine PLL Schaltung um aus dem Quarz die gewünschten 
Frequenzen zu bekommen. Die sind dann auch umschaltbar.

Manche haben sogar mehrere PLLs um den Takt z.B. für Kommunikation 
getrennt einstellen zu können.
So reicht auch einem 200MHz µC ein 20MHz Quarz

von 6a66 (Gast)


Lesenswert?

Volle schrieb:
> viele µC haben eine PLL Schaltung um aus dem Quarz die gewünschten
> Frequenzen zu bekommen. Die sind dann auch umschaltbar.

In diesem Falle sucht man sich den Quarz raus der am kostengünstigsten 
in der gewünschten Bauform (meist die kleinste) ist und stellt die 
maximale (oder nötige) Frequenz mit der PLL ein. Danke für den Hinweis.

rgds

von Nosnibor (Gast)


Lesenswert?

Preis/Verfügbarkeit kann auch noch ein Argument sein. Als Bastler nimmt 
man gelegentlich, was gerade 'rumliegt oder in einem Restposten billig 
war, anstatt auf eine neue Lieferung zu warten. Aus der Industrie gibt 
es da das Beispiel mit den IR-Fernbedienungen, die früher häufig mit 
einem 450kHz-Resonator getaktet wurden, weil es den als Standardbauteil 
aus der Radioproduktion billig gab.

von DCAC (Gast)


Lesenswert?

AVR-Controller haben übrigens die Möglichkeit, den Takt intern durch 8 
zu teilen (DIVCLK8).
Damit läuft das Programm 8x langsamer als der Oszillator (natürlich nur, 
wenn man das möchte und das entsprechende Fuse-Bit gesetzt hat).

von spess53 (Gast)


Lesenswert?

Hi

>Auch wenn man Strom sparen möchte könnte man sich je nach Applikation
>überlegen trotzdem einen Quarz mit höherer Frequenz zu erledigen
>(Programm ist schneller abgearbeitet) und sich dann in den Sleepmode zu
>legen...

Spart man bei AVRs nichts. Bei doppelten Takt-> doppelter Strom und 
halbe Verarbeitungszeit

>AVR-Controller haben übrigens die Möglichkeit, den Takt intern durch 8
>zu teilen (DIVCLK8).

Die können den Takt sogar weiter (1, 2 , 4, 8, ... 256) teilen. Sogar 
ohne zu Hilfenahme einer Fuse. Siehe CLKP-Register im Datenblatt.

MfG spess

von Olaf (Gast)


Lesenswert?

> das ist mir schon klar. Aber unsere Profi-Entwickler ist diesem Forum
> wählen den Quarz bestimmt präziser oder?

Profis haben noch ganz andere Entscheidungskriterien als die hier 
genannten.
Wenn ich z.B nur 1000Geraete brauche und in anderen Geraeten andere 
Quarze mit 100000Stk laufen, dann naemlich ich natuerlich wenn es irgend 
geht einen bereits vorhandenen Quarz.
Ein anderer ist auch Vibration. Das kann dann dazu fuehren das man 
besser garkeinen Quarz nimmt.

Olaf

von John (Gast)


Lesenswert?

spess53 schrieb:
>>Auch wenn man Strom sparen möchte könnte man sich je nach Applikation
>>überlegen trotzdem einen Quarz mit höherer Frequenz zu erledigen
>>(Programm ist schneller abgearbeitet) und sich dann in den Sleepmode zu
>>legen...
>
> Spart man bei AVRs nichts. Bei doppelten Takt-> doppelter Strom und
> halbe Verarbeitungszeit

Und bei Batteriebetrieb ist es nicht nur so, dass man nichts spart, es 
wird sogar noch Energie verschwendet: je höher der Entladestrom einer 
Primärzelle ist, desto geringer ist die nutzbare Kapazität.

von MEMS (Gast)


Lesenswert?

Olaf schrieb:
> Ein anderer ist auch Vibration. Das kann dann dazu fuehren das man
> besser garkeinen Quarz nimmt.

Ja stimmt, MEMS-Osc ist inzwischen recht genau!

von Andreas M. (andreas61)


Lesenswert?

Ich muss mich da mal reinhängen.

Für eine Eieruhr oder den Belichtungstimer kann ich also bedenkenlos den 
MC-internen Oszillator verwenden?

Ich habe mir jetzt extra einen Quarzoszillator gekauft und war 
erschrocken wie groß das Teil ist.

Gruß Andreas

von Johannes S. (Gast)


Lesenswert?

Andreas M. schrieb:
> Für eine Eieruhr oder den Belichtungstimer kann ich also bedenkenlos den
> MC-internen Oszillator verwenden?

ja, reicht locker. Im Datenblatt ist normalerweise der Fehler angegeben. 
Bei einigermassen guten µC hast du z.B. 1% Fehler. Bei halbwegs 
konstanter Zimmertemperatur eher noch weniger und den absoluten Fehler 
kann man korrigieren. Und 1% bei einem 5 Minuten Ei wären 3s Fehler, 
damit kann man leben.

von M. K. (sylaina)


Lesenswert?

spess53 schrieb:
> Die können den Takt sogar weiter (1, 2 , 4, 8, ... 256) teilen. Sogar
> ohne zu Hilfenahme einer Fuse. Siehe CLKP-Register im Datenblatt.

Das Fusebit stellt ja auch nur den Initialisierungswert des 
CLKP-Registers auf 8 statt auf 0 ein.

Zum eigentlichen Thema:

Welchen Oszilator mal wählt ist nicht immer trivial. Eigentlich wurde 
schon alles dazu gesagt. Folgende Prioritäten setze ich mir dabei immer:

- Wie genau muss der Oszilator sein? (Temperatur- und 
Spannungsschwankungen berücksichtigen)
- Wie schnell muss der uC mindestens sein?
- Wieviel Strom steht für den uC zur Verfügung, muss Strom gespart 
werden?
- Welcher Bauraum auf der Platine steht zur Verfügung?

Daraus ergibt sich eigentlich automatisch welcher Oszilator in welcher 
Geschwindigkeit in Frage kommt.

von Hi_ich_bins_die_µC_Uschi (Gast)


Lesenswert?

Danke schon mal für die interessanten Antworten. Kennt ihr auch 
Literatur, wo das Thema wissenschaftliche mal behandelt worden ist?

MfG

von Einer K. (Gast)


Lesenswert?


von Hi_ich_bins_die_µC_Uschi (Gast)


Lesenswert?

Arduino F. schrieb:
> http://www.rainers-elektronikpage.de/Grundlagen-de...
> ??

Vielen Dank. Genauso so etwas meinte ich. :)

LG

von Noch einer (Gast)


Lesenswert?

> Als Anfängerin würde ich Dir 4 MHz empfehlen.

Der funktioniert immer. Auch wenn du irgendwas mit unpassenden 
Kondensatoren auf Lochraster zusammen bastelst.

Sowohl bei höhere Frequenzen als auch bei Uhrenquarzen muss du 
sorgfältiger arbeiten.

von M. K. (sylaina)


Lesenswert?

Noch einer schrieb:
> Sowohl bei höhere Frequenzen als auch bei Uhrenquarzen muss du
> sorgfältiger arbeiten.

Naja, Uhrenquarze und auch 16 MHz Quarze hab ich bisher auch problemlos 
mit einem AVR auf nem 08/15 Steckbrett betrieben. Das ist nun wirklich 
keine Hürde.

von W.S. (Gast)


Lesenswert?

Hi_ich_bins_die_µC_Uschi schrieb:
> Da ich ein Anfänger bin, hätte ich gerne gewusst, wann man einen
> bestimmten Quarz mit einem bestimmten Takt nimmt? Ich weiß, dass der
> Takt für jeden Controller-Typ begrenzt ist.

Na also, da weißt du ja schon einiges.

Bei den meisten Controllern ist aber die von dir genannte Begrenzung ein 
ziemlich breites Scheunentor. Sie reicht z.B. bei den kleinen PIC's bis 
Null herunter.

Aber zumeist dreht man den Spieß um: Der herstellungsbedingte 
Optimalbereich für Quarze liegt so etwa zwischen 4 MHz und 20 MHz. 
Darunter werden die Quarze unhandlich groß und darüber gibt es zumeist 
nur Obertonquarze. Also bedient man sich bei einem µC am ehesten aus dem 
oben genannten Bereich 4..20 MHz.

Es gibt aber Spezialitäten, die man beachten muß:
1. Für USB braucht man genau 48 MHz und die muß der µC aus seiner 
eingebauten PLL und dem angeschlossenen Quarz erzeugen können. Das geht 
nicht mit allen Quarzen. Also muß man dafür was geeignetes nehmen, also 
4 oder 8 oder 12 MHz zum Beispiel.
2. Für I2S braucht man je nach Abtastfrequenz und Wandler Frequenzen im 
Bereich 22..27 MHz (hab's nicht auswendig gelernt) und die muß man dann 
eben aus dem Quarz erzeugen können - entweder direkt oder per PLL

3. CAN, Ethernet und so können gelegentlich auch spezielle Frequenzen 
benötigen, da lies dir aber lieber die Manuals dazu durch.

4. Für UART's, also serielle Kanäle reicht bei heutigen µC mit ihren ja 
doch eher hohen Systemtakten im Bereich 50 MHz und mehr fast jede 
Quarzfrequenz aus, denn prinzipbedingt kann eine serielle Schnittstelle 
auch mit kleineren Restfehlern in der Abtastfrequenz ganz gut leben 
(vorausgesetzt, man arbeitet senderseitig mit 1.5 oder 2 Stoppbits).

Der Rest an Bedenken ist wahlfrei. Wer keine hohe Geschwindigkeit 
braucht, kann auch mit geringerer Taktfrequenz arbeiten und wer keine 
Genauigkeit braucht, dem reicht auch der eingebaute RC-Oszillator aus.

W.S.

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.