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 ???
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.
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.
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!)
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.
@ 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. :-(
> 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 %...
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.
@ 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
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.
>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.
> 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.
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.
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??
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.