Hallo Forum, mein neuestes Projekt dreht sich um den STM32WB55, aber die Frage, die ich habe, ist relativ allgemein: Für die Kommunikation via Bluetooth wird ein 32 MHz Takt mit einer Genauigkeit von +- 50 ppm gefordert. Der uC hat eine interne Beschaltung, mit der der Takt eines externen Quarzes kalibriert werden kann. Hierzu benötigt man allerdings eine zusätzliche hochpräzise Vergleichsquelle mit 32 MHz und ein präzises Oszilloskop, das die Signale messen kann. So viel zum Hintergrund. Meine Anforderungen sind: -32 MHz mit +- 50 ppm Genauigkeit -stabil über einen großen Temperaturbereich (soll im Sommer und Winter draußen verwendet werden) -geringer Stromverbrauch (Batteriebetrieb) Im Moment sieht meine Liste so aus: Quarz: pro: -geringerer Stromverbrauch? -geringerer Preis (bei meinen Stückzahlen unwichtig) contra: -muss aufwendig kalibriert werden (mir sind die Geräte zu teuer) -trotz Kalibrierung nicht unbedingt temperaturstabil? Quarzoszillator: pro: -muss nicht kalibriert werden -temperaturstabil contra: -hoher Stromverbrauch (mind. 5 mA, soweit ich gesehen habe) -lange Anschwingzeit Ich bin mir nicht sicher, wie viel Strom tatsächlich ein Quarz verbraucht und wie temperaturstabil dieser nach der Kalibrierung ist. Wie ist denn die "gängige" Praxis? Haben z.B. Smartphones einen Quarz oder Quarzoszillator? Mir fehlen leider die Erfahrungswerte. Wie handhabt ihr so etwas? Liebe Grüße
Kannst du dir die nicht von deinem Controller ausgaben lassen? Beim STM32 z.B. per MCO. Die laufen doch regelmaessig mit Vielfachen von 8 MHz.
René W. schrieb: > 32 MHz mit +- 50 ppm Genauigkeit Es gibt einen fertigen Modul mit 32 MHz und doppelte Genauigkeit um € 1,35: https://www.conrad.at/de/p/tft680-32-mhz-quarzoszillator-dip-14-cmos-32-000-mhz-20-7-mm-13-1-mm-5-3-mm-1-st-158186.html
René W. schrieb: > -stabil über einen großen Temperaturbereich (soll im Sommer und Winter > draußen verwendet werden) Ziehe einen TCXO in Betracht, die sind mittlerweile nicht mehr teuer. https://www.tme.eu/de/katalog/?s_field=1000011&s_order=desc&search=tcxo&visible_params=2%2C149%2C120%2C32%2C144%2C146%2C42%2C10%2C147%2C150&mapped_params=144%3A1437774%3B
Witzbold schrieb: > Kannst du dir die nicht von deinem Controller ausgaben lassen? > Beim STM32 z.B. per MCO. Die laufen doch regelmaessig mit > Vielfachen von 8 MHz. Ja, ich kann über MCO den Systemtakt ausgeben lassen. Hilft mir aber immer noch nicht, da ich dann noch ein gutes Oszilloskop brauche zum Kalibrieren. Gerald K. schrieb: > Es gibt einen fertigen Modul mit 32 MHz und doppelte Genauigkeit um € > 1,35: Der verbraucht dann aber > 35 mA und ist daher nicht für den Batteriebetrieb geeignet. hinz schrieb: > Ziehe einen TCXO in Betracht, die sind mittlerweile nicht mehr teuer. > > https://www.tme.eu/de/katalog/?s_field=1000011&s_order=desc&search=tcxo&visible_params=2%2C149%2C120%2C32%2C144%2C146%2C42%2C10%2C147%2C150&mapped_params=144%3A1437774%3B Danke! Supply current 1,5 mA max - loving it. Du meinst also auch, dass man bei starken Temperaturschwankungen lieber auf einen Oszillator setzen sollte?
René W. schrieb: > Du meinst also auch, dass > man bei starken Temperaturschwankungen lieber auf einen Oszillator > setzen sollte? Als ich mit MCs (AT89C51) angefangen habe, liefen die mit Quarz völlig problemlos. Ältere AVRs konnte man noch auf full swing fusen, damit sie stabil schwingen. Neuere AVRs laufen aber nur noch in low power und wir hatten Ausfälle. Daher nehme ich jetzt Oszillatoren.
René W. schrieb: > Du meinst also auch, dass > man bei starken Temperaturschwankungen lieber auf einen Oszillator > setzen sollte? Ich bin kein Blauzahnexperte, aber ich hatte schon mal genau dieses Problem. Blauzahn fiel immer wieder aus, und es war schnell klar, dass es an morgendlicher Kälte lag. Abgleich mittels Trimmkondensator brachte keine Besserung, verschob das Problem nur in einen anderen Temperaturbereich. Ersatz des Quarzes durch einen TCXO hat für Ruhe gesorgt.
René W. schrieb: > -trotz Kalibrierung nicht unbedingt temperaturstabil? Auf die Temperaturabhängigkeit hat die Kalibrierung überhaupt keinen Einfluss, das ist nur eine Verschiebung und somit auch nur bei einer bestimmten Temperatur korrekt. Georg
hinz schrieb: > aber ich hatte schon mal genau dieses > Problem. Ich auch. Hatte nach Ausfall der 433MHz-Empfänger auf BT umgerüstet um Markise, Verschattung und Ventilator zu steuern. Im Sommer sinds dann schnell mal 40° im Wintergarten -> nichts geht mehr. Reumütig zurückgebaut.
Ok, danke, genau das hat mich interessiert. Der STM32WB55 hat einen integrierten Temperatursensor mit dem man die Temperatur messen und den Quarz entsprechend "on the fly" kalibrieren könnte. Aber ich schätze mal, dass die Version mit einem Quarzoszillator die deutlich stabilere und zuverlässigere ist.
René W. schrieb: > Danke! Supply current 1,5 mA max - loving it. Du meinst also auch, dass > man bei starken Temperaturschwankungen lieber auf einen Oszillator > setzen sollte? Ganz genau so ist es. Der Hersteller eines Quarzoszillators macht den ganzen Tag lang nichts anderes als genau das Zusammenspiel von Quarz und Oszillatorschaltung zu optimieren. Er kennt das Temperaturverhalten beider Einzelteile und hat auch die entsprechenden Messmittel. Kauft man die Teile separat, kann der Quarzhersteller nur Mutmaßungen über die spätere Oszillatorschaltung anstellen. Gleiches gilt für den Hersteller der Oszillatorschaltung. Wie Du schon richtig erkannt hast, kann man zwar bei einigen Microcontrollern zwar per Software nachjustieren, aber dafür benötigt man eben die besagten Messmittel. So etwas lohnt heutzutage nur noch bei entsprechend großen Stückzahlen (> 100.000 Geräte). Früher(tm) war ja schon ein TCXO wesentlich teurer als ein normaler Quarz oder Quarzoszillator, aber der Preisunterschied hat sich doch drastisch reduziert. Während früher etliche aufwändige Schaltungskniffe für die Temperaturkompensation erforderlich waren, ähnelt die Schaltung heutzutage der eines einfachen Microcontroller: Temperatursensor, ADC, EEPROM, etwas Logik oder ein kleiner Microcontrollerkern. Und alles zusammen auf einem fliegenschissgroßen Stück Silizium statt einer teuren Hybridschaltung. Bei manchen modernen MEMS-Oszillatoren geht die Integration sogar noch weiter; dann ist nicht einmal ein separater Quarzkristall mit Haltedrähten usw. erforderlich, sondern der Resonator ist auch in denselben Chip geätzt.
Andreas S. schrieb: > Kauft man die Teile separat, kann der Quarzhersteller nur Mutmaßungen > über die spätere Oszillatorschaltung anstellen. Gleiches gilt für den > Hersteller der Oszillatorschaltung. Bei größeren Stückzahlen schickt man dem Quarzhersteller die Leiterplatte mit dem Serienlayout und dem Mikrocontroller, und der passt dann Quarzschliff, Peripheriebeschaltung und Fusebits des Controllers so an, dass sich die optimalen Bedingungen ergeben. Bzgl der Fusebits muss man meist mithelfen. Eine Spezial-SW erstellen, wo der Quarzhersteller die in Frage kommenden Bits über Jumper oder ähnliches auswählen kann. BTW: nur weil im Datenblatt des Controllers für bestimmte Frequenzbereiche bestimmte Konfigurationen (fuse bits) empfohlen werden heisst das nicht dass die auch tatsächlich für den verwendeten Quarz und das verwendete Layout das Optimum darstellen. Maßgeblich ist die Vorgabe des Quarzherstellers.
Oh, noch ein weiterer Aspekt: im Vergleich zu den heutigen winzigen Gehäusen für manch einen Microcontroller sind viele Quarzgehäuse schon riesig. Um eine störungsarme Anbindung des Quarzes zu erreichen, muss er aber samt seiner Lastkondensatoren und ggf. eines Serienwiderstandes in unmittelbarer Nähe der entsprechenden Pins platziert werden. Das steht wiederum im Widerspruch zu der Vielzahl anderer Leiterbahnen, die vom Microcontroller ausgehen. Einen separaten Oszillator kann man jedoch ggf. etliche Zentimeter entfernt auf die Leiterplatte werfen. Ggf. versieht man seinen Ausgang mit einem Serienwiderstand zur Impedanzanpassung.
Ich habe auch ein Projekt mit einem STM32WB55CEU6. Dort habe ich auch Bluetooth ausgeführt, aber noch nicht bestückt. Ich habe von der Beschaltung mich an das entsprechende NucleoBoard gehalten und auch den dort verwendeten Quarz benutzt. Der µC braucht keine externen Kondensatoren für den 32MHz Quarz. Daher beobachte ich dieses Thema mal. Ich gehe davon aus, dass du dich eher auf das Routing deiner Antenne konzentrieren solltest, hier musst du die Auswahl der Bauteile genau ermitteln. Ich bin mal gespannt.
:
Bearbeitet durch User
Ben S. schrieb: > Ich habe von der > Beschaltung mich an das entsprechende NucleoBoard gehalten Soweit ich es verstanden habe wirst du es aber nicht vermeiden können den Takt zu kalibrieren (wegen Bauteiltoleranzen etc.). Die Nucleo Boards wurden schon vermessen und der entsprechende Kalibrierungsfaktor wurde im uC gespeichert. Kannst ja gerne dann mal berichten wie du vorankommst. Ben S. schrieb: > Ich gehe davon aus, dass du dich > eher auf das Routing deiner Antenne konzentrieren solltest Alles zu seiner Zeit
René W. schrieb: > Soweit ich es verstanden habe wirst du es aber nicht vermeiden können > den Takt zu kalibrieren (wegen Bauteiltoleranzen etc.). Wenn das so ist, dann muss ich das aber nur einmal machen - nämlich Boardspezifisch, es sei denn ich habe unglaubeloche Toleranzen bei den Bauteilen. Deswegen nimmt man einen Quarz mit weniger als 20ppm. Aber wie das häufig so ist gehe ich davon aus, dass das auch ohne höchstgenaue Kalibrierung relativ gut auf Anhieb funktionieren wird. Vor allem muss man zur Quarzkalibirierung nichts umlöten. Führe einfach ein Testpad von MCO nach aussen. Anschließend gibts du dort den HSE / 16 nach aussen, das wären 2MHz. Damit sollte man relativ gut arbeiten können und den auch fix auf ungefähr genaue 2MHz eingestellt haben.
:
Bearbeitet durch User
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.