Forum: Mikrocontroller und Digitale Elektronik Uhr mit ATMega8515


von Micha (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin noch ein Anfänger was die µC-Thematik angeht und versuche mit 
dem ATMega8515L auf einem STK500 eine brauchbare Zeitmessung zu 
realisieren.
Dazu hab ich mir das C-Tutorial angeschaut und versucht es auf meinem µC 
zum Laufen zubringen.

Es funktioniert zwar, allerdings ist diese "Uhr" sehr ungenau und läuft 
zu langsam.

3686400 Hz/8 => 460800 Hz => 2,17µs/Takt * 255 => 1807 Overflows/Sek

Stimmt das überhaupt ?

Folgende Probleme/Fragen:

Ich suche nach einer "wasserfesten" Methode meinen CPU-Takt einzustellen 
bzw. abzulesen was für die Berechnung der genauen Zählerfrequenz nötig 
ist.
Unter "Advanced" kann ich die Oscillator-Frequenz einstellen,
unter "HW Settings" einen Clock-Generator.
Kann ich die ausgelesene Clock-Generator-Frequenz als CPU-Frequenz 
interpretieren ? Wenn ja, wieso bekomm ich da keine 8Mhz raus ?

Wie überprüft Ihr die Genauigkeit eurer Uhr ? Lasst Ihr die einen Tag 
laufen und vegleicht mit Funkuhr & Co. ?

Ich hoffe Ihr könnte mir etwas weiterhelfen !

Vielen Dank im Voraus !

von holger (Gast)


Lesenswert?

>3686400 Hz/8 => 460800 Hz => 2,17µs/Takt * 255 => 1807 Overflows/Sek
>
>Stimmt das überhaupt ?

Nein.

3686400 Hz/8 => 460800 Hz => 2,17µs/Takt * 256 => ???? Overflows/Sek

von Micha (Gast)


Lesenswert?

holger schrieb:
> Nein.
>
> 3686400 Hz/8 => 460800 Hz => 2,17µs/Takt * 256 => ???? Overflows/Sek

Wenn ich mit "256" rechne komm ich genau auf 1800 !
Damit läuft die Uhr aber immer noch zu langsam ... nach 2 Min läuft das 
Teile ca. 1 Sekunde nach !

Oder stimmt der Berechnungsweg nicht ?

von spess53 (Gast)


Lesenswert?

Hi

Wo hast du die 3686400Hz her? Wenn es die einstellbare Frequenz vom 
Board ist, kannst du es knicken. Die ist zu ungenau.

MfG Spess

von Micha (Gast)


Lesenswert?

spess53 schrieb:
> Wo hast du die 3686400Hz her?

Die hab ich von dem Clock-Generator (siehe Bild) !
Daher meine Frage wo ich die reale Frequenz überhaupt ablesen kann !?

von holger (Gast)


Lesenswert?

>Daher meine Frage wo ich die reale Frequenz überhaupt ablesen kann !?

Ablesen? Papp nen Quarz an deinen Controller, dann musst
du nichts ablesen.

von spess53 (Gast)


Lesenswert?

Hi

>Daher meine Frage wo ich die reale Frequenz überhaupt ablesen kann !?

An einem Frequenzmesser, wenn du einen hast. Besser du besorgst dir 
einen Quarz für den Sockel vom STK.

MfG Spess

von Micha (Gast)


Lesenswert?

spess53 schrieb:
> An einem Frequenzmesser, wenn du einen hast. Besser du besorgst dir
> einen Quarz für den Sockel vom STK.

Ah ok ... versteh ich das richtig : Der internet Oscillator läuft zu 
ungenau. Wenn ich mir einen Quarz besorge darf der maximal halb so 
schnell Schwingen wie die CPU-Frequenz? Den Timer kann ich dann mit 
Hilfe des ext.Quarzes laufen lassen,oder ? Da kommen bestimmt die 
FUSE-Bit's ins Spiel.
Ist beim Kauf des Quarzes etwas zu beachten ?

von Micha (Gast)


Lesenswert?

Ne, das war Blödsinn ...

ich hab mich jetzt nochmal mit den Datenblättern gequält.
Wenn ich das jetzt richtig gelesen habe dann verfügt der AT8515L über 
keine internen Oszillator ? Er muss immer extern mit einer Frequenz 
versorgt werden. Das kann zum einen mit der erzeugten Frequenz vom 
STK500 geschehen (siehe Bild "ClockGenerator") oder man kann einen 
eigenen Quarz anschließen und den Takt zum µC leiten. Darüber ob 
STK500-Freq oder Quarz-Freq am µC anliegen soll entscheidet der 
"OSCEL-Jumper".

Kann mir diese Gedanken jemand bestätigen ?

Laut Datenblatt kann der ATM8515L maximal 8MHz.
Ist bei der Wahl des Quarzes irgendetwas zu beachten ? (Genauigkeit)

Kann es wirklich sein dass die STK500-Frequenz (ClockGenerator) so 
ungenau ist das meine Uhr zu langsam läuft ?

von ... (Gast)


Lesenswert?

Micha schrieb:
> Wenn ich das jetzt richtig gelesen habe dann verfügt der AT8515L über
> keine internen Oszillator ?

Dann lies das Datenblatt nochmal! Insbesondere die erste Seite (und 
ansonsten z.B. ab Seite 39)

von Falk B. (falk)


Lesenswert?

@  ... (Gast)

>> Wenn ich das jetzt richtig gelesen habe dann verfügt der AT8515L über
>> keine internen Oszillator ?

>Dann lies das Datenblatt nochmal! Insbesondere die erste Seite (und
>ansonsten z.B. ab Seite 39)

Dann lies das Posting nochmal. Er schreibt was vom (alten) AT8515L, das 
ist KEIN ATmega8515. Und der AT8515L hat, wie alle "alten" AVRs, KEINEN 
internen RC-Oszillator.

Wobei es scheint, dass der OP AT8515L und ATmega8515L durcheinanderhaut 
;-)

MfG
Falk

von HildeK (Gast)


Lesenswert?

Falk Brunner schrieb:
> Wobei es scheint, dass der OP AT8515L und ATmega8515L durcheinanderhaut
> ;-)

Ja. Im Betreff redet er vom ATMega und im Eröffnungspost ist in der 
AVR-Studio-Seite auch der ATMega ausgewählt.

von ... (Gast)


Lesenswert?

... und das alte Teil heißt AT90S8515 und mit einem L am Ende gabs den 
auch nicht!

von ... (Gast)


Lesenswert?

... und wenige Zeilen nach dem "AT8515L" redet er dann auch wieder von 
"ATM8515L", was wiederum eher für einen ATmega spricht.

von Micha (Gast)


Lesenswert?

... (Gast) hat natürlich Recht !
Es ist ein ATMega8515L und jetzt hab ich auch die Zeile auf der ersten 
Seite entdeckt ("Internel calibrated RC-Oscillator").

Auf den Seiten 38-39 steht etwas von  +/- 3% beim 1Mhz Takt.
(d.h. worst-case 6% --> max.Fehler von 60kHz)
Mit der "run-time-calibration" kommt man auf +/- 1% was immer noch ein 
Fehler von 20kHz wäre.

Als Unwissender sagt mir mein Bauchgefühl das dass eher ungeeignet wäre 
für eine exakte Zeitmessung ist !?

Wie "spess53" und "Holger" schon sagten ... Quarz benutzen !?

Wenn ich mir die Quarze bei Conrad usw. anschaue haben die eine Toleranz 
von ca. +/- 30ppm bei 4Mhz.
dh. worst-case 240Hz Fehler ... das scheint natürlich deutlich besser.

von ... (Gast)


Lesenswert?

Soll das ein Kurzzeitwecker werden oder eine richtige Uhr? Bei letzterem 
wirst Du auch mit einem "normalen" Quarz am AVR auf Dauer nicht viel 
Freude haben.
Hier noch etwas Literatur für Dich:
http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Uhr

PS:
Micha schrieb:
> Auf den Seiten 38-39 steht etwas von  +/- 3% beim 1Mhz Takt.
> (d.h. worst-case 6% --> max.Fehler von 60kHz)
> Mit der "run-time-calibration" kommt man auf +/- 1% was immer noch ein
> Fehler von 20kHz wäre.

Das gilt aber auch nur solange die Temperatur und Versorgungsspannung 
konstant sind! Sieh mal ins Datenblatt ab Seite 230.

von Micha (Gast)


Lesenswert?

... schrieb:
> Soll das ein Kurzzeitwecker werden oder eine richtige Uhr?

Der Ziel ist eine Geschwindigkeitsmessung mit zwei Lichtschranken.
Der Abstand der Lichtschranken soll ungefähr 1 Meter betragen.
Die Geschwindigkeiten werden sich wahrscheinlich um 50km/h bewegen.

d.h. eine Messung dauert ca. 70ms ! Deshalb müsste es doch recht genau 
werden.

von John (Gast)


Lesenswert?

Micha schrieb:
> d.h. eine Messung dauert ca. 70ms ! Deshalb müsste es doch recht genau
> werden.

Also ein Kurzzeittimer. Da reicht ein normaler Quarz vollkommen aus.
Selbst bei einer Abweichung von 200ppm (0,02%) ergibt das bei 50km/h 
einen Fehler von 0,01km/h.

Eine richtige Uhr hätte bei einer Abweichung von 200ppm pro Tag einen 
Fehler von 17,28 Sekunden. (1h 45min im Jhar)

Gruß
John

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.