Hi, ich möchte eine Echtzeituhr mit dem Attiny261 bauen. Ich habe gelesen, daß man einen 32Khz Quarz direkt anschliessen kann. Frage 1: was für einen Quarz brauche ich dafür, vor allem mit welcher Kapazität? Frage 2: Wie Schalte ich per Software zwischen externem Quarz und internen RC-Oszillator um? Danke im Voraus.
Jesse schrieb: > Hi, > > ich möchte eine Echtzeituhr mit dem Attiny261 bauen. Ich habe gelesen, > daß man einen 32Khz Quarz direkt anschliessen kann. ohne jetzt im Datenblatt nachgesehen zu haben - gehe ich mal davon aus das der das unterstützt (Timer2 - async.Mode) > Frage 1: was für einen Quarz brauche ich dafür, vor allem mit welcher > Kapazität? 32.768kHz, 6pF oder 12pF - meist weis man sowiso nicht was man bekommt > Frage 2: Wie Schalte ich per Software zwischen externem Quarz und > internen RC-Oszillator um? gar nicht - die Fuses musst du so einstellen, das der tiny mit internem RC-Oszillator arbeitet, dann kannst du per Software den asyncronen Takt für den Timer aktivieren, der dann mit dem externen Quarz getaktet wird. Sascha
Jesse schrieb: > ich möchte eine Echtzeituhr mit dem Attiny261 bauen. Ich habe gelesen, > daß man einen 32Khz Quarz direkt anschliessen kann. Den kannst du dann als CPU-Clock für alles benutzen. Den Asynchron-Mode mit Timer 2 können nur die Atmegas. Attinys haben nicht mal einen Timer 2. Wenn du eine Batterie-Ühr bauen willst, nimmst du einen Atmega48pa, für eine netzbetriebene Uhr suchst du mal nach Peter Danneggers "Die genaue Sekunde". Dann kannst du auch den 261 verwenden. mfg.
Thomas Eckmann schrieb: > Den kannst du dann als CPU-Clock für alles benutzen. Würd ich vermutlich so machen. Viel Rechenpower braucht eine solche Uhr ja eh nicht, der ATtiny reicht bestimmt. > Den Asynchron-Mode mit Timer 2 können nur die Atmegas. Attinys haben > nicht mal einen Timer 2. Stimmt, auch neuere ATtinys haben meist nur zwei Timer (0 und 1). Die Timer können allerdings auch asynchron betrieben werden, das heißt, sie können jeden beliebigen Takt verarbeiten, der von außen zugeführt wird (max. 1/4 des CPU-Takts).
>Die Timer können allerdings auch asynchron betrieben werden, das heißt, sie >können jeden beliebigen Takt verarbeiten, der von außen zugeführt wird >(max. 1/4 des CPU-Takts). Dann braucht es aber einen Quarzoszillator und nicht nur den Quarz.
error schrieb: >>Die Timer können allerdings auch asynchron betrieben werden, das heißt, sie >>können jeden beliebigen Takt verarbeiten, der von außen zugeführt wird >>(max. 1/4 des CPU-Takts). > Dann braucht es aber einen Quarzoszillator und nicht nur den Quarz. Völlig richtig. Deswegen lieber gleich das Quarz für den Mikrocontroller-Takt verwenden. Bei einem so langsamen Takt braucht der ATtiny auch nur sehr wenig Strom.
Markus W. schrieb: > Völlig richtig. Deswegen lieber gleich das Quarz für den > Mikrocontroller-Takt verwenden. Bei einem so langsamen Takt braucht der > ATtiny auch nur sehr wenig Strom. das schon, aber man will ja auch noch an die Daten rankommen und bei 32kHz Takt wird schon alles recht langsam. Sascha
Sascha Weber schrieb: > das schon, aber man will ja auch noch an die Daten rankommen und bei > 32kHz Takt wird schon alles recht langsam. Ach was, 32 kHz ist gar nicht so langsam - ok, vorausgesetzt, man programmiert in Assembler.
Danke schon mal für die vielen Antworten. Das Problem ist, daß ich außerdem noch eine schnelle Clocksource für PWM etc benötige, und die Atmegas können wieder keinen High-Speed PWM. Ich denke, ich werde einen externe Echtzeituhr verwenden.
Jesse schrieb: > Das Problem ist, daß ich außerdem noch eine schnelle Clocksource für PWM > etc benötige, und die Atmegas können wieder keinen High-Speed PWM. Soweit ich erkennen kann ist der Tiny 261 in der Lage, gleichzeitig sein Highspeed-PWM via PLL aus dem internen RC-Oszillator und den Prozessortakt aus einem 32KHz Uhrenquarz ableiten. Du hast also einerseits eine schnelle Clocksource für PWM und andererseits eine langsame für die Uhr. Wobei eine Uhr auch mit einem höherfrequenten Quarz funktioniert. Da der Prozessortakt durch einen per Software programmierbaren Prescaler läuft lässt sich der Stromverbrauch dadurch drosseln, nur der Oszillator selbst braucht dann etwas mehr Strom. Hängt halt davon ab, wieviele Mikroampere akzeptabel sind.
Hi >Soweit ich erkennen kann ist der Tiny 261 in der Lage, gleichzeitig sein >Highspeed-PWM via PLL aus dem internen RC-Oszillator und den >Prozessortakt aus einem 32KHz Uhrenquarz ableiten. Du hast also >einerseits eine schnelle Clocksource für PWM und andererseits eine >langsame für die Uhr. Nein. Bei Verwendung der PLL ist nur interner Takt mit 16 oder 8 MHz möglich. MfG Spess
spess53 schrieb: > Bei Verwendung der PLL ist nur interner Takt mit 16 oder 8 MHz > möglich. Nö, es geht beides: "The PLL is enabled when the CKSEL fuses have been programmed to 0x0001 (the PLL clock mode is selected) or the PLLE bit has been set to one." Peter
Hi >Nö, es geht beides: >"The PLL is enabled when the CKSEL fuses have been programmed to 0x0001 >(the PLL clock mode is selected) or the PLLE bit has been set to one." Im aktuellen Datanblatt steht: The internal PLL is enabled when CKSEL fuse bits are programmed to ‘0001’ and the PLLE bit of PLLCSR is set. The internal oscillator and the PLL are switched off in power down and stand-by sleep modes. MfG Spess
Peter Dannegger schrieb: > "The PLL is enabled when the CKSEL fuses have been programmed to 0x0001 > (the PLL clock mode is selected) or the PLLE bit has been set to one." Mit CKSEL=0001 ist aber der Quarzoszillator abgeschaltet.
6.2 Clock Sources. 0001 => XTALx sind I/O-Pins. 6.2.2 High-Frequency PLL Clock Technischer Hintergrund könnte sein, dass der Timer so zwar schneller läuft als die CPU, aber aus der gleichen Taktquelle abgeleitet und damit nicht asynchron ist. Folglich keine Synchronisierung zwischen CPU und Timer erforderlich ist. Man kann zwar die PLL programmiert abschalten, aber das ändert nur die Taktfrequenz, nicht die Taktquelle.
A. K. schrieb: > Man kann zwar die PLL programmiert abschalten, aber das ändert nur die > Taktfrequenz, nicht die Taktquelle. Nur wenn sie nur Timertakt ist. Wenn sie gleichzeitig auch CPU-Takt ist, ist sie immer an: "When the PLLE is set, the PLL is started and if needed internal oscillator is started as a PLL reference clock. If PLL is selected as a system clock source the value for this bit is always 1." Peter
Ok, ich glaube ich habe Atmels Sprache nun dekodiert. - Wenn CKSEL == 0001, dann ist die PLL eingeschaltet. - Wenn CKSEL != 0001, dann wird in diesem Satz überhaupt nichts gesagt. Damit wäre aber asynchroner PLL-Betrieb möglich, wie ich ursprünglich ja annahm. Da andererseits 0001 bedeutet, dass die CPU von der PLL versorgt wird, und damit PLLE automatisch gesetzt ist, darf man die Bedingung in 6.2.2 "... and PLLE bit of PLLCSR is set" wohl als eher irreführend als hilfreich ansehen. Damit wäre spess53 wieder am Zuge.
Jesse schrieb: > Das Problem ist, daß ich außerdem noch eine schnelle Clocksource für PWM > etc benötige, > und die Atmegas können wieder keinen High-Speed PWM. Dann nimm doch einen ATtiny261 als Koprozessor. Ich denke, das ist auch die Idee dahinter: wer eine Highspeed-PWM machen will, will oft Motoren oder sowas treiben, die dann zuverlässig laufen muss. Da macht es sich gut, wenn man auf diesem Controller nur eine kleine, überschaubare Aufgabe abarbeiten lässt und den Rest dem Hauptprozessor überlässt. Man muss ja nicht unbedingt mit Gewalt alles in einen Chip werfen.
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.