AVR ATmega - Hoher Takt ist ungenau

#7859552
Lesenswert?

Moin zusammen,

ich spiele gerade ein wenig mit Quarzen und AVR herum und wollte einfach aus Interesse mal schauen wie sich der ATmega1284P mit einem 22,1184 MHz verhält. Ansich möchte ich jedoch nur ein 18,4320 MHz verwenden.

Also habe ich erst den 22,1184 verbaut und mir an PORTB1 den Takt angeschaut. Der Takt schwankt, mal schneller mal langsamer. Aktiviere ich CKDIV8, dann ist alles Top.

Dann habe ich den 18,4320 MHz verbaut und gleiches Problem (siehe LA.png - gilt für beide Frequenzen) Mit CKDIV8, wieder alles Top.

scope_0.png war bei 18,4320 MHz, hätte steilere Flanken erwartet. Eine Änderung der Lastkapazitäten hat nichts gebracht, weder bei den Flanken noch bei der Schwankung.

Liegt das an den Quarzen oder ist das bei den AVR so?

Ansich ist es ja gar nicht so wild, jedoch möchte es einfach nur Wissen, da ich es so von den ARM Controllern nicht so kenne.

Grüße Adam

Angehängte Dateien:
#7859569
Lesenswert?

Walter T. schrieb:

100 MHz/(2* 22 MHz) = 2.3, d.h. der Takt muss sowieso zwischen 2 und 3 Abtastzeiten schwanken.

Das erklärt jedoch nicht, dass es mit dem Oszi ja genau so "schwankt".

Edit:

  • Versuch mit baugleichem Board, gleiches Verhalten.
  • Versuch mit eigen aufgebautem Board, ebenfalls.
  • Externe Spannung mittels Labornetzteil, keine Besserung.

Könnte das vielleicht jemand bei sich auch mal messen? ATmega Typ wäre egal, hauptsache > 18 MHz (16 MHz). Evtl. wichtig, Gehäuse ist DIP40.

#7859603
Lesenswert?

2 weitere ATmega1284P haben gleiches Verhalten.

Bei meinem MEGA2560Pro Board, sieht es besser aus mit seinen 16 MHz, jedoch gibt es da auch mal Ausreißer.

So langsam habe ich das Gefühl, dass es "normal" ist (Schulterzucken).

Weitere ATmegas habe ich leider nicht zum testen.

#7859604
Lesenswert?

Carsten-Peter C. schrieb:

Moin, auf meinem Pollin EV-Board mit 16MHz sieht das Signal sauber aus.

Ja das wundert mich jetzt. Bei mir ist es auf zwei Boards so.

Hugo H. schrieb:

Zeige mal bitte Deinen Aufbau.

Da gibt es nicht viel zu zeigen. 2 Boards sind die Pollin EV-Boards und das andere ist das MEGA2560Pro und das dritte ist ein eigen gebautes mit Punktraster Platine, aber um das geht es hier nicht.

#7859615
Lesenswert?

Hugo H. schrieb:

Siehe Bild

Habe die alten Dinger getauscht. Unter der Platine sind nun 0603 SMD verbaut.

siehe: Adam P. schrieb im Beitrag #7859552:

Eine Änderung der Lastkapazitäten hat nichts gebracht, weder bei den Flanken noch bei der Schwankung.

Aber hab es grad nochmal mit einem STK500 getestet. Da sieht es besser aus, auch wenn nicht zu 100% stabil.

Ich galub das liegt einfach am PCB Design und evtl. auch an den Bauteilen...

#7859665
Lesenswert?

Norbert schrieb:

Mir fällt da noch:

Für mich sieht das auch nach zu kleiner Amplitude am Quarz aus, die bei höherer Frequenz immer kleiner wird. Zudem wird wohl die Schaltschwelle am Eingang vom CLK-Ausgangspuffer mit einem 2:1 geteilten Signal moduliert. Um das genau zu sehen, müßten mehrere Perioden der analogen Darstellung betrachtet werden können.

Ob ich mich bei Übertaktung darüber aufregen würde? Weiß ich nicht.

#7859727
Lesenswert?

Adam P. schrieb:

Könnte das vielleicht jemand bei sich auch mal messen?

Ich hatte mir schon mal das Signal am 18,432-MHz-Quarz an einem 328P mit aktiviertem Full-Swing-Oszillator angeschaut, das war normal, ohne Jitter, wie man es erwarten würde.

Wie genau hast du denn gemessen, hast du einen 10:1-Tastkopf verwendet? Ansonsten könnte es nämlich sein, dass dein seltsames Signal durch die kapazitive Belastung aus Koaxkabel und Oszi bedingt ist.

#7859838
Lesenswert?

Arduino F. schrieb:

Johannes F. schrieb:

Ansonsten könnte es nämlich sein, dass dein seltsames Signal durch die kapazitive Belastung aus Koaxkabel und Oszi bedingt ist.

Widerspricht irgendwie der folgenden Aussage: Adam P. schrieb im Beitrag #7859552:

Aktiviere ich CKDIV8, dann ist alles Top.

Oder irre ich mich da?

Bei 1/8 der Frequenz ist die kapazitive Wirkung geringer. Bei meinem billigen Tastkopf am Hameg ist das jedenfalls so.

#7859863
Lesenswert?

Arduino F. schrieb:

Uwe D. schrieb:

Bei 1/8 der Frequenz ist die kapazitive Wirkung geringer.

Am Quarz ändert sich die Frequenz nicht, egal ob div8 oder was auch immer. Damit man die geteilte Frequenz abnehmen kann, braucht man einen Ausgang. Damit ist das entkoppelt und die Tastkopf Kapazität stört den Quarz nicht mehr.

Ja, verstehe was Du sagen willst.

Aber noch mal zurück zum Eingangsbeitrag: Gemessen wird am Port B, oder? Kommt da mit zuschalten von Div8 immer noch die Quarzfrequenz raus?

Will sagen: Es geht nicht um das stören des Quarzes, sondern die Belastung durch den Messkopf, abhängig von der Frequenz.

(Firma: Gast) #7859868
Lesenswert?

Uwe D. schrieb:

Aber noch mal zurück zum Eingangsbeitrag: Gemessen wird am Port B, oder?

So wie ich das sehe, ist das Messverfahren geheim.

Uwe D. schrieb:

Will sagen: Es geht nicht um das stören des Quarzes, sondern die Belastung durch den Messkopf, abhängig von der Frequenz.

Dann würdest du eine Verzerrung der Oszikurve bekommen. Aber keine Taktverschiebung.

#7859949
Lesenswert?

Uwe D. schrieb:

Arduino F. schrieb:

Johannes F. schrieb:

Ansonsten könnte es nämlich sein, dass dein seltsames Signal durch die kapazitive Belastung aus Koaxkabel und Oszi bedingt ist.

Widerspricht irgendwie der folgenden Aussage: Adam P. schrieb im Beitrag #7859552:

Aktiviere ich CKDIV8, dann ist alles Top.

Oder irre ich mich da?

Bei 1/8 der Frequenz ist die kapazitive Wirkung geringer. Bei meinem billigen Tastkopf am Hameg ist das jedenfalls so.

Bei der Messung on CLKO (aka PB1) ist das dermaßen irrelevant ...

Relevant sind aber sehr wohl die Fuses. Aber die verschweigt der TO ja schamhaft. Genauso wie Bilder seines Aufbaus. Ein Schelm, wer Arges dabei denkt. Abgesehen davon glaube ich auch, daß der TO das Mist mißt. Aber wer bin ich schon. Also beobachte ich das Theater von der Seitenlinie und mampfe Popcorn ...

#7859995
Lesenswert?

Axel S. schrieb:

Relevant sind aber sehr wohl die Fuses. Aber die verschweigt der TO ja schamhaft.

Siehe "fuses.png"

Axel S. schrieb:

Genauso wie Bilder seines Aufbaus.

Habe ich bereits mitgeteilt.

Arduino F. schrieb:

Axel S. schrieb:

Bei der Messung on CLKO (aka PB1)

PB0, oder?

Beim ATmega1284P ist es PB1.

Arduino F. schrieb:

Aber egal ob PORTB0 oder PORTB1 Der Tastkopf kann da den Takt nicht verschieben.

Genau. Es geht auch gar nicht um mein Tastkopf, da ich die Verschiebung mit meinem LA erkannt habe und mit dem Oszi nur im zweiten Schritt kontrolliert habe wie das Signal aussieht.

Angehängte Dateien:
#7860005
Lesenswert?

Adam P. schrieb:

Siehe "fuses.png"

Du hast also den "Low Power Crystal Oscillator" aktiviert. Dieser ist nur bis 16 MHz spezifiziert; den Grund dafür hast du wohl mit diesem Experiment dargestellt.

Hättest du auch mal eher verraten können, denn gestern schrieb bereits Norbert:

Norbert schrieb:

Mir fällt da noch:

  • Low Power Crystal Oscillator
  • Full Swing Crystal Oscillator ein.
Angehängte Dateien:
#7860006
Lesenswert?

Johannes F. schrieb:

Du hast also den "Low Power Crystal Oscillator" aktiviert. Dieser ist nur bis 16 MHz spezifiziert; den Grund dafür hast du wohl mit diesem Experiment dargestellt.

Und was sollte man dann bei Frequenzen höher 16 MHz wählen?

Full swing?

Habs ausprobiert, ist besser, aber es gibt trotzdem Verschiebungen.

Angehängte Dateien:
#7860015
Lesenswert?

Johannes F. schrieb:

Und mit dem Oszi?

Also Signal sieht zumindest besser aus.

Frequenzanzeige schwankt zwischen 18.3 und 18.6 MHz. Aber ob das nun jetzt wirklich so ist?

Johannes F. schrieb:

Walter T. schrieb:

Sicher, dass Du nicht einfach den Jitter des Logik-Analysators siehst?

Also ich habe mit dem LA schon 20 MHz SPI gemessen und da hatte ich keine Verschiebungen. (ARM Projekt)

Angehängte Dateien:
#7860109
Lesenswert?

Adam P. schrieb:

Walter T. schrieb:

Adam P. schrieb:

Also ich habe mit dem LA schon 20 MHz SPI gemessen und da hatte ich keine Verschiebungen. (ARM Projekt)

Du hast keine gesehen. Wenn das Abtastverhältnis (beinahe) ganzzahlig ist, treten Alias-Effekte auch deutlich seltener auf.

Dann probiere ich gleich mal ein 20 MHz Quarz aus.

Also es ist besser, ab und zu dann doch mal ein Ausreißer. Oszi Frequenzmessung ist ebenfalls nicht stabil bei 20 MHz.

Angehängte Dateien:
#7860113
Lesenswert?

Adam P. schrieb:

Also es ist besser, ab und zu dann doch mal ein Ausreißer.

Ich vermute stark, dass das die "Schwebung", also Frequenzdifferenz zwischen der Abtastfrequenz des LA und dem Fünffachen der 20 MHz ist.

Adam P. schrieb:

Oszi Frequenzmessung ist ebenfalls nicht stabil bei 20 MHz.

Diese Frequenzanzeige ist glaube ich generell bei Oszis mit Vorsicht zu genießen, bei meinem R&S RTC1002 ist die auch irgendwie instabil, selbst bei Messung an einem fertigen Quarzoszillator meine ich mich an ein solches Phänomen erinnern zu können.

#7860126
Lesenswert?

Johannes F. schrieb:

Adam P. schrieb:

Also es ist besser, ab und zu dann doch mal ein Ausreißer.

Ich vermute stark, dass das die "Schwebung", also Frequenzdifferenz zwischen der Abtastfrequenz des LA und dem Fünffachen der 20 MHz ist.

Adam P. schrieb:

Oszi Frequenzmessung ist ebenfalls nicht stabil bei 20 MHz.

Diese Frequenzanzeige ist glaube ich generell bei Oszis mit Vorsicht zu genießen, bei meinem R&S RTC1002 ist die auch irgendwie instabil, selbst bei Messung an einem fertigen Quarzoszillator meine ich mich an ein solches Phänomen erinnern zu können.

Na dann werde ich das fürs erste mal so belassen und dann noch mal schauen, wie es auf einem eigen gefertigtem PCB ist.

Solange der 1ms SysTick gut ist, soll mir es erstmal egal sein.

Hat mich einfach nur interessiert weil ich es für sehr komisch empfand. Danke an alle.

#7861992
Lesenswert?

Jobst M. schrieb:

Jeweils ein 19,6608MHz und 24,576MHz Quarz an einem mit 5V befeuerten ATmega168 auf meinem haarsträubend auf Streifenraster verdrahteten Testboard. Es ist zwar etwas Jitter am CLKO vorhanden, aber noch im erwartbaren Rahmen.

Kommt bei einem ATmega168 wirklich so ein annähernd sinusförmiges Signal aus dem CLKO Ausgang oder wurde da ein 1x Tastkopf benutzt und/oder die Bandbreitenbegrenzung am Oszilloskop eingeschaltet?

#7862027
Lesenswert?

Calibrated Internal RC Oscillator By default, the Internal RC Oscillator provides an 8.0 MHz clock. Though voltage and temperature dependent, this clock can be very accurately calibrated by the user. The device is shipped with the CKDIV8 Fuse programmed, providing a 1 MHz system clock frequency. This clock may be selected as the system clock by programming the CKSEL fuses to '0010':. If selected, it will operate with no external components. During reset, the hardware loads the pre-programmed calibration value into the OSCCAL Register and thereby automatically calibrates the RC Oscillator.

Refer to the AVR053 Application Note which outlines the procedure to re-calibrate the internal RC oscillator.

https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/peripherals/oscillator/overview/#:~:text=Back%20to%20top-,Low%2DFrequency%20Crystal%20Oscillator,External%20Clock

Vielleicht hilft das weiter?

#7862031
Lesenswert?

Stefan K. schrieb:

Kommt bei einem ATmega168 wirklich so ein annähernd sinusförmiges Signal aus dem CLKO Ausgang oder wurde da ein 1x Tastkopf benutzt und/oder die Bandbreitenbegrenzung am Oszilloskop eingeschaltet?

Gemessen wurde mit einem 10x Tastkopf direkt am Quarz (gelber Plot) und mit dem Logicanalyzer an CLKO (roter Plot)

Du hast Recht, das hätte ich eigentlich dazu schreiben sollen.

Gruß Jobst

#7862133
Lesenswert?

Stefan K. schrieb:

Zu dem Quarz hält man besser Abstand und geht da auch nicht mit einem 10x Tastkopf dran.

Was soll dennn das? Wenn ich wissen will, ob der Quarz schwingt, dann messe ich an seinen Pins direkt. Die paar pF vom Tastkopf verschieben auch die abs. Frequenz kaum.

Jobst M. schrieb:

Jeweils ein 19,6608MHz und 24,576MHz Quarz an einem mit 5V befeuerten ATmega168 auf meinem haarsträubend auf Streifenraster verdrahteten Testboard.

Es ist zwar etwas Jitter am CLKO vorhanden, aber noch im erwartbaren Rahmen.

Das sind typische Ergebnisse und Du hast Dein Messgerät entsprechend eingestellt.

Mi N. schrieb:

Zudem wird wohl die Schaltschwelle am Eingang vom CLK-Ausgangspuffer mit einem 2:1 geteilten Signal moduliert. Um das genau zu sehen, müßten mehrere Perioden der analogen Darstellung betrachtet werden können.

Diese Kurve hätte ich gerne gesehen. Aber der µC ist sicher 'fake' ;-)

#7862203
Lesenswert?

Stefan K. schrieb:

Jobst M. schrieb:

Gemessen wurde mit einem 10x Tastkopf direkt am Quarz (gelber Plot) und mit dem Logicanalyzer an CLKO (roter Plot)

Warum nicht auch mit dem Oszilloskop-Tastkopf an CLKO? Zu dem Quarz hält man besser Abstand und geht da auch nicht mit einem 10x Tastkopf dran.

Das ist so allgemein Unsinn. Am Ausgang des (Pierce) Oszillators ist das Taktsignal niederohmig genug, so daß ein Tastkopf maximal eine geringe Verstimmung durch die zusätzliche Kapazität bewirkt. Am Eingang des Oszillators sieht das natürlich anders aus.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren