Hallo alle zusammen :P Für mein aktuelles Projekt (STM32F4) benötige ich an meinem Controller einen 25 Mhz Quarz. Allerdings habe ich hier Probleme bei der Auswahl. Ich habe von STM ein Entwicklungsboard. Auf diesem Board befindet sich ein 25Mhz Quarz mit einer Frequenztoleranz von +-20ppm und Frequenzstabilität von +-30ppm. Benötige ich bei meinem Projekt dieselbe Genauigkeit? USB und Can sind ja schließlich Asynchrone Schnittstellen. Somit darf die Frequenz nicht stark abweichen. Ich finde allerdings kaum Quarze mit dieser Genauigkeit. Oft sind nur noch wenige Verfügbar oder die Mindestbestellmenge ist ziemlich hoch. Kennt hier vielleicht jemand einen passenden Quarz? Ich habe auch schon über die Verwendung eines Quarzoscillators nachgedacht. Allerdings finde ich hier nichts unter 1,5€. Außerdem bin ich mir unsicher welche Bauform geeignet ist. Im Endeffekt reicht mir HC49 als SMD. Im Internet habe ich allerdings oft davon gelesen, dass Quarze immer mehr in die SMD Richtung mit 4 Pads gehen. Allerdings muss man dann wieder irgendwie auf den ESR achten, da dieser bei diesen Bauformen doppelt so groß wäre.
Ich sezte bei meinen STM32F1xx Projekten immer den "25,0000-HC49U-S" von Reichelt ein. Bis jetzt noch nie Probleme mit ETH oder USB gehabt. Gruß TK
Von ST gibts eine Appnote zum Thema, die lohnt sich: http://www.st.com/content/ccc/resource/technical/document/application_note/c6/eb/5e/11/e3/69/43/eb/CD00221665.pdf/files/CD00221665.pdf/jcr:content/translations/en.CD00221665.pdf Relevant ist: - ESR muss passen - Lastkapazität muss passen - Obs ein Grundton / Oberton ist muss auch passen. Such einen normalen Grundtonquarz mit 25MHz mit z.B. 18p heraus und kuck in die Appnote, ob er sicher schwingt. Üblicherweise sind die STM32 gutmütig, hatte noch keinen, der seinen Quarz nicht brav auf Anhieb gefressen hat. Nur die Frequenz musste ich manchmal etwas hinziehen, aber das ist normal. Wenn dich 200ppm daneben nicht stören, ist nicht mal das nötig.
Danke schonmal für die vielen Guten antworten :P Ich habe mir die Appnote angesehen, habe allerdings noch hierzu ein paar Fragen zu dem ESR. Angenommen ich entscheide mich für den "25,000000-MQ" von Reichelt. Dieser hat: Last und Temperaturkoeffizent von +-30ppm. ESR = 40Ohm C0 = 5pf. CL = 12pf. Laut der Appnote (S.13-14) muss ich ja jetzt g mcrit ausrechnen. Mit der Formel in der Appnote komme ich auf: 4 x 40Ohm x (2x pie x 25Mhz)^2 x (12pF + 5pF)^2 = 1,1 mA/V Im Datasheet des Controller steht allerdings: Gm_crit_max = 1mA/V. Dann könnte ich diesen Quarz also gar nicht verwenden?? Was genau muss ich bei Grundton / Oberton beachten??
Matthias F. schrieb: > Was genau muss ich bei Grundton / Oberton beachten?? Oberton geht nicht, bzw. würde beim Grundton schwingen. Also nicht verwenden. Matthias F. schrieb: > Laut der Appnote (S.13-14) muss ich ja jetzt g mcrit ausrechnen. > Mit der Formel in der Appnote komme ich auf: > 4 x 40Ohm x (2x pie x 25Mhz)^2 x (12pF + 5pF)^2 > = 1,1 mA/V > > Im Datasheet des Controller steht allerdings: > Gm_crit_max = 1mA/V. > > Dann könnte ich diesen Quarz also gar nicht verwenden?? So siehts aus, wenn die Rechnung stimmt. STM32F4 hat aber eine PLL, daher würde ich da einen langsameren Quarz <=20MHz einsetzen. Damit wären Parameter wie ESR und CL lange nicht so kritisch wie bei 25 MHz. Bei der Genauigkeit muss man für USB und CAN IIRC im Rahmen von +- 500 PPM bleiben. Könnte sogar mehr sein, ich schlage jetzt nicht in den Specs nach.
Matthias F. schrieb: > Dann könnte ich diesen Quarz also gar nicht verwenden?? Verwenden ginge schon, aber man kann nicht mehr sicher sagen, das er immer anschwingt. Am Labortisch wird es gehen. Für die Auswahl eines Quarzes würde ich das nicht akzeptieren. > Was genau muss ich bei Grundton / Oberton beachten?? Was man braucht, hängt davon ab, in welchem Modus der Oszillator arbeitet. Das geht entweder auf der Grundwelle (Eigenfrequenz des Quarzes) oder z.B: auf der 3. Oberwelle. Ich habe bisher immer Grundtonquarze verwendet. Beim Obertonquarz wäre ich nicht sicher, wie ich den am Controller dazu bekomme, auf seiner Oberwelle zu laufen. Noch zur Genauigkeit: Für Ethernet sinds glaube ich 100ppm Bei USB reden wir für fullspeed von 2500ppm (0,25%) Daher: Für Ethernet geht fast jeder Quarz, für USB reichen sogar gute Keramikresonatoren.
>Beim Obertonquarz wäre ich nicht sicher, wie ich den am Controller dazu >bekomme, auf seiner Oberwelle zu laufen. Wie gesagt - bei meinen Projekten mit dem F1 habe ich mit so einem Quarz noch nie Probleme gehabt. TK
> STM32F4 hat aber eine PLL, daher würde ich da einen langsameren Quarz > <=20MHz einsetzen. Damit wären Parameter wie ESR und CL lange nicht so > kritisch wie bei 25 MHz. Stimmt das ist der einfachste Weg um dem entgegen zu wirken :-P > Noch zur Genauigkeit: > Für Ethernet sinds glaube ich 100ppm > Bei USB reden wir für fullspeed von 2500ppm (0,25%) > Daher: Für Ethernet geht fast jeder Quarz, für USB reichen sogar gute > Keramikresonatoren. > Bei der Genauigkeit muss man für USB und CAN IIRC im Rahmen von +- 500 > PPM bleiben. Könnte sogar mehr sein, ich schlage jetzt nicht in den > Specs nach. Ok, das sind ja alles noch Werte von denen ich weit entfernt sein sollte, denke ich. Vielen dank :-D Damit sollten alle meine Fragen beantwortet sein.
Gerade habe ich es durch Zufall im Datenblatt des Controllers gefunden. Hier steht was wegen +-500ppm bei USB. Bei anderen Schnittstellen steht hier jetzt nichts.
Matthias F. schrieb: > Gerade habe ich es durch Zufall im Datenblatt des Controllers gefunden. > Hier steht was wegen +-500ppm bei USB. Bei anderen Schnittstellen steht > hier jetzt nichts. LIN Master < +/-500 ppm LIN Slave, RS/TIA-232 < +/-1500 ppm CAN < +/-300 ppm CAN-FD < +/-150 ppm Gemeint ist jeweils die Abweichung zur Nominalfrequenz inklusive Temperatur und Alterung. Für den Quarz wird im Datenblatt nur die Abweichung durch Temperatur und Alterung angegeben. Wieweit der Mittelwert der Frequenz danebenliegt hängt ab vom Controllertyp (dessen Treiberleistung man meist über Fusebits einstellen kann), von der Leiterplatte und von den Lastkapazitäten. Üblicherweise misst der Quarzhersteller das im Rahmen der Anschwingreserve-Untersuchung aus und passt die Grundfrequenz des Quarzes entsprechend an. So wird das Toleranzfeld zentriert. Ein Oberwellen-Quarz wird an dem Pierce-Oszillator eines Microcontrollers auf seiner Grundwelle schwingen. Das ist meist 1/3 der Nennfrequenz. Durch einen Saugkreis auf der Grundwelle kann man ihm das abgewöhnen.
Matthias F. schrieb: > Für mein aktuelles Projekt (STM32F4) benötige ich an meinem Controller > einen 25 Mhz Quarz. Dann kauf dir einen im heutzutage üblichen vierpoligen 5x7 oder 3.2x5 oder 2.5x3.2 mm SMD-Format oder setze einen gleichgroßen SMD-Quarzoszi ein oder guck nach einen zweipoligen im ca. 3.5x7 mm Format. Ein Quarzoszi sollte aber digitaltauglichen Ausgang haben. TCXO's haben meist nur gekappten Sinus, da ist Fummeln angesagt. Ansonsten wundert mich deine Quarzwahl ein wenig. Warum gerade 25.000 MHz? Wenn man USB betreiben will, ist ein glatter Teil von 48 MHz (24, 12, 8, 6 oder so) deutlich angenehmer. Zumeist geht auch ein glatter Teil von 72 MHz, weil einige Typen einen 2:3 Teiler im Taktschema vorhalten - deswegen vorher nachschauen. Aber so einen ollen Blechtopf würde ich nie wieder einsetzen, wenn mich nicht einer dazu prügelt. W.S.
W.S. schrieb: > Ansonsten wundert mich deine Quarzwahl ein wenig. Warum gerade 25.000 > MHz? Wenn man USB betreiben will, ist ein glatter Teil von 48 MHz (24, > 12, 8, 6 oder so) deutlich angenehmer. Zumeist geht auch ein glatter > Teil von 72 MHz, weil einige Typen einen 2:3 Teiler im Taktschema > vorhalten - deswegen vorher nachschauen. Vielfache von 4MHZ wären gut: 4x25/4 = 25MHz (Ethernet) 4x12 = 48MHz (USB) Vorausgesetzt, der Controller hat zwei PLLs mit postscaler, was eigentlich gängig ist für USB-Typen. Günstig sind dann 8, 12 und 16MHz. Bei 8 und 16MHz ist die Auswahl recht gut. Für STM32 kann man für solche Kalkulationen das CUBE-MX-Tool verwenden: http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html Praktisch.
> Vielfache von 4MHZ wären gut: > 4x25/4 = 25MHz (Ethernet) > 4x12 = 48MHz (USB) > Vorausgesetzt, der Controller hat zwei PLLs mit postscaler, was > eigentlich gängig ist für USB-Typen. Günstig sind dann 8, 12 und 16MHz. > Bei 8 und 16MHz ist die Auswahl recht gut. > Für STM32 kann man für solche Kalkulationen das CUBE-MX-Tool verwenden: Ich habe mich jetzt für einen 16Mhz Quarz entschieden. Wobei man mit dem Cube durch das PLL ja eigentlich mit jedem Quarz fast jede Frequenz erzeugen kann. Eine Frage habe ich aber noch. Bei meiner Rechnung weiter oben im Forum scheint noch etwas faul zu sein. Ich habe im Anhang eine Excel Datei eingefügt, welche g mcrit automatisch anhand der Formel in der Appnote ausrechnet. Ein paar Quarze habe ich auch schon gefunden, welche rechnerisch passend sind. Das angehängte PDF beeinhaltet das Datenblatt des Quarzes auf dem Entwicklungsboard (HC-49S-C16QSA-25M). Wenn ich allerdings mit diesen Daten rechne komme ich auf einen g mcrit von 2 obwohl doch scheinbar 1 die Grenze ist. Habe ich hier noch irgendwie einen Denkfehler??
Matthias F. schrieb: > Wobei man mit dem Cube durch das PLL ja eigentlich mit jedem Quarz fast > jede Frequenz erzeugen kann. > > Eine Frage habe ich aber noch. > Bei meiner Rechnung weiter oben im Forum scheint noch etwas faul zu > sein. Du solltest ganz einfach lernen, sowas wie die Taktversorgung selbst aufzusetzen - anstatt immer nur irgendwelche ach so bequemen Tools blind zu benutzen. Durch letzteres wird man nämlich immer unselbständiger bis hin zum völligen Eunuchentum. W.S.
W.S. schrieb: > Du solltest ganz einfach lernen, sowas wie die Taktversorgung _selbst_ > aufzusetzen - anstatt immer nur irgendwelche ach so bequemen Tools blind > zu benutzen. Durch letzteres wird man nämlich immer unselbständiger bis > hin zum völligen Eunuchentum. Die Taktversorgung von modernen FPGAs und Prozessoren ist recht kompliziert. Dabei alle Randbedingungen (wie max. mögliche Multiplikatoren) berücksichtigen etc pp ist nicht simpel. Warum sollte man da zwanghaft das auf Papier machen, wenn es ein Tool gibt, welches diese vielen Randbedingungen berücksichtigt? D.h. schneller + genauer gehts mit Tool. In der Arbeitswelt zählen Resultate, keine Selbstkasteiung. ICH bin um jedes Tool froh, das mir das Leben erleichtert. Die gesparte Zeit fließt dann in die Applikation oder Schaltung, nicht die Taktgenerierung.
> ICH bin um jedes Tool froh, das mir das Leben erleichtert. Die gesparte > Zeit fließt dann in die Applikation oder Schaltung, nicht die > Taktgenerierung. Sehe ich auch so :P Weiß jemand ob an meiner Rechnung was falsch ist? Oder benutze ich eine falsche Formel? Weil rein von der Theorie dürfte dann ja nicht mal das Entwicklungsboard gehen
> Noch zur Genauigkeit: > Für Ethernet sinds glaube ich 100ppm Im Datenblatt des PHY steht sogar +-50ppm sehe ich gerade bei Frequenztoleranz und Frequenz Stabilität
Praktische Erfahrung (inkl. EMV-Tests und mehrjährigemn Feldeinsatz in F0/F1/F4/KSZ8721): ABM3B-25.000MHZ-B2-T ABLS-25.000MHZ-B2F-T ABM3B-8.000MHZ-B2-T Mit der Oszillatordoku kann man sich wirklich sehr ausführlich beschäftigen - freut mich, dass Du Dir das angetan hast. Es ist halt ein Unterschied, ob dat Dingen mal kurz auf dem Basteltisch läuft oder bei Wind und Wetter jahrelang draußen seinen Job machen soll. Eine Besonderheit hat die PLL des F4 - die jittert deutlich stärker als beim F1. Das hat zur Folge, dass eine über die PLL versorgte Ethernet-PHY höhere Fehlerraten auswirft. Daher entweder: zwei Quarze für (e.g. 8MHz) F4 und (e.g. 25MHz) PHY, oder Takt in PHY erzeugen und in den F4 zurückspeisen.
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.