Quarz vs Resonator

Gast #609583
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 ???
Gast #609623
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.
#609635
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!)
#609666
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.
Gast #609683
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. :-(
#609695
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 %...
Gast #609872
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
Gast #609881
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.
(Firma: TravelRec.) Persönliche Seite #609893
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.
#610035
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.
Gast #610130
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.
Gast #610285
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??
Gast #610421
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.
Gast #610473
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren