Forum: Mikrocontroller und Digitale Elektronik MCP2515 - Serieller Widerstand für AT strip cut crystals


von Andreas S. (andymilbe)


Lesenswert?

Hallo liebes Forum,

ich nutze bereits für einige Projekte erfolgreich den MCP2515.

Bei einem aktuellen Projekt habe ich nun erstmals aus Platzspargründen 
einen kleineren Oszillator genommen. Ich habe nun Probleme beim Start 
des MCP2515. Ich konnte herausfinden, dass wenn ich nach dem POR dem 
Controller eine Pause von 5ms gönne und erst dann konfiguriere, dass 
dann alles läuft. Ich vermutete ein Problem beim Einschwingen des Oszis. 
Nach Durchforsten des Datenblattes habe ich dann gesehen, dass der 
Controller einen Einschwing-Timer von 128 Clock Cycles hat. Bei 20Mhz 
sind das allerdings nur 6,4us. Daran kann es eigentlich nicht liegen. 
Ich habe in meinen früheren Projekten auch nie eine Einschwingzeit 
berücksichtigt. Nun habe ich im Datenblatt folgenden Hinweis gefunden:

"A Series Resistor (R_S) may be required for AT strip cut crystals."

Und siehe da, tatsächlich habe ich unwissend einen "ultra-miniature 
AT-cut crystal" verbaut. Aber ich habe keine Ahnung, in welcher 
Größenordnung der R_S sein muss. Hat hier jemand Erfahrungen?

Viele Grüße
Andy

von Peter D. (peda)


Lesenswert?

Andreas S. schrieb:
> Ich konnte herausfinden, dass wenn ich nach dem POR dem
> Controller eine Pause von 5ms gönne und erst dann konfiguriere, dass
> dann alles läuft.

Quarze brauchen deutlich mehr Zeit zum Anschwingen.
Z.B. beim ATmega328 werden 16K CK + 14 CK + 65 ms gewartet.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

> AT strip cut
Mit "strip" hatte ich das noch nicht gelesen

https://www.transko.com/img/support/m3_Crystal%20Application%20Note.pdf
"12. What are the differences between AT-cuts and AT-strip cuts?
13. What is the difference between a "crystal" and a "strip resonator"?

AT-strip cut is usually referred to the rectangular crystal blanks
which have the AT-Cut angle."

Das "strip" besagt wohl nur, dass der Quarzkristall quaderförmig statt 
rund ist.

von Harald A. (embedded)


Lesenswert?

Hier werden einige Application Notes zu dem Thema verlinkt:

https://www.eevblog.com/forum/beginners/pic-oscillator-circuite/

Vlt. ist ja auch ein Oszillator die einfachste Option, alle Probleme 
dauerhaft zu umschiffen.

von Axel S. (a-za-z0-9)


Lesenswert?

Andreas S. schrieb:

> Bei einem aktuellen Projekt habe ich nun erstmals aus Platzspargründen
> einen kleineren Oszillator genommen.

Nein. Du hast einen anderen Schwingquarz genommen. Mit einem 
Oszillator hättest du das Problem nicht.

> Ich konnte herausfinden, dass wenn ich nach dem POR dem
> Controller eine Pause von 5ms gönne und erst dann konfiguriere, dass
> dann alles läuft.

Dann ist wohl die Einschwingzeit respektive der Reset Impuls zu kurz. 
Also vorausgesetzt, der Oszillator startet sobald die Betriebsspannung 
anliegt.

> Ich vermutete ein Problem beim Einschwingen des Oszis.
> Nach Durchforsten des Datenblattes habe ich dann gesehen, dass der
> Controller einen Einschwing-Timer von 128 Clock Cycles hat. Bei 20Mhz
> sind das allerdings nur 6,4us. Daran kann es eigentlich nicht liegen.

Daran kann es sehr wohl liegen. Quarze haben eine wesentlich längere 
Einschwingzeit als Keramikresonatoren. Andere µC wie z.B. AVR geben dem 
Quarz wesentlich mehr Zeit. Hatte Lothar ja schon gesagt.

Also entweder du konfigurierst den Einschwing-Timer auf eine längere 
Zeit oder du wartest halt nach dem Reset noch etwas. 5ms sind ja nun 
keine Ewigkeit.

> "A Series Resistor (R_S) may be required for AT strip cut crystals."
> Und siehe da, tatsächlich habe ich unwissend einen "ultra-miniature
> AT-cut crystal" verbaut. Aber ich habe keine Ahnung, in welcher
> Größenordnung der R_S sein muss. Hat hier jemand Erfahrungen?

Der Serienwiderstand hilft nicht beim Verkürzen der Einschwingzeit. Er 
verringert aber die (Blind)leistung am Quarz und kann bei physisch 
kleinen Quarzen deshalb lebensdauerverlängernd sein.

Verlinke doch mal das Datenblatt deines Quarzes.

von Andreas S. (andymilbe)


Lesenswert?

Vielen Dank für eure Rückmeldung.

Ihr habt natürlich recht, ich habe einen anderen Quarz und nicht einen 
anderen Oszillator genommen. Bei meiner weiteren Recherche komme ich 
auch zu dem Schluss, dass die 5ms tatsächlich schon ein guter Wert sind 
und ich die Zeit tatsächlich nicht mit einenm seriellen Widerstand 
verkürzt bekomme.

Einen Oszillator zu verwenden scheint eine Überlegung wert zu sein. 
Hatte mich ursprünglich aber wegen des höheren Stromverbrauchs für einen 
Quarz entschieden.

Das Datenblatt zu meinem aktuell eingesetzten Quarz findet ihr hier:
https://cdn-reichelt.de/documents/datenblatt/B400/MT.pdf

Viele Grüße
Andy

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Nach Durchforsten des Datenblattes habe ich dann gesehen, dass der
> Controller einen Einschwing-Timer von 128 Clock Cycles hat. Bei 20Mhz
> sind das allerdings nur 6,4us. Daran kann es eigentlich nicht liegen.

Diese 128 Taktzyklen beginnen aber erst zu laufen, nachdem sich der 
Quarz bzw. die Oszillatorschaltung im MCP2515 so weit aufgeschaukelt 
haben, dass dies von den nachfolgenden digitalen Stufen als Takt 
wahrgenommen wird. Wie Du mittlerweile schon erkannt hast, kann dieses 
Anschwingen deutlich länger dauern.

Ein sehr langsames Anschwingen muss auch nicht zwingend ein 
Qualitätsmangel des Quarzes sein, sondern insbesondere bei Quarzen mit 
sehr hoher Güte dauert es eben. Diese Art von Schaltungen basiert beim 
Anschwingen eigentlich darauf, dass das thermische Rauschen verstärkt 
und über einen sehr schmalen Bandpass rückgekoppelt wird. Je schmaler 
der Bandpass, desto weniger Energie steht hierfür zur Verfügung.

Ob der im Blockschaltbild des Datenblatts skizzierte Widerstand R_F nur 
der Einstellung des DC-Arbeitspunktes der Oszillatorschaltung oder auch 
als Anschwinghilfe dient, kann man nicht verallgemeinern. Ggf. müsste 
man nachmessen, ob die Schaltung komplett ohne Quarz (und mit/ohne die 
Ziehkondensatoren) auch schon mit deutlich höherer Frequenz anschwingt.

von Harald A. (embedded)


Lesenswert?

Einschwingen muss natürlich jeder Quarz. Ich kenne den MCP2515 als 
absolut unkritisch bezogen auf den Quarz. Evtl. hast Du bei deinem 
vorherigen Quarz einfach auch nur gerade so Glück gehabt, das es 
funktionierte. Könnte sein, dass der nur eine winzige Nuance besser 
schneller war und Du "in Wirklichkeit" jedesmal an der 
Fehlinitialisierung vorbeischrammst. Besser man misst das mal nach und 
plant dann eine Sicherheitreserve nach dem Einschalten ein. 
Temperaturverhalten will ja auch berücksichtigt werden.

Zum Stromverbrauch Quarz vs. Oszillator: Oft ist es so, dass das Device 
bei direkter Ansteuerung mit einem Rechtecksignal gegenüber einem Quarz 
erheblich weniger Energie aufnimmmt. D.h. es könnte sein, dass der 
GESAMTstromverbrauch der Schaltung bei einem externen Oszillator sogar 
noch abnimmt. Muss nicht so sein, kommt immer auf den Einzelfall drauf 
an.

von Andreas S. (andymilbe)


Lesenswert?

Ja, mag sein, dass ich bisher einfach nur Glück hatte. Werde dem Thema 
bei meinen nächsten Schaltungen mehr Aufmerksamkeit schenken. Bei meinem 
aktuellen Projekt funktioniert es jedenfalls mit der 5ms Pause 
zuverlässig.  Zur Sicherheit verlängere ich die Pause auf 20ms. Vielen 
Dank für eure Feedbacks :-)

Grüße
Andy

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.