Forum: Mikrocontroller und Digitale Elektronik Anfänger-Frage zu Quarz/Baudrate/Sekunden-Takt


von Peter (Gast)


Lesenswert?

Hi,

ich möchte mit einem ATMEGA32 sowohl mit einem Handy seriell 
kommunizieren als auch einen möglichst genauen Sekunden-Takt generieren.

Was ist sinnvoller: Einen Quarz mit z.B. 10,2400 Mhz zu verwenden, der 
ohne Verrenkungen mit dem Prescaler eine genaue Sekundenbasis erzeugen 
kann, oder doch lieber einen 11,0592 MHz verwenden, der die gängigen 
Baudraten erzeugen kann?

Gruß,
Peter

von Falk B. (falk)


Lesenswert?


von g457 (Gast)


Lesenswert?

> Was ist sinnvoller: Einen Quarz mit z.B. 10,2400 Mhz zu verwenden, der
> ohne Verrenkungen mit dem Prescaler eine genaue Sekundenbasis erzeugen
> kann, oder doch lieber einen 11,0592 MHz verwenden, der die gängigen
> Baudraten erzeugen kann?

Nimm nen Baudratenquarz, das spart em ehesten Komplikationen auf der 
Seriellen. Die 'Verrenkungen' brauchst Du eh sofern Du eine genaue(tm) 
Zeit haben möchtest [1]. Und falls Du keine genaue(tm) Zeit brauchst, 
dann kommst auch mit dem Baudratenquarz (ohne Verrenkungen) genau 
genug(tm) hin :-)

[1] 
http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Welche Baudrate würde dein Handy denn akzeptieren und wie sieht in 
diesem Fall der Baudratenfehler bei dem Genaue-Uhr-Quarz aus? Vielleicht 
lassen sich ja beide Anforderungen mit dem gleichen Quarz erschlagen...

von Ralph B. (rberres)


Lesenswert?

Ich vermute mal das du einen Frequenzzähler, oder Frequenzsynthesizer 
bauen willst.

Wenn dem so ist, würde ich 2 getrennte Quarze nehmen. Den 11,0592MHz um 
den
Mikroprozessor zu takten und damit auf die genaue Baudrate zu kommen, 
und einen 10 MHz Quarz für die eigentliche Zeitbasis des Zählers zu 
nehmen. Den Zähler würde ich gegebenfalls hartwäremäßig aufbauen und das 
Ergebnis dem Mikroprozessor zur Weiterverarbeitung übermitteln. Das 
dürfte vermutlich genauer sein als den Mikroprozessor zum Zählen zu 
bemühen.
10MHz ist eine in der Messtechnik übliche Referenzfrequenz. Je nach 
Anforderung an die Stabilität , Genauigkeit und Auflösung des Zählers 
kann man dann auch gegebenfalls einen Quarzofen, den es in verschiedene 
Stabilitätsklassen gibt, oder gar einen Rubidiumfrequenznormal als 
Zeitbasisfrequenz nehmen.

von spess53 (Gast)


Lesenswert?

Hi

>Wenn dem so ist, würde ich 2 getrennte Quarze nehmen. Den 11,0592MHz um
>den Mikroprozessor zu takten und damit auf die genaue Baudrate zu kommen,
>und einen 10 MHz Quarz für die eigentliche Zeitbasis des Zählers zu
>nehmen.

Mit einem 10MHz Takt sind Baudraten <=76800 Baud mit einem akzeptablen 
Fehler erreichbar. Ein zusätzlicher Baudratenquarz ist unnötig.

MfG Spess

von Peter D. (peda)


Lesenswert?

Ralph Berres schrieb:
> 10MHz ist eine in der Messtechnik übliche Referenzfrequenz.

Das ist doch nur ein Relikt aus vergangenen TTL-Gräber Zeiten.

Heutzutage nimmt man irgendwas und läßt den MC das kleine bischen 
Umrechnen machen.


Peter

von Ralph B. (rberres)


Lesenswert?

Peter Dannegger

Ich weis ja nicht woher du diese Kenntnis hast.
Das muss du mir mal zeigen wie man nur mit einen Mikroprozessor einen 
9stelligen Zähler baut, der auch auf der letzten Stelle genau misst.

Aber in der Messtechnik ist nach wie vor 10MHz als Referenzfrequenz auch 
heute gebräuchlich. Praktisch alle Zähler Generatoren der Premiumklasse 
haben einen 10MHz Referenzeingang um eben diese an eine genaue 
Referenzfrequenz anbinden zu können. Auch heute wird das Erfassen bzw 
Generieren einer Frequenz eben nicht mit dem Mikroprozessor gemacht, 
sondern mit mittlerweile speziell dafür designten Chips.
Mit einen Mikroprozessor der gleichzeitig noch die Bedienung abarbeiten 
soll ( und eventuell noch einiges mehr ) wird nur gezählt, wenn die 
Anforderungen an Genauigkeit gering bzw zweitrangig sind.

Schaue doch einfach mal in Serviceanleitungen von Agilent Rohde/Schwarz 
usw hinein.

Aber vermutlich habe ich den Peter ganz zu Anfang wohl falsch 
verstanden.
Vielleicht will er ja nur eine Uhr implementieren. Da sind die 
Anforderungen an Genauigkeit und Stabilität ja sehr gering. Da geht 
sowas natürlich.

Ralph Berres

von Peter D. (peda)


Lesenswert?

Ralph Berres schrieb:

> Aber vermutlich habe ich den Peter ganz zu Anfang wohl falsch
> verstanden.

Vermute ich auch, ich konnte nirgends was von nem "9stelligen Zähler" 
herauslesen.


Peter

von Ralph B. (rberres)


Lesenswert?

Peter Dannegger

Ich habe mich nur etwas daran gestört, das 10 MHz Referenzfrequenz
in der Messtechnik ein Relikt aus der TTL Zeit ist, und man heute 
einfach einen x beliebigen Quarz verwenden würde. Das konnte ich so 
einfach nicht stehen lassen.

Nichts für ungut

Ralph Berres

von Michael M. (Gast)


Lesenswert?

wie wärs mit einem zweiten quarz - einem uhrenquarz?
gibt mcus mit 2 ports für quarze. oder den treiber dafür schnell selber 
gezimmert und dann an einen timer clock eingang für den timer.

oder vielleicht eine RTC wie ds1337?

von Peter (Gast)


Lesenswert?

Hallo,

danke für eure Antworten...ich will die Sekunde tatsächlich nur für eine 
"schnöde" Uhr generieren und nicht für einen 10-Stelligen Frequenzzähler 
;)

Das Handy geht glaube ich bis 115.2kbps, aber um SMS zuversenden werde 
ich vermutlich mit 9600bps begnügen.

Wenn ich das richtig verstanden habe, kann ich mit einem 11,0592 Mhz 
Quarz jedoch nicht nur die Baudrate fehlerfrei einstellen, sondern 
gleich auch noch die Sekunde ohne Rest teilen, also quasi beide Probleme 
erschlagen:

11059200 / 16384 = 675

Oder mache ich hier einen Denkfehler? Dann wäre das ja der Ideale Quarz 
für diverse Projekte, oder?

Gruß,
Peter

von Andreas F. (aferber)


Lesenswert?

Peter schrieb:
> Wenn ich das richtig verstanden habe, kann ich mit einem 11,0592 Mhz
> Quarz jedoch nicht nur die Baudrate fehlerfrei einstellen, sondern
> gleich auch noch die Sekunde ohne Rest teilen, also quasi beide Probleme
> erschlagen:
>
> 11059200 / 16384 = 675
>
> Oder mache ich hier einen Denkfehler? Dann wäre das ja der Ideale Quarz
> für diverse Projekte, oder?

Nö, passt schon.

Aber Sekunden sind grundsätzlich immer durch einen ganzzahligen Teiler 
möglich, solange der Quarz einen ganzzahligen Takt hat ;-) Die Frage ist 
höchstens, inwiefern man mit den vorhandenen Timern das ganze so machen 
kann, dass der CPU-Aufwand gering bleibt (insbesondere wenn man den 
Controller zwischendurch schlafen schicken will, um Strom zu sparen).

Andreas

von Karl H. (kbuchegg)


Lesenswert?

Peter schrieb:

> gleich auch noch die Sekunde ohne Rest teilen, also quasi beide Probleme
> erschlagen:
>
> 11059200 / 16384 = 675


Du hast hier eine Fehlannahme:
Dein Quarz macht nicht exakt 11059200 Hz.
Der macht vielleicht 11059282 oder 11059167 oder irgendwelche Werte 
dazwischen, je nach Temperatur und Quarz. Aber exakt 11059200 macht der 
mit Sicherheit nicht.

D.h. deinen Faktor von 675 kannst du dir schon wieder abschminken. Wenn 
die Uhr ein paar Stunden laufen soll, mag das noch gehen, aber 
spätestens nach ein paar Tagen wirst du Abweichungen im Sekundenbereich 
haben. Nach ein paar Monaten schon mehr.

von avr (Gast)


Lesenswert?

Wenn der Mega32 mit 5 Volt läuft dann 14,7456 MHz (Baudratenquarz)
http://www.reichelt.de/?ACTION=3;GROUP=B41;GROUPID=3173;ARTICLE=68890;SID=253fB8SKwQARkAAG1Vh68f3c63ec6752fa925d046a0b8c55addd7

Bei 3,3 Volt 4,9152 MHz (UART z.B dann 19200 und vielfache)
http://www.reichelt.de/?ACTION=3;GROUP=B41;GROUPID=3173;ARTICLE=32841;SID=253fB8SKwQARkAAG1Vh68f3c63ec6752fa925d046a0b8c55addd7

Beide Vielfache vom Uhrenquarz 32,768 kHz daher "Uhrtauglich"

avr

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.