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