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.
Der Controller kann also ruhig mit einem niedrigen Takt laufen...
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.
Er hier https://hbe-shop.de/Art-2545848-EPSON-X1G004691001912-TCXO-GPS-13MHZ-2X16MM-UEBERST-SINUS Achtung, das sind natürlich Oszillatoren, keine Quarze. Wenn es aber um einen Mikrocontroller geht, dann sind die Dinger wunderbar geeignet WENN der Mikrocontroller mit 3,3V-Pegel klarkommt.
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 ?
Ansonsten: Ich muss auch gleich auf IDLE! HIBERNATING auf Madeira o.ä. wäre mir lieber, aber das WAKE-UP-EVENT kommt um 04:45. :-(
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...
Wieso soll ich ein Troll sein, wenn Du dich etwas unglücklich ausdrückst?
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.
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.