Hallo! Ich entwerfe grade eine Schaltung mit CAN Anbindung. Den µC möchte ich mit 16MHz takten, bin mir aber nicht sicher, ob ein Quarz ausreichend genau ist oder ob ich einen Oszillator benötige. Kennt sich wer aus und kann mir bei der Auswahl helfen? Danke!
Ausreichend genau für was? Und ist ein Oszillator wirklich "besser" als ein Quarz? Welche Typen vergleichst Du?
>ob ein >Quarz ausreichend genau ist oder ob ich einen Oszillator benötige. Welche Art von Oszillator meinst du? Es gibt alle möglichen Arten von Oszillatoren, auch welche mit Quarz. Und die sind so genau wie der eingebaute Quarz. Dazu macht das Datenblatt Angaben. Wenn du einen Quarz an den µC anschließt, ist das auch ein Quarzoszillator. Ablagen um weniger als +/- 100ppm sind Standard. Es gibt natürlich Quarzoszillatoren mit erhöhter Genauigkeit - hin bis zu temperaturgeregelten Typen. Ich habe die Forderungen des CAN-Busses nicht im Kopf. Aber in den Spezifikationen sollte schon stehen, welche Toleranzen verkraftet werden.
HildeK schrieb:
> Und die sind so genau wie der eingebaute Quarz.
Interner RC Oszillator. Nicht Quarz ;) ;)
Da reicht wohl jeder Quarz, sind alle im ppm Bereich genau. Ein Oszillator macht genau das gleiche, nur ist der Treiber mit drin.
Danke schon mal für die Antworten. ich vergleiche Quarzoszillatoren (z.B. den hier: http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=B45;GROUPID=4004;ARTICLE=85031;START=0;SORT=artnr;OFFSET=16;SID=27f2mIwqwQARsAAEtMMWs3787bb5a6953d9db2c2007ab6770438a ) mit Quarzen (z.B. den hier: http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=B44;GROUPID=4003;ARTICLE=84995;START=0;SORT=artnr;OFFSET=16;SID=27f2mIwqwQARsAAEtMMWs3787bb5a6953d9db2c2007ab6770438a ) Wichtig für den CAN Bus is meines Wissens nach eine Toleranz von 0.4% und ein Duty Cycle von 45% - 55%. Die Toleranz scheint nicht so das Problem zu sein, wohl aber der geforderte Duty Cycle. Für den Quarz ist er mit 40-60% angegeben, beim Oszillator sehe ich leider keine Vergleichbare Information.
>Für den Quarz ist er mit 40-60% angegeben, beim >Oszillator sehe ich leider keine Vergleichbare Information. Umgekehrt. Der Quarz kann keine Angaben zum Duty-Cycle haben - die ergeben sich erst die Art der Oszillatorschaltung. Wenn du wirklich einen sehr guten 50% Duty-Cycle haben willst: nimm 32MHz und teile das Signal mit einem '74er durch 2. @Simon K. Siehe Antwort von Helmut Lenzen.
Standard - Oszillatoren brauchen alleine ungefähr so viel Strom, wie ein ATMEGA32 mit Quarz, ein SJA1000, ein Transceiver und ein OLED zusammen..... Otto
>Umgekehrt. >Der Quarz kann keine Angaben zum Duty-Cycle haben - die ergeben sich >erst die Art der Oszillatorschaltung. >Wenn du wirklich einen sehr guten 50% Duty-Cycle haben willst: nimm >32MHz und teile das Signal mit einem '74er durch 2. Ja stimmt, der Quarz hat keine Angaben zum Duty-Cycle, der Oszi schon. Den Takt zu Teilen würde ich zur Not machen, aber lieber wäre mir ein 16MHz Quarzoszillator, der auch so meinen Anforderungen genügt. Du scheinst dich in der Materie gut auszukennen, kannst Du mir einen entsprechenden Baustein empfehlen? >Standard - Oszillatoren brauchen alleine ungefähr so viel Strom, wie ein >ATMEGA32 mit Quarz, ein SJA1000, ein Transceiver und ein OLED >zusammen..... Das wusst ich noch nicht, danke für den Hinweis. Der Gesamtstrom darf 500mA nich überschreiten, also werde ich das mal ein Auge drauf werfen.
> Der Gesamtstrom darf 500mA nich überschreiten so viel wird es nicht werden - ein Standard-Oszillator nimmt etwa 45mA und damit kannst Du die o. g. Bauteile betreiben (je nach Anzeige auf dem OLED). Ein 16MHz-Quarz an einem SJA1000 und ATMEGA reicht für CAN-Kommunikation bis ca. 1 MBaud. Otto
>Ein 16MHz-Quarz an einem SJA1000 und ATMEGA reicht für CAN-Kommunikation >bis ca. 1 MBaud. Jep, die 16MHz reichen bei meinem MSCAN modul auch genau bis 1MBaud. Höhere Datenraten sind mir bisher nicht begegnet, deswegen auch genau dieser Wert für die Taktfrequenz. Wie hast Du das Problem mit dem Duty Cycle bei deiner Schaltung gelöst?
>Du scheinst dich in der Materie gut auszukennen, Das nennt man 'Honig um's Maul schmieren' :-) >kannst Du mir einen entsprechenden Baustein empfehlen? Nein - leider nicht. Auf den Seiten http://www.jauch.de/pages/eu_quartz_crystal_oscil.php5 oder http://www.vectron.com/products/xo/xo_index.htm sind eine Menge Oszillatoren mit Datenblätter, aber es wird kaum mal ein engerer Duty-Cycle als 45/55% (mit worst-case 40/60%) spezifiziert. Es gibt aber noch viele andere Hersteller. Wo bzw. wieso ist denn der Duty-Cycle so wichtig? >ein Standard-Oszillator nimmt etwa 45mA Diejenigen, die ich jetzt kurz angeschaut habe (siehe Links), liegen eher bei 10...15mA für einen 16MHz-Oszillator. Doch nicht so schlimm ... >Ist ein Quarz nicht ein Oszillator? Der Quarz ist das frequenzbestimmende Bauelement in einem Oszillator. Oder Gegenfrage: Ist ein Transistor nicht ein Radio?
Hallo zusammen, prinzipiell mal ist ein Quarz-Oszillator (XO) nichts anderes als ein Quarz mit Beschaltung. Soll es über die Temperatur genauer werden, braucht man einen Temperaturkompensierten Quarzoszillator (TCXO). Schau mal unter www.axtal.com nach, da gibts zhalreiche Infos von Bernd Neubig; am besten gleich das Quarzkochbuch dort runterladen. Wenn Du den AVR mit einem Qaurz beschaltest, solltest Du die bei der Auswahl auf die Angabe der Lastkapazität achten (z.B. 20pF) und den Qaurz auch so beschalten, dass die beiden Kodensatoren + interner Kapazität diesem Wert entsprechen. Damit liegst Du mit der Frequenzablage schonmal in dem Bereich, der im Q-Datenblatt angegeben ist. Aus meiner Steuergeräteentwicklung für ein Stuttgarter Unternehmen mit B am Anfang wurden zwecks Taktung nur Quarze eingesetzt, spezielle Kompensation/Abgleich gab es dazu nicht => von daher behaupte ich dass der Qaurz ausreicht. Timo
> Wie hast Du das Problem mit dem Duty Cycle bei deiner Schaltung gelöst? Mein Quarz kängt am SJA1000 und dieser gibt den Takt über CLKOUT (Teiler auf 1" an den ATMEGA weiter. > Diejenigen, die ich jetzt kurz angeschaut habe (siehe Links), liegen > eher bei 10...15mA für einen 16MHz-Oszillator. Doch nicht so schlimm ... Die worst-case Angabe für einen 16MHz / 5V-Typen in Standard-Ausführung (kein CMOS) aus einem Datenblatt lag bei 45mA
>Wo bzw. wieso ist denn der Duty-Cycle so wichtig?
Hier ein Auszug aus dem Datenblatt meines Controllers:
1 | The clock source has to be chosen such that the tight oscillator tolerance requirements (up to 0.4%) of the |
2 | CAN protocol are met. Additionally, for high CAN bus rates (1 Mbps), a 45% to 55% duty cycle of the |
3 | clock is required. |
Also die Anforderungen an den Duty Cycle gelten nur für den Einsatz bei 1MBaud. Das wird auch der Grund sein, warum in der Steuergeräteentwicklung ein "normaler" Quarz ausreichend ist (Die dort übliche Obergrenze für CAN liegt bei 500kBaud). >> Wie hast Du das Problem mit dem Duty Cycle bei deiner Schaltung gelöst? >Mein Quarz kängt am SJA1000 und dieser gibt den Takt über CLKOUT (Teiler >auf 1" an den ATMEGA weiter. Also wird entweder der SJA1000 besser sein als mein CAN modul, oder aber du hast das gleiche Problem wie ich...
> Also wird entweder der SJA1000 besser sein als mein CAN modul, oder aber > du hast das gleiche Problem wie ich... lass es mich mal so formulieren: 1. im gesamten Datenblatt des SJA1000 gibt es keine Hinweise bzgl. des Duty-Cycle 2. Nein, ich habe keine Probleme mit dem CAN Otto
Nimm nen Quarz, da gibt es keinen "Duty-Cycle". Ein solcher ist nichts anderes als ein vergleichsweise sehr schmalbandiger Filter (Serienresonanz). Was sich hieraus ergibt sollte klar sein.
Der Takt für CAN wird doch intern aus dem Prozessortakt durch Frequenzteilung gewonnen. Deshalb spielt der Duty-Cycle des Prozessortaktes überhaupt keine Rolle für den CAN-Ausgang. Duty-Cycle Specs bei einem Prozessortakt sind ein Thema für den Prozessor an sich, wenn man mit maximaler Taktfrequenz "fährt".
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.