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


von Pete (Gast)


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. (Gast)


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)


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. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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)


Lesenswert?

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

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.