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
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.
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.
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
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?
Ich habe hier grad keine Glaskugel. Bitte Schaltplan und Layout posten, wenn Du hier zur Lösung sinvolle Beiträge haben möchtest.
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.
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
Hi, schonmal kleinere Kapazitäten versucht z.B 4.7 pF? Gruß Durak
> Fuses ... vor allem CKOPT, mmmh klar genau beim ARM STM32F4 natürlich das erste was man prüfen muss... ;-)
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 ;-)
Es könnte sich auch um ein Versorgungsspannungs-Problem handeln. Schon alle Anschlüsse gemessen? Grüsse
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.