PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Genauer Sekundentakt (mit Quarz) - welcher Attiny geeignet ?



Andree-HB
22.08.2007, 08:29
Bei Vergleichslisten sehe ich meist immer nur Speicherangaben, Timer, interner Takt & Co., aber nirgendwo, welcher Typ mit einem externen (Uhren)Quarz für eine Softclock beschaltet werden kann.

Ich brauche für ein sehr kleines Projekt einen Attiny, der halt einen genauen Sekundenimpuls liefern kann und mir zwei freie Pins bereit stellt und eine sehr geringe Stromaufnahme hat.

Habt Ihr `nen Tipp für mich ?

Hanni
22.08.2007, 09:00
Nimm nen Tiny13, nen externen Quarz und konfiguriere den Timer halt paasend.
Nen Uhrenquarz braucht man sicher nicht dafür.

Grüße,
Hanni

SprinterSB
22.08.2007, 10:18
Schau mal den ATtiny25V (je nach Projekt 45V/85V).

Der geht ab 1.8V und braucht bei 1.8V nur 450µA (Aktiv @ 1MHz) bzw 100nA im PowerDown.

Er hat 2 Tmier. Bei richtiger Verwendung ist deine Zeitbasis so genau wie dein Quarz.

Gock
22.08.2007, 11:12
Bei den Vergleichslisten von Atmel (Parametric Table) findest Du die Möglichkeit, einen Uhrenqurz (rund32kHz) anzuschließen unter der Bezeichnung "RTC". --> RealTimeClock
Gruß

Andree-HB
22.08.2007, 11:34
findest Du die Möglichkeit, einen Uhrenqurz (rund32kHz) anzuschließen


...sehe ich das dort richtig, dass ich bei keinem ATiny einen Uhrenquarz anschliessen kann ? Denn das brauche ich unbedingt, da schätzungsweise der interne Takt zu ungenau sein wird, um daraus meinen Sekundentakt zu bilden....der muss nämlich über etliche Stunden sekundengenau bleiben.

Gock
22.08.2007, 13:48
Nach einem kurzen Blick ist leicht zu sehen: Du hast recht, die haben alle keinen RTC.
Vor kurzem gab es aber einen Thread darüber, wie man mit einem MHz Quarz eine relativ gute Genauigkeit erzielen kann. Finde ich aber gerade nicht.
Wo jetzt der genaue Vorteil liegt, einen 32,x Uhrenquarz zu benutzen, wüsste ich auch gerne.
Kann das jemand beantworten?
Gruß

MeckPommER
22.08.2007, 14:28
Warum die so brauchbar sind, liegt daran, das man die Taktfrequenz am einfachsten durch Potenzen von 2 teilen kann im µc.
Also /2, /4, /8, /16, /32, /64, /128, /256, /512, /1024, /2048, /4096, /8192, /16384, /32768, .....

wenn du z.b. nen 32,768 kHz Quartz hast, kann man diesen takt sehr einfach durch 32768 teilen und bekommt ein 1Hz-Signal.

Bei den glatten MHz-Frequenzen der meisten Quartze muss man schon etwas mehr Aufwand treiben, da beim Teilen durch 2,4,8,... da recht "krumme" Frequenzen bei rauskommen.

askazo
22.08.2007, 14:50
Wenn Du einen beliebigen Mega mit einem 8 MHz-Quarz nimmst, einen Timer mit Vorteiler 64 laufen lässt und mit dem Timer-Overflow alle 125 Zählschritte einen Interrupt auslösen lässt, hast Du einen recht genauen 1 Millisekunden-Timer.

Wenn Du nicht unbedingt dann noch die Millisekunden zählen möchtest, kannst Du auch Vorteiler 256 nehmen und den Timer-Overflow alle 31250 Zählschritte auslösen lassen. Dann hast Du einen Sekunden-Takt.

Gruß,
askazo

SprinterSB
22.08.2007, 14:58
Aus MHz-Takten genaue Sekunden-Takte zu bekommen ist kein Problem, zumindest hatte ich bei AVR noch nie Probleme, weil die Timer interne Prescaler haben. Wenn man nicht selber an dem CNTn-Register fummelt (wodurch man Zyklen verliert), sondern die CTC-Funktionalität benutzt (clear timer on compare match), dann ist der Takt wie gesagt so genau wie der Quarz.

Vorteil eines 32.768Hz-Quarzes hat man zB, wenn man einen Binärteiler wie CD4060 verwendet. Weiterer Vorteil ist die Unabhängigkeit vom µC-Takt; man kann den µC also sparsam bei 128kHz takten und/oder RC-Oszillator verwenden.

Weiterhin unterscheiden sich Uhrenquarze in der Bauform: als Röhrchen im Gegensatz zu HC18-U oder HC49-U bei "großen" Quarzen.

Uhrenquarze werden anders betrieben (Serienresonanz vs. Parallelresonanz) und reagieren deshalb anders auf parasitäre Kapazitäten.

Oft arbeiten Uhrenquarze genauer und sparsamer. Die Sparsamkeit hängt mit der kleineren Frequenz zusammen (Umladeverluste), die Genauigkeit weiß ich net...wohl wegen anderem Betrieb/anderer Fertigung.

askazo
22.08.2007, 15:06
Die 'krumme' Frequenz 32,768 kHz kommt im übrigen daher, dass 2^15 genau 32768 ergibt. Das bedeutet, dass man die Taktzeit des 32,768kHz-Quarz (also 30,518µs) einfach durch mehrmaliges Multiplizieren mit 2 auf genau eine Sekunde bringen kann. Mit einem 16Bit Binärzähler kann man somit eine genaue Sekundentaktung bekommen.

askazo

Andree-HB
22.08.2007, 20:02
Ich hab`s nun mit `nem Atmega8L und einem Uhrenquarz gelöst :
http://www.pixelklecks.de/1f40e2973f0cb1401/03c19899941191201/index.html

http://www.pixelklecks.de/images/pille02.jpg

http://www.pixelklecks.de/images/pille01.jpg


Von den Kosten her war`s eh`kein grosser Unterschied, halt ziemlich unsinnig wegen der Bauform und dass ich echt nur zwei Pins benötige. Ausserdem ist der Stromverbrauch etwas höher.

...aber egal - funktioniert gut ! :-)