Hallo,
welchen Quarz mit welchen Timereinstellungen nutzt Ihr um einen halbwegs
genauen Sekundentakt abzuleiten?
+/- 10 Sekunden/ Tag sin völlig ausreichend.
Der Atmega hat nicht mehr zu tun, als Sekunden zu zählen und einen
Portausgang zu schalten....
Vielen Dank.
Chronos schrieb:> Guten Kombi Quarz/Teiler für Uhr
Ich würde Dir die Elektronik eines Quarzweckers empfehlen.
Leicht erhältlich, billig (ab ca. 2EUR) und recht präzise.
Die Präzision kann man ja vor dem "Schlachten" im zusam-
mengebautem Zustand prüfen und ein schlechtes Exemplar
zurückgeben.
Ich werfe mal die Epson GPS-Quarze dazu.
Kostenfaktor 1,50 bei farnell/hbe und trotzdem 0,5 ppm und TCXO.
Genauer gibts auch, kostet dann aber ne Nummer mehr.
Der Haken: SMD und mit 4 Pins @ 2*1 mm schön fummelig.
Größer gibt es bei Ilsi America (3,xx*2,5), kostet aber erstens ca. 5
Euro und hat nur noch 2 ppm.
Chronos schrieb:> Sorry, gern ein kleiner Attiny, das reicht mir völlig aus.
Na, dann wäre es doch irgendwie praktisch, einfach einen zu nehmen, der
in der Lage ist, mit einem handelsüblichen 32,768kHz Uhrenquarz als
Taktquelle zu laufen. Also z.B. ATtiny 24/44/84 oder 25/45/85.
Fast genau wie c-hater schreibt:
µC und 32768 Hz Quarz
8-Bit-Timer mit Prescaler 1:128 ergibt Overflow jede Sekunde.
Im Timer Overflow-Interrupt:
Sekunden in einem Register zählen,
bei 60 auf Null setzen und
Minuten in einem weiteren Register zählen,
bei 60 auf Null setzen und
Stunden in einem weiteren Register zählen,
bei 24 auf Null setzen
und alles geht von vorn los.
Im Hauptprogramm (Endlosschleife) die Register für HH:MM:SS
abfragen und reagieren. - Fertig.
Wie willst du es denn sonst machen?
Jacko schrieb:> Im Hauptprogramm (Endlosschleife) die Register für HH:MM:SS> abfragen und reagieren. - Fertig.
Fast. Danach geht man natürlich noch schlafen (IDLE), um Strom zu
sparen.
Und vor allem anderen (also noch in der Initialisierung) schaltet man
alle nicht benötigte Peripherie ab. Bei den genannten Tinys also ADC,
USI und den zur Taktzählung nicht benötigten Timer.
Hihi: c-hater hat immer noch einen auf der Pfanne!
Ist schon OK, aber ob der µC nun Strom als Grundlast verbrauchen
MUSS, oder an Knopfzellen nur mit Mager-Diät überleben KANN?
Hat der TO nix von erzählt... ;-)
C-hater, Jacko lesen die Anforderungen und der Rest ist off topic..;-)
Ich müsste bei einem 32678 Quarz durch 2^ 15 teilen, korrekt?
Ok 8 Bit timer = 256 * 128 = 2^15 = 32768..... passt genau, Danke.
Den Uhrenquarz nehme ich also als Taktquelle, also externen Quarz.
Genau so ?!
Was nimmt man da für " Ziehkapazitäten" am Quarz, 22pF ?
Schnell noch was von mir:
Mit CKSEL auf "Low-frequency Crystal Oscillator" bist du
meist schon besser, als +/- 10 Sekunden/ Tag.
Hauptsache dein µC kann das. -> Tiny25
Gute Nacht!
Jacko schrieb:> Schnell noch was von mir:>> Mit CKSEL auf "Low-frequency Crystal Oscillator" bist du> meist schon besser, als +/- 10 Sekunden/ Tag.>> Hauptsache dein µC kann das. -> Tiny25>> Gute Nacht!
Verstehe ich nicht.....
Wer taktet den MC?
Uhrenquarz für Interrupt?
Chronos schrieb:> Den Uhrenquarz nehme ich also als Taktquelle, also externen Quarz.
Jepp. Dran denken: Wenn du erstmal mittels der Fuses auf diese
Taktquelle umgeschaltet hast, kannst du nur noch mit sehr geringem
ISP-Takt programmieren. Maximal ca. 8kHz, besser noch deutlich weniger.
> Was nimmt man da für " Ziehkapazitäten" am Quarz, 22pF ?
Das hängt (wie immer) vor allem vom Quarz selber ab. Aber auch vom
physischen Aufbau, da dieser auch schon einen Teil der Bürdekapazität
liefert. In aller Regel kannst du davon ausgehen, dass die üblichen
Uhrenquarze an den genannten Tinys (in DIP auf Lochraster) auch ohne
jede zusätzliche Kapazität anschwingen.
Chronos schrieb:> Wer taktet den MC?
Na der eingebaute Quarzoszillator unter Benutzung des extern
angeschlossenen Uhrenquarzes.
> Uhrenquarz für Interrupt?
Das hat direkt nichts miteinander zu tun.
Es ist aber sinnvoll, den Timerinterrupt zu benutzen, weil das die
Möglichkeit gibt, zwischen den Sekundenticks in den Schlafzustand zu
wechseln und damit erheblich Strom zu sparen. Den Interrupt braucht man
nur, um aus diesem Schlaf auch wieder aufwachen zu können...
Wenn der Energieverbrauch keine Rolle spielt, kann man natürlich
problemlos auch ohne Interrupt auskommen. Notfalls sogar ohne Timer...
c-hater schrieb:> Chronos schrieb:>>> Wer taktet den MC?>> Na der eingebaute Quarzoszillator unter Benutzung des extern> angeschlossenen Uhrenquarzes.>
.? Das ist doch ein Widerspruch in sich?
Interner Quarzoszillator benutzt externen Quarzoszillator (Uhrenquarz)?
Jetzt bin die ich ganz wüsche ;-)
Chronos schrieb:> Jetzt bin die ich ganz wüsche
Statt wie üblich einen Quarz der Kategorie 16MHz oder so zu benutzen,
nimmst du den Uhrenquarz. Damit läuft der Controller zwar grottenlangsam
aber für deine Anwendung immer noch schnell genug.
Chronos schrieb:>> Na der eingebaute Quarzoszillator unter Benutzung des extern>> angeschlossenen Uhrenquarzes.>>> .? Das ist doch ein Widerspruch in sich?
Nein.
> Interner Quarzoszillator benutzt externen Quarzoszillator (Uhrenquarz)?
Nein, die interne Oszillator-Elektronik benutzt den externen Quarz. Und
wird damit zum funktionsfähigen Quarz-Oszillator. Ohne den sind es nur
tote Transistoren, da oszilliert nix.
Und du bist offensichtlich ein Troll. Aber wenigstens mal ein etwas
besser getarnter als das übliche Gesocks, welches hier mittlerweile
>>80% des Traffics generiert...
c-hater schrieb:> Jepp. Dran denken: Wenn du erstmal mittels der Fuses auf diese> Taktquelle umgeschaltet hast, kannst du nur noch mit sehr geringem> ISP-Takt programmieren.
Ich hatte mit 32kHz Takt große Programmierprobleme. Nur mit dem STK500
und 12V Programmierung ging es dann weiter.
Wenn es also nicht um Batteriebetrieb geht, sollte man besser einen
Quarz >=1MHz benutzen.
Chronos schrieb:> Was nimmt man da für " Ziehkapazitäten" am Quarz, 22pF ?
hängt vom Quarz ab, wie er bei der Herstellung abgeglichen wird.
Stichwort Lastkapazität.
Aber heutzutage "zieht" ´man den Quarz nicht mehr, sondern korrigiert
per Software (siehe unter "die genaue Sekunde")denn Trimmer sind teuer,
verschmutzungsempfindlich temperaturabhängiger als COG (NP0) Keramik.
Peter Dannegger schrieb:
> Ich hatte mit 32kHz Takt große Programmierprobleme. Nur mit> dem STK500 und 12V Programmierung ging es dann weiter.
Das hatten wir schon öfter besprochen: ein Hilfstakt an XTAL2 reicht.
Für diesen gibt es sicher eine Obergrenze, aber hier sind zum Beispiel
500 kHz möglich bei einem ATtiny85.
S. Landolt schrieb:> ein Hilfstakt an XTAL2 reicht.
Ich hatte zum Stromsparen noch zusätzlich das CLKPR geladen und das wird
ja bekanntlich vom Resetpin nicht rückgesetzt.
Da ging dann beim 5V ISP im STK500 nichts mehr und ich mußte das 12V ISP
nehmen.
Okay, kommt jetzt drauf an: nehmen wir die genannten 500 kHz, /256 /4,
dann müsste das Programmiergerät also schlimmstenfalls einen SPI-Takt
von unter 488 Hz erreichen.
Ach du gute Güte,
kaum geht man Schlafen, geht hier das Streiten los!
Wie ich (mit Nachtrag) schon schrieb: 32768 Quarz anschließen
und Fuses (CKSEL) auf "Low-frequency Crystal Oscillator" und
schon bist du fast immer im +/-10 s/d Bereich, also +/-115 ppm.
JA DOCH, die ISP muss DANACH also nach dem FUSEn auf LF-Xtal
mit den 32768 Hz klarkommen - und muss für Änderungen auf
<= 8 kHz Prog-Takt umgeschaltet werden.
Auf der STK500 muss man sowieso den CLK per Brücke, oder
mit external Clock an den Tiny25...85 (XTAL1) bringen.
Ich hoffe doch, du hast für Prog-Änderungen auf dem STK einen
NE555-Taktgenerator o.ä. mit 20...70 kHz in greifbarer Nähe...
Hach-ja, der gute c-hater ist oft auf der gleichen Wellenlänge
wie ich, was das ASM-Programmieren betrifft - und hat oft auch
viel bessere Ideen, aber er ist schon etwas mimosig im Umgang...
Aber lass dich bloß nicht auf die Software-Genauigkeits-
Fraktion ein: Was soll der Quatsch bei +/-10 s/d! (115 ppm)
Das KANN was beim Trimmer-Sparen im Bereich +/-50 ppm
helfen (wenn der µC sonst nix zu tun hat) um auf realistische
+/-2...5 ppm zu kommen. Mehr ist GARANTIERBAR bei einem µC-Quarz
nicht drin - und es kostet VIEL Zeit...
(Freu mich schon auf den Gegen-Shit-Storm!) :-)
Musst du eigentlich beim Stromverbrauch sparen?
Stromverbrauch ist nebensächlich.
Ich hab zwar ein STK 500, aber die Fummelei mit der Programmierung spare
ich mir dann lieber und nehm einen 1 MHz Quarz o.ä.
Da es mir auch auf ein paar Sekunden/Tag überhaupt nicht ankommt, würde
wohl auch der interne "Resonator" reichen.
Ich suchte halt nach einem guten Takt/Teiler Verhältnis.
Anwendung soll übrigens eine einfache und komfortable Nachlaufsteuerung
sein, welche auch eine Unterbrechung ermöglicht und im Standbymodus
Stromlos arbeitet.
Hab ich von der Stange bisher nicht gefunden....
Danke
Der interne RC-Oszillator liegt pro Tag eher bei
+/-20 Minuten.
Dann lieber ein 4,194304 MHz Quarz (0,25 EU) mit 2 x 27 pF
an XTAL1/2: +/-10 s sollten drin sein.
Musst du halt noch mal weiter durch 128 teilen, um 1 s zu
erhalten.