Hallo Leute, ich habe einen ATtiny 2313 und wollte ihn mit einem externen 100.000Hz Quarz betreiebn. Auf ihm läuft ein Uhrprogramm. Der Quarz soll die Taktquelle sein. Nun zum Problem. Ich weis nicht wie ich die Fuse Bits einstellen muss. Laut meiner Kenntnis CKSEL 1011/SUT 11/Lowbite FB/ Highbite DF/ Extended FF. Der Quarz soll mit zwei 18pF Kondensatoren an XTAL1 & XTAL2 betrieben werden. Nun zur Frage. Kann mir jemand sagen ob die Einstellungen sitmmen oder nicht?! Einen Chip habe ich schon verbrannt da ich im Extended Bite FB statt FF stehen hatte. Deshalb nun die Frage ob das so Funktioniert?! Danke für euere Hilfe schonmal :-)!
> ich habe einen ATtiny 2313 und wollte ihn mit einem externen 100.000Hz > Quarz betreiebn. Der Quarzoszillator im ATTiny wird mit einem solchen Quarz nicht funktionieren. Du brauchst eine andere Lösung...
Pink Shell schrieb: > Ich glaube er meint 100 kHz. Steht doch da auch - 100 kHz sind 100.000 Hz Chris Webber schrieb: > 100.000Hz
wieso überhaupt dieser Takt? Stromverbrauch oder läuft das Programm zu schnell ab?
Reicht es nicht, wenn du einen höherfrequenen Quarz (z.B. 1 MHz) verwendest und dann CLKDIV8 setzt? Wenn's um Stromverbrauch geht sicher eine akzeptable Lösung.
Hi Chris, Du kannst zwar den Clock per Software justieren, aber, den Oszillator mit der passenden Frequenz solltest trotzdem auswählen. Für eine (Echtzeit)Uhr ist's auch nicht gar so auf mal Pi-Daumen zu wählen. Es hängt von einigen Faktoren, wie µC-Eigenheiten, wie (Umwelt)-Bedingungen ab. Erst dann könntest daran gehen in den Registern die notwendigen Einstellungen zu machen. Der 100kHz ist für den 2313er recht grob eingepaukt. Auf der Atmel-Seite, oder auch hier wirst sicher fündig, wie man eine Uhr aufbaut. Anhaltspunkt - Echtzeit-Uhren_Chip's werden vorwiegend mit den üblichen 32,768kHz, oder ein passend Vielfaches getaktet. Beim Controller ist es etwas anders - - zB. Fetchzeiten, Befehlszeiten, Durchlaufzeiten, Temperaturen, etc... -- also, so, damit am Ausgang ein gestochen scharfer zB. 1 Sekunden Ping, Tick ausgeworfen wird. zB: - für die UART wird zB ein 1,8432MHz Quarz verwendet, eben, damit die Übertragung soweit als möglich fehlerfrei durchgeführt werden kann. -- mit einem 1,000MHz gäbe es eine Menge Prozente Error's. Hindernis, u.A.: die internen Teilerfaktoren sind begrenzt an Anzahl, an Teilbarkeit. -- Ähm, wieso willst denn einen µC als Uhr verwenden, wenn es doch ganz günstig Echtzeit-Uhren mit allem Pi-Pa-Po (Kalender) gibt? Diese' kannst dann eh an den zB. Tiny ankoppeln, zB via I2C, oder Seriellen Bus. Das spart außerdem Software, weil der µC braucht nur den Tick, und so Kleinigkeiten übernehmen, damit dafür mehr Platz für andere Hackeleien ist. Grüße Gerald ---
:
Bearbeitet durch User
Gerald Schwarz schrieb: > Anhaltspunkt - Echtzeit-Uhren_Chip's werden vorwiegend > mit den üblichen 32,768kHz, oder ein passend Vielfaches getaktet. Und wie man eine Echtzeituhr genau abgleicht, hat Peter schon vor langer Zeit gezeigt Beitrag "Die genaue Sekunde / RTC"
Aha, na bitte, und warum übernimmt das der Chris nicht mit seiner Spielerei? oder auch hier: http://www.mikrocontroller.net/articles/Uhr http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC Grüße Gerald ---
:
Bearbeitet durch User
Chris Webber schrieb: > CKSEL 1011 Da bisher nur undefiniertes Geplänkel als Antworten waren, hier mal ein paar Fakten. Deine Annahme für CKSEL 1011 ist völlig falsch, denn das wäre lt. Datenblatt: Freq.-Range: 0.9 - 3 MHz (!) Ceramic Resonator(!) und kein Quarz! Wenn Du dir die Definitionsliste richtig angeschaut hättest, dann wäre Dir aufgefallen, dass CKSEL bei 0.4 MHz, also 400.000 Hz beginnt. Somit wird Dein 2313 mit den 100.000Hz nie starten. Ist von Atmel nicht vorgesehen. Chris Webber schrieb: > SUT 11 Passt nicht zu Deiner CKSEL Angabe.... Nimm lieber einen 3,686411 MHz Quarz, ist für eine Uhrenanwendung wesentlich besser. Lässt sich mit Prescaler und Timer1 im CTC Modus auf ziemlich genau eine Sekunde einstellen.....
Wo kriegst Du einen preiswerten 100kHz Quarz her? Solche tieffrequenten Quarze (32k, 77,5k, 100k)in Stimmgabel-Aufbau haben wesentlich höheren Verlustwiderstand (einige kOhm) als ein MHz-Quarz (20 Ohm bis 80 Ohm). Dafür haben die Kontroller meistens einen extra Oszillator mit extra Anschlusspins. mit den fuses für tieffrequent könnte es vielleicht noch klappen.
:
Bearbeitet durch User
BattMan schrieb: > Nimm lieber einen 3,686411 MHz Quarz, ist für eine Uhrenanwendung > wesentlich besser. Lässt sich mit Prescaler und Timer1 im CTC Modus auf > ziemlich genau eine Sekunde einstellen..... Und erwarte bitte nicht, dass der Quarz, nur weil da 3,686411 MHz drauf steht, auch mit 3,686411 MHz schwingt, wenn du den nicht mit einer Ziehkapazität sauber abgleichst. Meist wird man da mit einer Frequenztoleranz von 30ppm rechnen müssen. Guck mal ins Datenblatt. Für eine Uhr würde das einen untolerierbaren Fehler von mehr als einer Minute pro Monat bedeuten. Und wenn man sich einen Abgleich per Trimmkondensator sparen möchte, landet man eigentlich, egal welche Quarzfrequenz man benutzt, bei der Methode von PeDa.
Hallo Leute, DANKE DANKE DANKE für euere beteiligung. BattMan hat es auf den Punkt gebracht, 100kHz sind zu wenig. Das ist mir auch sehr peinlich da ich das Datenblatt öffter sehe als meine Frau :-) Danke BattMan vier Augen sehen mehr als 2 :-) oh man wie dumm von mir :-( Kurz eine genauere Beschreibung: Software---- Habe eine Uhr mit zwei 7-Segmentanzeigen aufgebaut. Das Programm ist auf einem ATtiny 2313. Die Zeit wird zyklisch über einen Timer im CTC-Modus und Interrupt berechnet. Quasi über den Systemtakt den ich auf 125000 ticks per second runter gerechnet habe. Jede Sekunde also 1000 mal bis 125-1 zählen und auf 0 zurück dabei die Sekundenvariable ++1. Hardware--- An dem Tiny sind 2 Taster, 2x 7-Segmentanzeigen die über 7 Ausgäng und Multiplexing (nicht Charlieplexing!) angesteuert werden. Dazu einen 8MHz Quarz mit 2x 22pF Keramikkondensatoren zu Masse wie im Datenblatt. Soweit hat alles wunderbar geklappt. Hatte die Uhr mit einer Batterie autark über 3 Wochen laufen und keine Abweichung feststellen können (Sekunden zeige ich nicht :-)an) Dann das dumme, nach 3 Wochen war die Batterie leer (220mAh bei 3V) Erst jetzt hatte ich mal das Messgerät rausgeholt und festgestellt das im Stillen Betrieb 0,9mA vom Interrupt verbraucht werden.... Deshalb wollte ich die Taktfrequenz :10 teilen da somit die Stromaufnahmen um Faktor 10 verringern.... Leider geht das ja nicht da zu geringe Taktfrequen für den Chip.... Werde dann wohl 1MHz nutzen und nochmal schauen... Stromsparmodus und usw. machen keinen Sinn da der Intterupt immer am laufen gehalten werden muss....Quasi in den Schlaf schicken dann wieder aufwecken und 1 hochzählen dann wieder schlafen... Ein Echtzeitchip will ich auch nicht nutzen da ich dann wieder bei 0 anfangen muss und jetzt schon so viel Arbeit drin seckt... Programm entwickeln (Timer,CTC,ISR...), Hardware auslegen, Platine mit Paint zeichnen, Platine ätzen usw... Vielleicht weiß ja jemand noch einen Rat..... Danke und schönes WE.. Gruß Chris
Chris Webber schrieb: > Habe eine Uhr mit zwei 7-Segmentanzeigen aufgebaut. Da ist eine hohe Stromaufnahme vorprogrammiert. Vielleicht gefällt Dir ja eine LCD-Variante? Beitrag "7-Segm. LCD-Ansteuerung, 4-stelliges Einbaumodul, Attiny45"
Chris Webber schrieb: > Platine mit Paint zeichnen Das geht anders schneller und bequemer mit Schaltplaneditoren, die - anders als man auf Grund der Bezeichnung vermuten würde - meist auch das Entwerfen von Platinen erlauben.
Chris Webber schrieb: > Dann das dumme, nach 3 Wochen war die Batterie leer (220mAh bei 3V) > Erst jetzt hatte ich mal das Messgerät rausgeholt und festgestellt das > im Stillen Betrieb 0,9mA vom Interrupt verbraucht werden.... Warum muß es denn unbedingt ein ATtiny sein? Alle AVRs außer den ATtiny haben einen RTC-Modus. Z.B. der ATmega48 kann mit 32kHz an T2 in Powersave gehen und verbraucht dann ~1µA.
Ein 100 kHz Quarz ist schon exotisch und eher teuer. Wenn schon ein langsamer Quarz dann eher 32,xxx kHz - die sind billig und dafür hat der µC vermutlich auch passende Einstellungen. Auch wenn da interrupts weiter laufen, macht es schon Sinn Stromsparmodi zu nutzen. Das bringt schon etwas, vor allem wenn man das im Programm besser löst: also etwa den Timer viel mehr Teilen lässt und nur etwa je 1/100 s einen Interrupt hat (halt für das Multiplexing der Anzeige). Selbst dann kann der µC noch zu 90% oder mehr im Stromspamodus bleiben. Man kann auch noch den Takt intern Teilen lassen: z.B. durch 32, damit läuft dann nur der Quarz mit der hohen Frequenz. Das Problem sind vermultich sowieso die Anzeigen, oder sind das LCD - 7 Seg Anzeigen.
Lurchi schrieb: > Wenn schon ein langsamer Quarz dann eher 32,xxx kHz Bei xxx hast du keine große Auswahl. Die Uhrenquarze sind von der Frequenz so ausgelegt, dass die mit einem Teiler durch 2^15 direkt ein Taktfrequenz von 1Hz liefert, d.h. der Quarz schwingt mit 32768Hz.
Hallo nochmal, ich werde mal noch einige Fragen beantworten: -Die 7 Segmentanzeige möchte ich nutzen da ich sie schön und retro finde -Paint nutze ich weil die Programme zur Erstellung der Paltinen zu unflexibel sind. Mit Paint ist man total frei. Man kann Form, Dicke und Verlauf der Leiterbahnen frei auf engstem Raum verlegen. Zudem kommen die Brücken da hin wo mal will und nicht irgendwo... Man ist somit viel viel schneller -Einen ATtiny möchte ich der Größe wegen nutzen. Die Uhr muss in einen kleinen Raum passen. Und als Soic bzw. SMD Variante ist der 2313 eben klein. -32,786 KHz kann der Chip nicht verarbeiten da zu klein!!! Nun nur noch eine letzte Frage!!! Im Datenblatt seht kleinste Frequenz 900000Hz! Ist hier die Frequenz ohne Vorteiler gemeint oder mit??? Soll heißen tatsächlich 900000Hz oder ist ein (default) aktivieren des Vorteilers noch möglich...also ein Achtel = 112500Hz ????? Gruß Chris
:
Bearbeitet durch User
Chris Webber schrieb: > -Einen ATtiny möchte ich der Größe wegen nutzen. Die Uhr muss in einen > kleinen Raum passen. Und als Soic bzw. SMD Variante ist der 2313 eben > klein. Was spricht dagegen, einen ATMega zu nutzen, der ist nicht unwesentlich größer und selbst der kleinste Arduino (nano oder wattuino) finden auf der Rückseite eines einzigen 20mm-Segments Platz. Außerdem sparst du dir Paint, aufwändige Bibliotheksentwicklung und hast mehr Zeit, weitere Retro-Anzeigen zu studieren. Meinen Respekt hast du dir aber uneingeschränkt verdient, da der entscheidende zehntel Millimeter an Genauigkeit mit Paint sehr viel Fingerspitzengefühl erfordert. Bauteilbibliotheken sind ja auch unnötig und den Leitungen/ Signalen Namen zu geben sowie mehrere Ebenen mit Bestückungsdruck, Bohrungen und dgl. zu versehen die Christbaumspitze an der mauretanischen Luxuszeder. RTC-Modul aus dem Versandhandel (samt Batteriehalter) und I2C-Anbindung an (d)einen ATTiny hätte ich noch anzumerken.
:
Bearbeitet durch User
Hallo Boris, an einen Atmega hatte ich noch garnicht gedacht.... Hatte keinen kleinen gefunden und bin dann davon aus gegangen die kleinen wären alles ATtiny chips... Welche gäbe es den die gleich oder kleiner als ein 2313 sind aber auch min 20 Pins haben? Aber weißst du wie das mit der min. Taktfrequenz gemeint ist? Danke dir für die Anregungen :-)
:
Bearbeitet durch User
Chris Webber schrieb: > -Einen ATtiny möchte ich der Größe wegen nutzen. Der ATmega48 ist im 28M1 exakt gleich groß, wie der ATtiny2313 im 20M1 Gehäuse (4*4mm²).
Hallo Leute, danke Peter das ist ne gute Info mit dem mega48/88/168. Habe aber nun einiges in Erfahrung bringen können. Das ist für die Allgemeinheit auch interessant falls so ein Frage mal wieder auftaucht. 1. Auch wenn im Datenblatt steht das die kleinst möglich Frquenz (nur Quarz)an einem µC 0,9MHz beträgt, können jedoch kleinere realisiert werden. Damit ist gemein das der Quarz min. 0,9 MHz haben muss um betriebeb werden zu können. Man kann den Takt jedoch mittels Vorteiler (prescaler) über die Fuse Bits noch um Faktor 8 verringern. Z.B. 2MHz Quarz an Xtal1&2 danach Vorteiler in den Fuse Bits einsellen (default, schon voreingestellt mit Harken also 0, als nicht programmiert) und man erhält 250000Hz. Bei der min. Frequenz von 0,9MHz wären das dann 112500Hz. Kleiner geht nicht. 2. Man kann für niedrige Frequenzen einen ATtiny26-16/261/461/861 verwenden. Diese bieten zudem einen EXTRA Einstellung für einen 32,768kHz-Uhrenquarz. Somit kann der Chip mit 32kHz arbeiten. Beide Varianten erzeugen eine Stromersparnis. Des weiternen habe ich gelesen das man den Chip mit einem Programm abgleichen kann. Quasi die interne Frequenz des Chips richtig einsetellen um sie genauer zu machen. Wobei die Abweichung (Angabe in ppm) bleibt. GRuß Chris
:
Bearbeitet durch User
H >1. Auch wenn im Datenblatt steht das die kleinst möglich Frquenz (nur >Quarz)an einem µC 0,9MHz beträgt, können jedoch kleinere realisiert >werden. ... Es gibt auch noch den Low Frequency Crystal Oscillator als Taktquelle. Und der läuft mit 32.768 kHz Quarz. MfG Spess
spess53 schrieb: > Es gibt auch noch den Low Frequency Crystal Oscillator als Taktquelle. > Und der läuft mit 32.768 kHz Quarz. Der Stromverbrauch ist jedoch deutlich höher, als nur T2 mit 32kHz bei einem ATmega. Auch kann es mit 32kHz CPU-Takt schnell eng werden. Z.B. wenn man LED-Anzeigen multiplexen und dimmen will.
Ja man kann auch einen Oszillator verwenden. Ich meinet aber eine rein Quarz Lösung (an XTAL1 & XTAL2)! Quarz aus dem Grund da er deutlich kleiner ist. Des Weiteren denke ich das der Stromverbrauch bei einem CPU- Takt von 32,768kHz so gering ist, dass man sich weniger gedanken drum machen muss. Das einzige was von Nachteil ist wie Peter Dannegger schon bemängelt hat ist dann das Multiplexen oder sonstige Zeitabhängie Aktionen. Dashalb würde ich eher auf 250.000Hz gehen. Der Stromverbrauch dürfte sich trotzdem verringern wenn ich bedenke, dass ich bei 1MHz 0,9mA ohne Stromsparmodus im reinen Rechenbetrieb hatte. Sobald die 2 7-Segmentanzeigen dazu kommen steigt der Wert auf 16mA, jedoch nur für wenige Sekunden. Es sind grüne Segmentanzeigen die leider mehr Saft brauchen. Also von 1MHz auf 250kHz wäre das Faktor 4. Somit der Stromverbrauch auch durch 4. Sollte dann klappen... Danke, an euch alle ...schöne Grüße aus der Pfalz!
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.