Forum: Mikrocontroller und Digitale Elektronik Welchen Quarz für XMEGA?


von Detlev T. (detlevt)


Lesenswert?

Hallo Leute,

ihr seit schuld, dass ich mich jetzt auf die XMEGA einstellen muss. ;-)

Gleich die erste Frage: AVR1003 
(http://www.atmel.com/dyn/resources/prod_documents/doc8072.pdf) wegen 
der Takterzeugung habe ich jetzt durch und weiß, was alles geht.

Aber was ist davon zu empfehlen?

Auf den internen RC-Generator mag ich mich (noch?) nicht verlassen, 
Kalibrierung hin der her. Also muss wohl ein Quarz her.

Sollte man da tendenziell eher eine kleine Quarzfrequenz (z.B. 1 MHz) 
nehmen und dann ggf einen hohen Multiplikationsfaktor via PLL? Oder eher 
eine hohe Quarzfrequenz und einen niedrigen Faktor? Gehen wir einmal 
davon aus, ich will auf jeden Fall die vollen 32MHz.

Was ist da stabiler (Quarz eingeschlossen)? Wie sind da eure 
Erfahrungen?

Danke für eure Hilfe.

Gruß, DetlevT

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Detlev T. schrieb:
> Sollte man da tendenziell eher eine kleine Quarzfrequenz (z.B. 1 MHz)
> nehmen und dann ggf einen hohen Multiplikationsfaktor via PLL? Oder eher
> eine hohe Quarzfrequenz und einen niedrigen Faktor? Gehen wir einmal
> davon aus, ich will auf jeden Fall die vollen 32MHz.

Der Quarz sollte einen geradzahligen Teiler oder ein geradzahliges 
Vielfaches von dem haben, was Du später als CPU-Frequenz haben willst. 
Dabei spielt nur die Grundgenauigkeit des Quarzes eine Rolle, nicht der 
Faktor der PLL oder des Prescalers. Ein guter 8Mhz Quarz solle ohne 
weiteres zu bekommen sein und ist daher auch gut anwendbar. Wenn Du 
spezielle Frequenzen für Audio-Streaming oder Bilderzeugung brauchst, 
muss der Quarz halt auf diese Frequenz, einen Teiler oder ein Vielfaches 
davon resonant sein. Übertakten des XMega ist übrigens auf bis etwa 
38MHz möglich.

von wt (Gast)


Lesenswert?

wenn Du das max. Frequenz möchtest, sollst Du auch max. mögliche (16MHz) 
nehmen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

wt schrieb:
> wenn Du das max. Frequenz möchtest, sollst Du auch max. mögliche (16MHz)
> nehmen.

Unsinn. Das macht nur mehr Probleme beim Platinendesign. Und es steigert 
den Strombedarf der Oszillatorstufe.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Detlev T. schrieb:
> Was ist da stabiler (Quarz eingeschlossen)? Wie sind da eure
> Erfahrungen?

Detlev T. schrieb:
> Aber was ist davon zu empfehlen?

Es spricht aus meiner Sicht zunächst nichts gegen einen 32.768 kHz 
Quarz.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Joe G. schrieb:
> Es spricht aus meiner Sicht zunächst nichts gegen einen 32.768 kHz
> Quarz.

Lies das ErrataSheet.

von Detlev T. (detlevt)


Lesenswert?

Knut Ballhause schrieb:
> Unsinn. Das macht nur mehr Probleme beim Platinendesign. Und es steigert
> den Strombedarf der Oszillatorstufe.

So wie es aussieht, brauche ich wohl eine Taktfrequenz von 30MHz (wg. 
UART). Würdest du mir dann also zu dem Extrem 1MHz-Quarz und Faktor 30 
raten?

von Peter R. (pnu)


Lesenswert?

Zuerst einmal: Solange man keine zeitkritischen Abläufe im Programm hat, 
kann man ohne weiteres den internen RC-Oszillator verwenden.
"genauer" braucht man bei besser als einige Prozent, bei Zeit- und 
Frequenzmessungen, bei asynchroner Datenübertragung wie RS232.

Quarze sind im Bereich zwwischen 4MHz und 16 MHz am leichtesten zu 
fertigen. In diesem Frequenzbereich sind die Preise am niedrigsten, die 
Daten am besten einzuhalten, die Zahl der Bauformen am größten.

Für die Frequenz sind zwei Varianten vorzuziehen: entweder eine feste 
ganzzahlige Frequenz wie z.B. 4, 8 oder 12 MHz oder eine Frequenz die 
ein ganzzahliges Vielfaches der üblichen seriellen 
Übertragungsgeschwindigkeiten enthält, sogenannte Baudrate-Quarze, z.B. 
11,59 MHz

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Detlev T. schrieb:
> So wie es aussieht, brauche ich wohl eine Taktfrequenz von 30MHz (wg.
> UART)

Was ist das denn für´n UART? DMX512?!

Detlev T. schrieb:
> Würdest du mir dann also zu dem Extrem 1MHz-Quarz und Faktor 30
> raten?

Nö, wahrscheinlich würde ich 6Mhz und Faktor 5 nehmen. Oder 10Mhz und 
Faktor 3. Aber das UART gestattet einen fraktionalen Teiler, deshalb ist 
es möglich, fast jede Baudrate aus fast jeder CPU-Frequenz zu teilen, 
grob gesagt.

von Detlev T. (detlevt)


Lesenswert?

Zur Ergänzung/Erläuterung:
Ich muss UARTs bei 19.2, 38.4 und 625 kbps betreiben. Letzteres erzwingt 
nach meinem Verständnis eine durch 5 teilbare MHz-Zahl. Richtig?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Detlev T. schrieb:
> Letzteres erzwingt
> nach meinem Verständnis eine durch 5 teilbare MHz-Zahl

Nein. Es erzwingt eine 8- oder 16-fach höhere CPU-Frequenz oder deren 
Vielfache. Bei Benutzung des fraktionalen Teilers auch 1...6/7 davon.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Knut Ballhause schrieb:
> Lies das ErrataSheet.

Habe ich was übersehen? Die 32 KHz synchronisieren die internen 32 MHz.

von Peter R. (pnu)


Lesenswert?

Um eine Vorstellung zu bekommen, wie die Baudrate-Quarz-Frequenzen 
entstehen: schau einmal im Datenblatt des atmega8 nach, Seite 159 ff, 
eventuell auch die Seiten dort über die Berechnung der Taktfrequenz usw. 
- oder im Datenblatt der UART eines anderen Kontrollers.

von wt (Gast)


Lesenswert?

Knut Ballhause schrieb:
>
> Unsinn. Das macht nur mehr Probleme beim Platinendesign. Und es steigert
> den Strombedarf der Oszillatorstufe.

Wenn ich 4-8MHz im Design verbauen kann, werde ich auch mit 16MHz 
genauso zurecht kommen.
Strombedarffrage ist nur dann zu betrachten, wenn das System extrem 
sparsam ausgelegt werden muss, sonst fällt nicht ins Gewicht.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Joe G. schrieb:
> Die 32 KHz synchronisieren die internen 32 MHz.

Offiziell schon, aber die DFLLs sind fehlerhaft. Nicht komplett, aber so 
lala.. Und 4...10Mhz Quarze sind oft billiger und mindestens so genau, 
wie Uhrenquarze, wenn nicht genauer. Kommt halt drauf an. Der Uhrenquarz 
läuft noch im PowerSave, kann den XMEGA also wecken, was der XTAL nicht 
kann.

von Manuel W. (wanie)


Lesenswert?

Hallo,

um das Thema nochmal aufzufrischen:
Ich bin ebenfalls neu in dem Gebiet Xmega und mache gerade meine ersten 
Gehversuche.
Bin positiv überrascht von den vielen Neuerungen der Xmegas, im 
vergleich zum "guten alten" ATmega.

Mit den Manual's bin ich nun ziemlich durch, aber eine Frage ist 
immernoch offen:
Beim Xmega kann (lt. specs) als externe clock max. 16MHz angeschlossen 
werden, welche dann aber durch PLL nochmal multipliziert werden kann, 
richtig? Ich kann also nicht einfach einen 32MHz Quarz anschliesen?

Im XMEGA A MANUAL steht unter Punkt 7.2:
Four different reference clock sources can be chosen as input to the 
PLL:
• 2 MHz internal oscillator
• 32 MHz internal oscillator divided by 4
• 0.4 - 16 MHz Crystal Oscillator
• External clock

Heißt das nun das man, sobald auf Basis eines externen Taktes die PLL 
zum Einsatz kommt, dann ein quartz OSZILLATOR benötigt wird, oder kann 
man auch einen normalen Quarz (16MHz * PLL-faktor2) benutzen?


PS: Bei meiner Anwendung geht es um sehr Zeitkritische dinge wie 
Frequenzerzeugung, deshalb möchte ich einen quarz.

Gruß
Manuel

von Peter R. (pnu)


Lesenswert?

32MHz-Quarz geht sowieso nicht, das gibts nur in Oberwelle und der 
Oszillator des Kontrollers kommt nur mit Grundwelle zurecht.

Weil oberhalb 16MHz die Grundwellenquarze etwas schwierig herzustellen 
sind, hat man den Oszillator auf max. 16MHz festgelegt. Da dieser auch 
Eingang für den externen Takt ist, bleibts auch da bei den 16 MHz.

Für genaue Taktfrequenz bei Frequenzerzeugung ist der Oszillator des 
Kontrollers wahrscheinlich nicht ausreichend. Einfache externe 
Oszillatoren für Digitaltakt ebenfalls nicht. Da wäre ein diskret 
aufgebauter Oszillator eher angebracht.

von Manuel W. (wanie)


Lesenswert?

Peter R. schrieb:
> Weil oberhalb 16MHz die Grundwellenquarze etwas schwierig herzustellen
> sind, hat man den Oszillator auf max. 16MHz festgelegt. Da dieser auch
> Eingang für den externen Takt ist, bleibts auch da bei den 16 MHz.

Ok, danke für die Antwort.
Das heißt ich kann einen normalen 16MHz Quarz (keinen Quarz-Oszillator) 
an XTAL1 - XTAL2 anschließen, wie ich es auch vom ATmega gewoht bin?

Ein diskret aufgebauter Oszillator wäre das non-plus-ultra.
Würde es gerne zuerst mit einer Quarzlösung testen.

Gruß
Manuel

von Arc N. (arc)


Lesenswert?

Peter R. schrieb:
> 32MHz-Quarz geht sowieso nicht, das gibts nur in Oberwelle und der
> Oszillator des Kontrollers kommt nur mit Grundwelle zurecht.

Seit wann gibt's die nicht mehr?
bis 200 MHz Grundton z.B.
http://www.foxonline.com/pdfs/fd.pdf

> Weil oberhalb 16MHz die Grundwellenquarze etwas schwierig herzustellen
> sind, hat man den Oszillator auf max. 16MHz festgelegt. Da dieser auch
> Eingang für den externen Takt ist, bleibts auch da bei den 16 MHz.

> Für genaue Taktfrequenz bei Frequenzerzeugung ist der Oszillator des
> Kontrollers wahrscheinlich nicht ausreichend. Einfache externe
> Oszillatoren für Digitaltakt ebenfalls nicht. Da wäre ein diskret
> aufgebauter Oszillator eher angebracht.

Was heißt genau? 10 ppm, Temperatur, Grundkalibrierung? Gibt's in fast 
jeder Form und Größe.
20 ppb
http://www.conwin.com/datasheets/cx/cx207.pdf
oder gleich die "Atomtaschenuhr" (< 1 ppb)
http://www.symmetricom.com/products/frequency-references/chip-scale-atomic-clock-csac/SA.45s-CSAC/

von Mick M. (highlow)


Lesenswert?

Manuel Weikert schrieb:
> Das heißt ich kann einen normalen 16MHz Quarz (keinen Quarz-Oszillator)
> an XTAL1 - XTAL2 anschließen, wie ich es auch vom ATmega gewoht bin?

ja ;)

von Manuel W. (wanie)


Lesenswert?

Hat wunderbar funktioniert.
Gab zuerst noch kleine Fragezeichen, mit den Registern die für 
Clockauswahl zuständig sind, hat sich aber dann schnell geklärt.
Hat mich einfach ein wenig verwirrt, das im Datenblatt 
"Quarz-Oszillator" steht, obwohl damit scheinbar auch ein normaler Quarz 
gemeint ist.

Finde es genial, dass man nun die Taktquelle im Programmablauf selbst 
ändern kann, und diese nichtmehr in die fuses geschrieben werden muss.

PS: Mit dem Quarz bin ich gerade noch so im Toleranzbereich der 
erzeugten Frequenz, werd mir also den diskreten Oszillator erstmal 
sparen. ;-)

Gruß
Manuel

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.