Atmega als Binärteiler, wie genau ist das?

Gast #3347604
Lesenswert?

Hallo,

wenn man einen Atmega88 (oder M168, M328) mit einem Timer zum 
Binärteiler für seinen eigenen Takt (Oszillatorfrequenz) macht, wie 
genau ist das Ergebnis?

Sind die Takte, die man am Timerausgang messen kann, wirklich 100%ige 
Teiler des Oszillatortaktes?
Oder können Abweichungen entstehen?

Für die Betrachtung soll das Timerinterrupt für die Binärteilung das 
einzige Interrupt (ISR) im Programm und der Timer ein 8-Bit-Timer sein.
Gast #3347614
Lesenswert?

Die Takte werden schon richtig gezählt. Es kann aber zu etwas mehr 
Jitter kommen, als man es vielleicht von einem TTL IC erwarten kann, 
weil da andere interne Zustände die Flanken minimal (i.A. unter 1 ns) 
verschieben kann. Verloren gehen sollte aber kein Takt.

Beim Mega88 und ähnlichen kann man auch schon gleich den Takt teilen (:2 
bis :256) lassen und direkt ausgeben, auf dem CLKO ( = PortB.0).
Gast #3347649
Lesenswert?

Den Teiler kann man als :8 über die Fuses einstellen. Sonst per Software 
im  Registern CLKPR - allerdings mit speziellem Zugriff geschützt.

Der ganze µC läuft dann allerdings auch langsamer.

Wenn der µC so lange in einem Sleep Mode ist (wohl auch schon Idel) 
sollte sich der Jitter in Grenzen halten. Das gilt auch weitgehend für 
die Lösung mit dem Timer, denn auch da tut sich dann nichts weiter im 
µC.

Nur einfach als binärer (:2^N) Teiler gibt es aber auch fertige ICs - da 
braucht es also keinen µC. Nur für die Teilerwerte dazwischen wäre der 
µC ggf. noch interessant als Alternative zum CMOS 4059.
#3347664
Lesenswert?

Mich interessiert jetzt, was +/- 1ns bewirken können. Annahme: Ein 10 
MHz Signal wird durch 2 geteilt, eine 5Mhz Schwingung dauert 
normalerweise 200ns.

Dann wird rein zufällig eine Halbwelle um 1ns kürzer und später eine um 
1ns länger. Innerhalb von zwei Schwingungen kann dann die Frequenz 
zwischen 4,975 und 5,025 MHz schwanken. Das gibt auf dem Spektrum 
Analyser keine feine Linie, sondern ein 50 kHz breites Band.

Je weiter runtergeteilt wird, desto geringer wird der Einfluss dieser 
einen Nanosekunde. Bei 78,125 kHz reicht die Bandbreite nur noch von 
78,112...78,137 kHz.
Gast #3347809
Lesenswert?

Ulrich schrieb:
> Wenn der µC so lange in einem Sleep Mode ist (wohl auch schon Idel)
> sollte sich der Jitter in Grenzen halten. Das gilt auch weitgehend für
> die Lösung mit dem Timer, denn auch da tut sich dann nichts weiter im
> µC.

Die geteilten Signale vom AVR klingen in einem Weltempfänger im 
SSB-Modus auf jeden Fall sauber, so weit sich das auf die Schnelle 
akkustisch beurteilen läßt. Auf keinen Fall entsteht ein 50kHz breites 
Band bei 5MHz aus 10MHz-Quarz geteilt.
#3348662
Lesenswert?

Dil schrieb:
> Noch eine kleine Frage: kann man davon ausgehen, dass das CLKOUT-Signal
> beim M88 und Konsorten jitterfrei ist, oder wird es u.U. auch von
> internen CPU-Prozessen beeinträchtigt?

Abgesehen davon daß es in der Realität sowieso keine jitterfreien 
Signale gibt, halte ich das Argument bezüglich Jitter für Unsinn.

Zumindest solange man das Bit in Hardware setzt (per output capture und 
auch den Timer in Hardware reloaden läßt). In Software per ISR für den 
Timerüberlauf wird es natürlich jittern wie Sau. Und zwar deutlich mehr 
als eine Nanosekunde. Stichwort Interrupt-Reaktionszeit.

Natürlich ist die ganze Fragerei für die Katze. Denn wenn man einen 
jitterarmen Frequenzteiler will, dann ist ein µC schlicht falsch.


XL
#3352087
Lesenswert?

Hallo Dil

Mich würde interessieren, wie die 2 schwächeren Linien mit 500 Hz 
entstehen.

Wenn das Signal abgeschwächt wird, gehen die 500 Hz Linien dann 
proportional runter, doppelt so schnell oder 3 mal so schnell verglichen 
zur Hauptlinie?

500 Hz bei 2,5MHz entsprechen 80 ps. Es könnte sein, dass sich die 
Laufzeit in der CPU sporadisch um diesen Betrag ändert. Also dass 
statistisch neben den 400000ps Periode noch 399920ps und 400080ps 
besonders häufig auftreten.

Gruß, Bernd

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