Forum: Mikrocontroller und Digitale Elektronik Quarze / millis() auf unterschiedlichen CPUs


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Pete (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine grundsätzliche Frage.
Ich betreibe einen ESP32, dieser kommuniziert über I2C mit einem 
Atmega32. Diese werden allerdings extern programmiert und später in der 
Schaltung (selten) gewechselt.

Ich lese also die Fuse-Bits aus, sende die über I2C und kontrolliere 
diese Bits im ESP.

Zum Spaß hab ich mir gedacht, es wäre cool, die reale CPU-Frequenz zu 
kontrollieren. Ich sende also vom ESP einen Start-Befehl, lasse ein 
definiertes delay laufen und sende anschließend einen Stop-Befehl. Der 
Atmega32 misst inzwischen die Zeitdifferenz mit Hilfe von millis() und 
sendet diese an den ESP.
Klappt auch wunderbar. Und klar, nur ein grober Anhaltspunkt, aber den 
Unterschied zwischen 8 und 16Mhz werde ich damit schon erfahren.

Was mich wundert: die Werte sind immer absolut identisch. Irgendwie habe 
ich erwartet, dass die CPUs im Millisekundenbereich leicht 
unterschiedlich sind.

Sind die Quarze und CPUs wirklich so präzise und identisch?

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Schau doch mal, wie viel Abweichung gewöhnliche Quarze von ihrer 
Soll-Frequenz haben. Ich habe da Werte von 1-2 Sekunden pro Tag in 
Erinnerung.

Wenn du eine Sekunde misst, könnte die Abweichung somit 0,01 bis 0,02 ms 
sein. Du hast wahrscheinlich mehr erwartet, richtig?

Beim ESP musst du noch berücksichtigen, dass Dir die Firmware mit ihren 
WLAN Funktionen und Interrupts dazwischen funkt. Das wird die Messung 
ein bisschen verzerren (jedoch nicht den Millisekunden-Zähler).

von Jacko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Könnte sein, dass du zufällig gute, oder gleich versetzte
Quarzfrequenzen hast.
Ohne Abgleich wären 30...50  ppm Abweichung nicht ungewöhnlich.

Wie groß ist denn das "definierte Delay"?
In einer Sekunde siehst du noch nix.
Bei 50 ppm Differenz und ms-Auflösung wird der Unterschied
erst nach > 20 s Messzeit langsam deutlich.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Pete schrieb:
> Sind die Quarze und CPUs wirklich so präzise und identisch?
Die Abweichungen, die die Hersteller mit 30..50ppm angeben, sind über 
den kompletten Betriebstemperaturbereich hinweg. Wenn du beide Quarze 
auf Zimmertemperatur hast, dann ist die Abweichung vom Soll und damit 
untereinander wesentlich geringer als 1/1000 (1s Messdauer, 1ms 
Auflösung).
Aber selbst wenn du den einen Teilnehmer in die Gefriertruhe und den 
Anderen in den Backofen legst, wird diese grobe Auflösung (ausser der 
latent vorhandenen einen ms) keine Unterschiede zeigen. Du müsstest di 
Messzeit da schon mal um den Faktor 1000 aufbohren, um eine bessere 
Messauflösung zu bekommen.

: Bearbeitet durch Moderator
von fop (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mit wieviel Prüflingen hast Du das ausprobiert ?
Etwa immer mit dem selben Pärchen ?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.