Forum: Mikrocontroller und Digitale Elektronik STM32 - Oscillator / Werte / Fragen


von Ben K. (bkaiser)



Lesenswert?

Hallo,

ich mache gerade erste Ausflüge in Richtung STM32 und möchte gerne einen 
STM32F103C8T6 in einem Projekt verwenden. Natürlich kommt man irgendwann 
auch zum Thema Oszillator und nachdem ich nun diverse (Demo) 
Board-Schematics, Datasheets und Application Notes durchgelesen habe, 
bin ich etwas verwirrt - beim AVR war das gefühlt irgendwie klarer.

Ich möchte gerne einen Crystal von YXC (Datasheet im Anhang) verwenden. 
Ich weiß, China, aber beim AVR hab ich bisher mit denen gute Erfahrungen 
gemacht (aber keine Sorge, ich bin  nicht beratungsresistent :-D). Der 
Crystal hat eine Frequenz von 8Mhz und eine Load Capacity von 20pf (ich 
habe zwar irgendwo gelesen, dass man sich an den Bereich 7pf für den 
STM32 orientieren soll, finde aber in dem Datasheet keinen Hinweis 
darauf). Im Application Note AN2867 wird die Berechnung der nötigen 
Kondensatoren ja sehr detailliert erklärt. Ich habe die Werte mit der 
folgenden Seite berechnet, die sich an der Application Note orientiert:

https://helios.wh2.tu-dresden.de/~benni_koch/stmcalculator/

Ich bin nun zu den Werten der Schaltung im Anhang (crystal.png) gekommen 
und würde mich sehr über Feedback und Erfahrungsberichte freuen.

Das ganze ist für mich ein Übungsprojekt, dass ich zum lernen benutze, 
Erklärungen nehme ich deshalb gerne an. :-)

Neben dem Feedback zu den errechneten Werten habe ich noch ein paar 
weitere Fragen:

1) Manche STM32 Boards haben den Widerstand R3 (in meiner Schaltung) 
drin, manche nicht. Manche mit 1M Ohm, manche mit 10M Ohm. Im Datasheet 
und Application Note finde ich nicht wirklich etwas dazu, was hat es 
damit auf sich und wie errechne ich den Wert? Handelt es sich dabei um 
den Feedback Widerstand? Der sollte ja bereits im STM32 verbaut sein, 
trotzdem sehe ich ihn in manchen Schematics...

2) Manche STM32 Boards haben den RExt (siehe Anhang 
crystal_datasheet.png) verbaut, manche nicht. Warum?

Herzlichen Dank für jegliche Infos. :-)

Mit freundlichen Grüßen,

Ben

von W.S. (Gast)


Lesenswert?

Benjamin K. schrieb:
> ich mache gerade erste Ausflüge in Richtung STM32 und möchte gerne einen
> STM32F103C8T6 in einem Projekt verwenden. Natürlich kommt man irgendwann
> auch zum Thema Oszillator und nachdem ich nun diverse (Demo)
> Board-Schematics, Datasheets und Application Notes durchgelesen habe,
> bin ich etwas verwirrt - beim AVR war das gefühlt irgendwie klarer.

Mach es dir doch nicht so kompliziert!
Also, dein erstes Schaltbild ist schon völlig OK. Allerdings sind 30 pF 
ungewöhnlich, da außerhalb der üblichen E-Reihe. Nimm also irgend etwas 
im Bereich 27 .. 39 pF und fertig. Den Widerstand quer über den Quarz 
kannst du getrost mit auf der LP vorsehen, er ist aber bei dem von dir 
angezielten µC nicht wirklich nötig. Es gibt aber Controller, wo so ein 
Widerstand erforderlich ist, z.B. bei (zumindest einigen) Kinetis von 
Freescale. Also gewöhne dir an, einen vorzusehen, man braucht ihn ja 
nicht zu bestücken, wenn er überflüssig ist. Du willst ja wohl 
hoffentlich nicht nur bei STM32 bleiben, sondern deinen Horizont etwas 
weiter haben.

W.S.

von Ben K. (bkaiser)


Lesenswert?

Danke! Das mit der E-Reihe macht Sinn und hab ich gar nicht so recht auf 
dem Schirm gehabt. :-)

von Gerd E. (robberknight)


Lesenswert?

Benjamin K. schrieb:
> 2) Manche STM32 Boards haben den RExt (siehe Anhang
> crystal_datasheet.png) verbaut, manche nicht. Warum?

Weil die Entwickler es sich einfach machen wollten und "das ging schon 
immer ohne"...

Sinnvoll ist er
- um die Verlustleistung des Quarz zu begrenzen und ihn so nicht zu 
überlasten. Vor allem bei kleinen Quarzbauformen wichtig.
- um die Anschwingreserve testen zu können: bei der Qualifizierung des 
Designs Stück für Stück immer höhere Widerstandswerte einlöten und 
testen ab wann er nicht mehr sauber anschwingt (mit verschiedenen 
Temperaturen testen). In der Praxis dann genug Abstand davon halten.
- um den Strom in den Quarz und damit Verlustleistung messen zu können

Mit 620 Ohm wie in Deinem Schaltplan könnte der ein bischen hoch sein. 
Ich nehme meist 100 Ohm.

von M. Н. (Gast)


Lesenswert?

W.S. schrieb:
> Mach es dir doch nicht so kompliziert!

Bei einem STM ist das zwar richtig. Dennoch macht es schon Sinn, sich 
mal mit der Theorie auseinanderzusetzen. Man kann durch die 
Kondensatoren die Frequenz und Schwingungsgüte doch ganz schön 
beeinflussen. Wenn man bspw. eine PLL für RF Applikationen hat, 
empfiehlt es sich da etwas darauf zu achten, da sich der Fehler sonst 
durch die Frequenzvervielfachung ganz schön vergrößert.

Generell gilt: Datenblatt des Chips (hier STM) lesen.

Benjamin K. schrieb:
> Manche STM32 Boards haben den Widerstand R3 (in meiner Schaltung)
> drin, manche nicht.

Du kannst dir ein Quarz elektrisch wie eine RLC-Serienschaltung 
vorstellen. Der Widerstand R3 ist dafür da, dass der Oszillator sicher 
anschwingt. Der Widerstand sollte recht groß sein, damit er, da er 
parallel zum Quarz sitzt, dessen Schwingungsgüte nicht allzu sehr 
abdämpft.

Benjamin K. schrieb:
> 2) Manche STM32 Boards haben den RExt (siehe Anhang
> crystal_datasheet.png) verbaut, manche nicht. Warum?

Der Serienwiderstand zwischen dem Ausgang des aktiven Teils in Richtung 
Quarz ist gerade bei Digitalen Komponenten häufig weggelassen. Dieser 
sorgt ggf. für eine schwächere Ankopplung des Quarzes => schlechtere 
ankopplung an den Kreis führt zu höherer Schwingungsgüte. Andere Gründe 
für den Widerstand können auch von IC Seite her angebracht sein => 
Datenblatt lesen. Ebenso dies:

Gerd E. schrieb:
> Sinnvoll ist er
> - um die Verlustleistung des Quarz zu begrenzen und ihn so nicht zu
> überlasten. Vor allem bei kleinen Quarzbauformen wichtig.
> - um die Anschwingreserve testen zu können: bei der Qualifizierung des
> Designs Stück für Stück immer höhere Widerstandswerte einlöten und
> testen ab wann er nicht mehr sauber anschwingt (mit verschiedenen
> Temperaturen testen). In der Praxis dann genug Abstand davon halten.
> - um den Strom in den Quarz und damit Verlustleistung messen zu können

Die externen Kondensatoren gegen Masse sind gemäß der Datenblätter des 
IC und des Quarzes zu bestimmen. Im Datenblatt des Quarzes steht eine 
Lastkapazität, die der Quarz idealerweise erwartet. Achtung! Aus Sicht 
des Quarzes sind beide Kapazitäten in Reihe und nicht wie häufig 
angenommen parallel. Deshalb:

In der Regel sind beide Kapazitäten gleich groß:

Typischerweise liegen die Werte im unteren 2-stelligen pF Bereich. In 
diesem Bereich ist dann auch die Kapazität der Leiterbahnen und des ICs 
relevant und sollte in die Berechnung mit einfließen. Also auch hier 
wieder: Datenblatt lesen.

Sehr häufig wird auch von den Chipherstellern, gerade im digitalen 
Consumerbereich das Ganze recht schlecht dokumentiert, da schlichtweg 
nicht notwendig. Eine Angabe zur Pin-Kapazität erfordert auf 
Chip-Herstellerseite in der Regel mindestens eine Charakterisierung 
dieser und bedeutet Aufwand. Deshalb wird meist rein über die zu 
erwartenden Range + ein paar Sigma eine Empfehlung ausgesprochen, was 
eine genaue Berechnung ggf. sinnlos macht.

Selbst wenn die Größen charakterisiert wurden, bleiben es meist eh 
bessere Schätzeisen. Das sieht man am temperatursensor des STMs. Dieser 
hat eine relativ große Streuung. Das Datenblatt sagt dazu: guaranteed by 
characterization. Konkret beduetet das dann: Irgendwer hat bei ST 10 
Chips aus der Grabbelkiste genommen und die mal in der Temperaturkammer 
hoch und runter gefahren. Zusammen mit den Simualtion aus der 
Asic-Entwicklung wird dann eine Grenze aus Wert +- n*Standardabweichung 
gemacht. Konkret kann man sich da eigentlich nur auf kalbibrierte Größen 
verlassen, die entweder im Wafer-Level_Test gemessen wurden, oder 
besser, am Ende im Finaltest.

Edit: Zuletzt noch ein Tipp aus der Hobby-Praxis:
W.S. hat da schon recht. Machs irgendwie. Quarz ran + 22 pF. Wird schon. 
Footprint für Parallel- / Serienwiderstand vorsehen. Die Kerkos, die man 
im pF Bereich so kauft streuen sowieso wie Sau. Ob man da 27 pF oder 22 
pF kauft, ist quasi egal. Wenn ich mich an die Beschaltung im Datenblatt 
gehalten habe, ist bei mir bis jetzt jeder Quarz angeschwungen.

von Ben K. (bkaiser)


Lesenswert?

Danke für die Antworten, hat mir sehr geholfen etwas mehr Sicherheit zu 
bekommen. :-) Ja, einfach machen ist richtig, aber ich interessiere mich 
wirklich für die Materie und möchte nicht einfach nur irgendwas 
zusammenklöppeln. ;-)

Herzlichen Dank an alle!

Mit freundlichen Grüßen,

Ben

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
Noch kein Account? Hier anmelden.