Forum: Mikrocontroller und Digitale Elektronik Quarz vs Resonator


von Annika (Gast)


Lesenswert?

Hi !

Ich habe eine Frage bezüglich der externen Taktquelle eines
atmega32
und zwar ist momentan alles noch mit standard bauteilen aufgebaut, soll 
aber eine SMD Version umgesetzt werden.
Kann ich da einen 8,0000-HC49U-S (8MHz Quarz)
gegen einen CSTCC 8,00 (8MHz SMD Resonator)
tauschen ?? Oder gibt das eventuell Probleme bei Kommunikations 
Anwendungen, also UART ???

von Johannes M. (johnny-m)


Lesenswert?

Wenn der Resonator tatsächlich die Angabe "8,00" bzw. "8.00" trägt, dann 
liegt die Abweichung von den 8 MHz unter 0,01 MHz, also unter 1/8 
Promill. Das reicht für asynchrone Datenübertragung dicke aus.

von Nullpointer (Gast)


Lesenswert?

Die Keramikresonatoren haben die Kondensatoren meist bereits eingebaut, 
die Quarze nicht. Es gibt uebrigens auch SMD Quarze, zb im SMU4 
gehaeuse, ich bevorzuge aber zur Zeit HC49 im 4mm hohen Gehaeuse fuer 20 
Euro @100 Stueck,  wohingegen die Keramikresonatoren um die 10 Euro @100 
liegen.

von Rüdiger K. (sleipnir)


Lesenswert?

Bei mittleren Baudraten (2400 baud) hat man eigentlich eine recht große 
Toleranz. Ich habe mal vor kurzem eine Software-UART auf einem Tiny15 
realisiert (wegen IR-Übertragung mit einem TSOP als Empfänger nur 1200 
baud). Diese versagte auch dann nicht als ich dem Tiny15 mit einer Lampe 
etwas einheizte (interner RC-Oszillator!)

von Johannes M. (johnny-m)


Lesenswert?

Rüdiger Knörig wrote:
> Bei mittleren Baudraten (2400 baud) hat man eigentlich eine recht große
> Toleranz. Ich habe mal vor kurzem eine Software-UART auf einem Tiny15
> realisiert (wegen IR-Übertragung mit einem TSOP als Empfänger nur 1200
> baud). Diese versagte auch dann nicht als ich dem Tiny15 mit einer Lampe
> etwas einheizte (interner RC-Oszillator!)
Anmerkung:
Da alle Baudraten aus dem selben Takt durch herunterteilen erzeugt 
werden, ist die Baudrate an sich wurscht, wenn es um die Abweichung 
geht. Der Fehler ist relativ. Wenn z.B. zwei Baudraten sich bei einer 
bestimmten Taktfrequenz mit dem selben "Initialfehler" erzeugen lassen, 
dann bringt es nichts, bei Übertragungsproblemen durch einen ungenauen 
Oszillator die jeweils andere zu nehmen, weil die dieselbe Prozentuale 
Abweichung hat.

von Falk (Gast)


Lesenswert?

@ Johannes M. (johnny-m)

>Wenn der Resonator tatsächlich die Angabe "8,00" bzw. "8.00" trägt, dann
>liegt die Abweichung von den 8 MHz unter 0,01 MHz, also unter 1/8
>Promill. Das reicht für asynchrone Datenübertragung dicke aus.

Das glaube ich nicht. Resonatoren haben 0,5-1% Toleranz. Die 0,01 MHz 
von 8,00 MHz ist ausserdem nicht 1/8 Promill sondern 1/8 Prozent! 
Ausserdem sagt 8,00 nichts über die Toleranz aus, genausowenig wie 220 
Ohm Kohleschichtwiderstände auf 1 Ohm genau sind (die haben 10% und mehr 
Toleranz). Da kann mit einer höheren Baudrate schon Probleme geben, wenn 
der systematische Fehler schon zu gross ist. Systematischer Fehler duch 
die Rundung von UBRR und Toleranz des Resonators addieren sich und 
sollte <1% bleiben!
Wenn es nicht um einen Großserie geht wo jeder Cent zählt, würde ich den 
Quarz drin lassen.

MFG
Falk

P.S. Hier mal die Baudraten und Fehler eines 8 MHz Quarzes.

Baud      UBRR   Fehler [%]
75        6666   0,0
300       1666   0,0
1200      416    -0,1
2400      207    0,2
4800      103    0,2
9600      51     0,2
14400     34     -0,8
19200     25     0,2
28800     16     2,1
38400     12     0,2
57600     8      -3,5
76800     6      -7,0
115200    3      8,5

P.P.S. Die RC-Takter sterben wohl auch nie aus. :-(

von Johannes M. (johnny-m)


Lesenswert?

> Systematischer Fehler duch
> die Rundung von UBRR und Toleranz des Resonators addieren sich und
> sollte <1% bleiben!
Wie schön wir schon wieder aneinander vorbeireden... Ich habe extra 
(sinngemäß) geschrieben "bei Baudraten mit gleichem "Initialfehler"". Im 
Initialfehler steckt der Rundungsfehler durch den Wert in UBRR drin. 
Nimm aus Deiner Tabelle z.B. 19200 Baud. Wenn es mit denen nicht klappt, 
bringt es überhaupt nichts, bei gleichem Basistakt 2400 Baud zu nehmen, 
die mit dem gleichen Initialfehler behaftet sind.

Und ja, ich habe mich um eine Null vertan. 1/8 Prozent (bzw. kleiner 
als 1/8 Prozent) ist aber noch dicke im grünen Bereich, vorausgesetzt 
eben, die Baudrate lässt sich mit einem ausreichend kleinen Fehler 
überhaupt erzeugen.

P.S.: Allerdings ist zu beachten, dass Resonatoren einen höheren TK 
haben als Quarze. Da hakts dann schon eher wegen der 
Temperaturabhängigkeit. Ein Resonator ist jedoch i.d.R. noch besser als 
der interne RC-Oszillator.

P.P.S.: Grad mal nachgesehen: Die üblichen Toleranzen bei Resonatoren 
liegen tatsächlich um 0,5 %...

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


Lesenswert?

Annika:

UART und Resonator CSTCC 8.00 funktioniert aus Erfahrung bestens und ist 
stabil genug. Laß´ Dir nichts einreden. Selbst bei 9Bit + Parity mußt Du 
Dir keine Sorgen machen.

von Falk (Gast)


Lesenswert?

@ Travel Rec. (travelrec)

>UART und Resonator CSTCC 8.00 funktioniert aus Erfahrung bestens und ist
>stabil genug. Laß´ Dir nichts einreden. Selbst bei 9Bit + Parity mußt Du

Erfahrung? Stabil genug?

Wieviele Boards hast du damit aufgebaut? Wie hast du die Stabilität 
gemessen?

>Dir keine Sorgen machen.

Bei welcher Baudrate? Wenn die Gegenstelle ein PC o.ä. ist, dann kann 
man sich bis zu 3% Fehler leisten, weil der PC garantiert mit einem 
Baudratenquarz praktisch fehlerfrei die Baudrate generiert bzw. 
dekodiert.

MFG
Falk

von Gast (Gast)


Lesenswert?

Wir haben in der laufenden Serie aus Platzgründen von einem Quarz 
(HC49-Typ) auf eine wesentlich kleineren Resonator (SMD) gleicher 
Frequenz gewechselt. Solange der Fehler <2% ist (worse case Betrachtung 
über Freq.-Abweichung und Temp.-abhängigkeit) funktioniert es sicher. Es 
sollte aber auch mal ein Blick in das µC Datenblatt geworfen werden und 
dort geprüft werden, ob Resonatoren als Taktgeber erwähnt werden. Ggf. 
wird auch hier auf WICHTIGES hingewiesen.

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


Lesenswert?

>Erfahrung? Stabil genug?
>Wieviele Boards hast du damit aufgebaut? Wie hast du die Stabilität
>gemessen?

Mit wenigen Ausnahmen alle meine Controllerboards in meinem Umfeld (etwa 
30), außerdem 40 Module für Modelleisenbahnsteuerung. Dabei verwende ich 
teilweise eigene 1- / 2-Wire Interfaces mit bis zu 57600 Baud bei 9Bit + 
Parity. Die Gegenstellen sind entweder AVRs, echte Com-Ports oder 
Com-Port-Adapter. Keine Probleme bisher.

von Andreas K. (a-k)


Lesenswert?

> Da alle Baudraten aus dem selben Takt durch herunterteilen erzeugt
> werden, ist die Baudrate an sich wurscht, wenn es um die Abweichung
> geht. Der Fehler ist relativ.

Bei sehr hohen Baudraten kommt noch die Charakteristik der 
Schnittstellenwandler hinzu. Wenn Laufzeit und Flanke dieser Biester bei 
L=>H und H=>L nicht identisch sind, addiert sich ein bitratenabhängiger 
Fehler. Die Spezifikation des MAX232 endet immerhin bereits bei 120Kbps 
- auch wenn man nicht selten mit dem doppelten davon arbeitet.

Bei der Wahl zwischen 2400 und 19200 ist das allerdings irrelevant.

von Nullpointer (Gast)


Lesenswert?

Wenn man moeglichst viel Baudraten hinreichend genau erzeugen will, 
sollte man sich vom 8MHz verabschieden und auf 7.3728MHz gehen. Der 8Mhz 
bringt die Baudraten ueber 9600 nicht mehr richtig.

von Annika (Gast)


Lesenswert?

Hui, da ist ja doch noch ne ganze Menge herbei gekommen, seit ich das 
letzte mal hier vorbeischaute...
Vielen Dank für die vielen ausführlichen Antworten, auch wenn ich nicht 
alle verstehe :)

Also gut ist schonmal, das ich beide fürs UART verwenden kann.
Jedoch habe ich grade gemerkt, das es ja auch einen 12MHz internal 
Oscillator im FT232RL gibt, mit dem ich dann doch auch über OSCO und 
OSCI meinen atmega mit Takt versorgen kann, oder ist dieser nicht genau 
genug, sollte doch, da er doch direkt für die Kummunikation gedacht ist, 
richtig??

von Nullpointer (Gast)


Lesenswert?

Da musste mal im Datenblatt des FT232RL nachschauen, was der fuer eine 
Genauigkeit und Drift spezifiziert hat. Serielle Kommunikation benoetigt 
besser als 2%. Dann musst auch noch im Datenblatt des Preozessors 
nachschauen, ob du mit 12MHz auch deine Baurate hinreichend genau 
hinbekommst.

von Funkamateur3 (Gast)


Lesenswert?

Hallo Annika,
welche Anforderungen und Umgebungstemperaturen werden an den Quarz 
gestellt. Welche Min. und Maximum Temperturen werden den Quarz und in 
Zukunft Resonator beeinflussen. Ist der Quarz momentan in einem 
Quarzofen.  Wie sieht die Platine aus. Gibt es spezielle HF Bauteile 
bzw. Anforderungen. Welche Baudraten benutzt du. 307k2 oder höher. Was 
hängt an dem UART dran.

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.