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