Forum: Mikrocontroller und Digitale Elektronik ATtiny 2313 0,1MHz Quarz


von Chris W. (Firma: H.) (vbweber)


Lesenswert?

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 :-)!

von Micha (Gast)


Lesenswert?

> 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...

von Pink S. (pinkshell)


Lesenswert?

Ich glaube er meint 100 kHz.

von Mike (Gast)


Lesenswert?

Pink Shell schrieb:
> Ich glaube er meint 100 kHz.

Steht doch da auch - 100 kHz sind 100.000 Hz

Chris Webber schrieb:
> 100.000Hz

von Thomas (kosmos)


Lesenswert?

wieso überhaupt dieser Takt? Stromverbrauch oder läuft das Programm zu 
schnell ab?

von greg (Gast)


Lesenswert?

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.

von Gerald S. (geralds)


Lesenswert?

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
von Mike (Gast)


Lesenswert?

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"

von Gerald S. (geralds)


Lesenswert?

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
von BattMan (Gast)


Lesenswert?

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.....

von Peter R. (pnu)


Lesenswert?

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
von Mike (Gast)


Lesenswert?

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.

von Chris W. (Firma: H.) (vbweber)


Lesenswert?

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

von m.n. (Gast)


Lesenswert?

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"

von Mike (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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.

von Lurchi (Gast)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

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.

von Chris W. (Firma: H.) (vbweber)


Lesenswert?

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
von Boris O. (bohnsorg) Benutzerseite


Lesenswert?

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
von Chris W. (Firma: H.) (vbweber)


Lesenswert?

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
von Peter D. (peda)


Lesenswert?

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²).

von Chris W. (Firma: H.) (vbweber)


Lesenswert?

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
von spess53 (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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.

von Chris W. (Firma: H.) (vbweber)


Lesenswert?

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
Noch kein Account? Hier anmelden.