Forum: Mikrocontroller und Digitale Elektronik STM32F4 Quarz Amplitude zu gering


von Sven (Gast)


Lesenswert?

Hallo,

ich hab hier 3 selbstgeroutete Boards mit STM32F407, und habe ein 
Problem mit dem Quarz.
Ich benutze einen 8MHz Quarz, dazu 2 x 22pF und den Serienwiderstand 
220R.
Wenn ich meine Software auf meiner eigenen Platine laufen lasse, messe 
ich mit dem Oszi an den Quarz-Pins eine Spannungsdifferenz von nur ca. 
0.4V Spitze-Spitze.

Wenn ich DIESELBE Software auf dem Discovery Board laufen lassen, messe 
ich ca. 3.4V (der schwingt sogar noch über den Versorgungsbereich 
hinaus).

Die geringe Amplitude auf meinem eigenen Board führt dazu, dass die 
Software gelegentlich nicht hochläuft, weil sich die PLL nicht 
stabilisiert.

Ich habe schon Quarz, R und Cs vom Discovery auf mein Board umgelötet, 
keine Änderung. Ich habe mit unterschiedlichen Bauteilwerten (R und C) 
im Bereich plus minus Faktor 3 experimentiert, keine signifikante 
Änderung.

Ich nutze in meinem Layout einen SMD-Quarz HC-49US statt eines 
Durchsteckbauteils wie beim Discovery. Ober- und Unterseite der Platine 
sind mit Masse geflutet. Die Leiterbahnen zum Quarz sind zwar eine 
Kleinigkeit länger als beim Discovery, aber wirklich nur minimal. Die 
Pads sind beim SMD Quarz deutlich größer.

Die Analogversorgung des Prozessors (soweit ich weiss hängt an der die 
Takterzeugung) läuft bei mir durch eine Induktivität, ich habe 
testhalber aber auch mal direkt angeschlossen, alles irrelevant.

Da der Quarz auf meinem Board im Vergleich zum Discovery kaum schwingt 
glaube ich an einen anderen, systematischen Fehler. Alle bisherigen 
Versuche haben kaum Einfluss gezeigt.

Gibt es hier was in den Option Bytes was ich übersehen habe, kann man 
durch externe Beschaltung anderer Pins (pullup/down) den Oszillator 
beeinflussen? Die Beschaltung der beiden Quarz-Pins ist wie beim 
Discovery, die Software identisch...

Was hab ich übersehn? Danke!
Sven

von Thomas E. (thomase)


Lesenswert?

Sven schrieb:
> Ich benutze einen 8MHz Quarz, dazu 2 x 22pF und den Serienwiderstand
> 220R.
Was soll denn der Widerstand bewirken?
Die im Datenblatt angegebenen Widerstandswerte sind die ESRs.
Equivalent Series Resistance.
Das ist sozusagen der Widerstand des Quarzes bei einer bestimmten 
Frequenz. Der wird da nicht eingebaut.

mfg.

von Sven (Gast)


Lesenswert?

Doch, das hat schon seine Richtigkeit. Der Widerstand soll vermeiden, 
dass der Quarz überlastet wird ("Overdrive"). Der steht als Bauteil im 
Datenblatt und findet sich in sämtlichen Referenzdesigns.

von Carsten (Gast)


Lesenswert?

SMD Quarze haben in der Regel einen anderen ESR als THT Quarze. Das kann 
schon einmal zu Problemen führen wenn man nicht entsprechend die C's und 
R's ändert. Bedenke beim Messen mit dem Oszi auch die Tastkopfkapazität 
die zusätzlich anliegt.

Carsten

von Sven (Gast)


Lesenswert?

Wie gesagt, ich hab ja die Bauteile vom Discovery Board abgelötet und 
verwende sie jetzt auf meiner Platine. Bringt alles nix. Testhalber (als 
Stresstest) hab ich die Quarze über mehrere Zentimeter Litze 
angeschlossen. Änderung kaum messbar: das Discovery schwingt mit satter 
Amplitude munter vor sich hin, selbst wenn man es mit langen 
Zwischendrähten quält, oder die C's und R ändert (die C's kann man sogar 
ganz weglassen und als R 0 Ohm verwenden).
Auf der eigenen Platine dümpelt die Amplitude bei ca. 0.4V dahin, egal 
was ich an der externen Beschaltung der Oszillatorpins ändere. Da das 
Verhalten selbst beim Stresstest reproduzierbar bleibt, glaube ich eher 
nicht dass das Layout dieses kurzen Leiterbahnstücks die Ursache ist...

Nur leider fällt mir auch keine andere Lösung ein. Noch jemand eine 
Idee?

von Jim M. (turboj)


Lesenswert?

Ich habe hier grad keine Glaskugel. Bitte Schaltplan und Layout posten, 
wenn Du hier zur Lösung sinvolle Beiträge haben möchtest.

von Peter R. (pnu)


Lesenswert?

Ist denn  der Oszillator des Kontrollers per fuses auf die aktuelle 
Quarzfrequenz eingestellt?

Mit dem Scope direkt an den Quarzanschlüssen zu messen ist Unsinn.

Alleine durch die Kapazität des Tastkopfs( 5pF und mehr) werden die 
Rückkopplungsverhältnisse in der Oszillatorschaltung grundlegend 
geändert, sodass zum Beispiel die wirkliche Amplitude an den 
Oszillatoranschlüssen ohne den Tastkopf doppelt so groß  ist oder noch 
größer.

von Hans-Peter D. (pitdahl)


Lesenswert?

Peter R. schrieb:
> Ist denn  der Oszillator des Kontrollers per fuses auf die aktuelle
>
> Quarzfrequenz eingestellt?

WÜrde auch Peters Tipp folgen, die Fuses anschauen ob die stimmen, vor 
allem CKOPT, damit kann man die Amplitude beeinflussen.
Gruß Pit

von Durak (Gast)


Lesenswert?

Hi,

schonmal kleinere Kapazitäten versucht z.B 4.7 pF?

Gruß Durak

von Zorg (Gast)


Lesenswert?

>  Fuses ... vor allem CKOPT,

mmmh klar genau beim ARM STM32F4 natürlich das erste was man prüfen 
muss...

;-)

von Schwinger (Gast)


Lesenswert?

Wer misst misst Mist. Der Tastkopf beeinflusst den Schwingkreis. Da der 
Tastkopf die Kapazität in der zu messenden Schaltung erhöht, wird der 
Quarz zusätzlich gedämpft.

Eine quantitative Aussage sollte dennoch möglich sein, sprich: wenn 
derselbe Tastkopf bei Schaltung A eine deutlich größere Amplitude als an 
Schaltung B misst, wird auch ohne angelegten Tastkopf die Amplitude bei 
A größer sein als bei B.

Entsprechende Fusebits kenn ich beim STM32 keine. Das mit CKOPT lassen 
wir mal lieber ;-)

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Es könnte sich auch um ein Versorgungsspannungs-Problem handeln. Schon 
alle Anschlüsse gemessen?

Grüsse

von Sven (Gast)


Lesenswert?

Oh oh, peinlicher Fehler. Das Discovery Board verfügt über zwei völlig 
unabhängige Takterzeugungen. Sowohl der F103 (SWD Interface) als auch 
der F407 haben eigenen 8MHz Quarz. Endlich hab ich gemerkt, dass der 
8MHz Takt am F103 per MCO ausgegeben und über 100 Ohm an den OSC_IN des 
F407 gelegt ist - warum auch immer. Der Quarz des F407 wird damit 
sinnlos. Man muss erst den Widerstand entfernen, damit der F407 seinen 
eigenen Quarz nutzt.

Nach diesem Umbau sehe ich, dass die (durch den Tastkopf verfälschte) 
Amplitude in einem ganz ähnlichen Bereich liegt, wie bei meinem eigenen 
Board. Das lässt mich vermuten, dass die Takterzeugung wohl doch in 
Ordnung ist.

Keine Ahnung warum mein Board sonst nicht losläuft. Standardbeschaltung 
an BOOT0 und Reset. Core Spannung 1.25V sieht auch gut aus. Evtl. muss 
ich euch nochmal belästigen wenn ich hier nicht weiterkomme. Thema Clock 
ist aber erstmal vom Tisch.

Gruß Sven

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.