Forum: Mikrocontroller und Digitale Elektronik Verfuster ATMega32, 32khz Quarz


von Christian L. (christian_l44)


Lesenswert?

Hallo,

ich bin sehr neu auf dem Gebiet und habe das erste mal einen Chip 
gefust. Natürlich spricht das Ding jetzt kein Wort mehr mit mir. Vlt 
könnt ihr mir helfen.

Ich versuche eine simple Digitaluhr zu bauen und habe daher einen 
32.768khz Quarz beim Conrad besorgt. Ein Display 1x16Zeilig konnte ich 
schon ansprechen und war sehr glücklich ;-)

Jetzt war es an der Zeit für den externen Oszilator, um eine Sekunde 
korrekt zu definieren und so habe ich mit dem Fusecalc 
(http://www.engbedded.com/fusecalc) die Config
Low: 0xC9, High 0x89 eingestellt.

Aufgebaut habe ich es wie im Datenblatt beschrieben:
http://www.mikrocontroller.net/attachment/79603/crystal.jpg

Jetzt habe ich schon selbst gemerkt, dass CKOPT eingeschaltet ist und 
somit die internen Kondensatoren ebenfalls aktiv sind. Daher habe ich 
den aufbau auch einmal ohne die 22pF aufgebaut. Ging leider auch nicht.

Jetzt habe ich mehrere Fragen:
1) Kann ich den Chip mit dem derzeitig Fusesetting noch irgendwie 
retten?
2) War meine Überlegung grundsätzlich richtig? Also mit dem 32khz und 
den fuses?
3) Was wäre die korrekte fuseconfig gewesen?

Viel Text und hoffentlich viel Erkenntnisse für mich.

Danke fürs Lesen und bis bald
Christian

von Christian L. (christian_l44)


Angehängte Dateien:

Lesenswert?

Hier mal 2 Bilder.

Und schon einmal danke im voraus für etwaige Hilfe.

Chris

von Karl H. (kbuchegg)


Lesenswert?

Puh.
So einfach ist das jetzt nicht mehr.
Dreh mal die ISP-Programmierfrequenz so tief runter, wie es nur geht. 
Die darf nicht höher als 1/4 deiner µC-Taktfrequenz sein. Und bei 32kHz 
wirds da dann mit den üblichen Einstellungen schon eng.

Generell: Den 32kHz Quarz würde ich nicht als Taktversorgung des Mega 
verwenden. Wenn, dann kommt der als externer QUarz an den Timer 2 und 
taktet den Timer 2 direkt.

Da aber auch dann der Takt nicht 100% exakt 32768 Hz sein wird, muss der 
genauso mit Kondensatoren abgeglichen werden, wie jeder andere Quarz 
auch. Daher meine persönliche Meinung: Bringt nicht so viel, wie es sich 
zunächst anhört. Da nehm ich lieber einen Baudratenquarz, mit dem ich 
mit einem schönen Vorteiler am Timer 1 auf einen schönen Basistakt 
komme, und gleiche das ganze mit dem CTC Modus sauber ab. Dann hab ich 
dadurch wenigstens noch eine vernünftige Arbeitsgeschwindigkeit des µC, 
so dass der seine Aktionen in vertretbarer Zeit erledigen kann. Und ich 
denke mal in Summe wird unterm Strich auch kein höherer Stromverbrauch 
rauskommen. Sicher, bei einer geringeren Taktfrequenz ist der 
Stromverbrauch geringer, dafür ist der µC aber auch langsamer und es 
dauert länger, bis er wieder in den Sleep kommen kann. Ich habs 
allerdings nicht gemessen, d.h. ich kanns nicht beweisen.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

IMG_4048.JPG
 4,1 MB, 0 Downloads

IMG_4054.JPG
 3,4 MB, 0 Downloads


Ich warte auf den Tag, an dem Jemand auf die Idee kommt für so etwas ein 
unkomprimiertes Full-HD-Video anzuhängen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Christian L. schrieb:
> Jetzt war es an der Zeit für den externen Oszilator, um eine Sekunde
> korrekt zu definieren und so habe ich mit dem Fusecalc
> (http://www.engbedded.com/fusecalc) die Config
> Low: 0xC9, High 0x89 eingestellt.
>
> Aufgebaut habe ich es wie im Datenblatt beschrieben:

Wenn Du das Datenblatt richtig gelesen hättest, dann hättest Du erkannt, 
dass der Uhrenquarz lediglich als Taktgeber für Timer2 im asynchronen 
Modus gedacht ist, nicht aber als Taktversorgung für den Mega selbst. 
Gut, Anfängerfehler. Um den Stein wieder zum Leben zu erwecken, musst Du 
den Uhrenquarz abklemmen und eine Frequenz größer 1Mhz an XTAL1 
schalten. Diese kann zum Beispiel aus einem Blechbüchsen-Oszillator von 
einer alten Grafik- oder Netzwerkkarte stammen oder Du baust Dir einen 
Generator mit einem CD4093, einem Widerstand 4k7 und einem Kondensator 
470pF auf. Dann versuchst Du über ISP die Fuses wieder auf internen 
Generator zu fusen.

Karl Heinz Buchegger schrieb:
> Da aber auch dann der Takt nicht 100% exakt 32768 Hz sein wird, muss der
> genauso mit Kondensatoren abgeglichen werden, wie jeder andere Quarz
> auch. Daher meine persönliche Meinung: Bringt nicht so viel, wie es sich
> zunächst anhört.

Der große Vorteil eines Uhrenquarzes an Timer2 ist die vollkommen 
asynchrone Betriebsweise. Man kann so den internen Generator kalibrieren 
und den Controller zur Laufzeit mit einer beliebeigen Taktrate von ein 
paar kHz bis zu etwa 14Mhz laufen lassen. Das ergibt bei den klassischen 
Megas die größte Flexibilität des Verhältnisses von Performance und 
Stromverbrauch.

Karl Heinz Buchegger schrieb:
> Sicher, bei einer geringeren Taktfrequenz ist der
> Stromverbrauch geringer, dafür ist der µC aber auch langsamer und es
> dauert länger, bis er wieder in den Sleep kommen kann. Ich habs
> allerdings nicht gemessen, d.h. ich kanns nicht beweisen.


Das stimmt. Unterm Strich ist es energietechnisch günstiger, den 
Controller schneller zu takten und nur kurz laufen zu lassen. Am 
schnellsten kommt der Controller mit dem internen Generator in Gang, was 
lediglich 6 Clocks dauert. Externe Quarze brauchen -zig Millisekunden, 
bis der Controller stabil läuft. Der Uhrenquarz kann im Sleep 
weiterlaufen, den Controller wecken und verbraucht gerade mal um 10µA. 
Bei neueren PicoPower-AVRs nur um 1µA.

von Christian L. (christian_l44)


Lesenswert?

> Knut Ballhause schrieb:
> Wenn Du das Datenblatt richtig gelesen hättest, dann hättest Du erkannt,
> dass der Uhrenquarz lediglich als Taktgeber für Timer2 im asynchronen
> Modus gedacht ist, nicht aber als Taktversorgung für den Mega selbst.
> Gut, Anfängerfehler.

Hallo,

vielen Dank für die Rückmeldungen! Anfängerfehler ist völlig korrekt ;-) 
Aber darum gehts ja auch. ich verdiene mein Geld ja mit etwas anderem. 
Ich möchte einfach nur ein bischen basteln - und lernen!

Ich werde versuchen den Mega wieder zum Leben zu erwecken und 
anschließend die Clock des 2. Timers extern befüttern.

Danke nochmal für die Nachrichten.

Gruß
Christian

von Karl H. (kbuchegg)


Lesenswert?

Knut Ballhause schrieb:

> Wenn Du das Datenblatt richtig gelesen hättest, dann hättest Du erkannt,
> dass der Uhrenquarz lediglich als Taktgeber für Timer2 im asynchronen
> Modus gedacht ist, nicht aber als Taktversorgung für den Mega selbst.

Zu meiner großen Überraschung stimmt das allerdings nicht ganz. Im 
Datenblatt des Mega32 ist tatsächlich angegeben, das man einen 32kHz 
Quarz als 'Device Clock Source' benutzen kann. Da gibt es sogar eine 
eigene Fuse-Stellung dafür.

Entweder das, oder der entsprechende Abschnitt ist tatsächlich derart 
missverständlich geschrieben, dass dieser Fehler mehr als nur 
verzeihlich ist.

von Christian L. (christian_l44)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Knut Ballhause schrieb:
>
>> Wenn Du das Datenblatt richtig gelesen hättest, dann hättest Du erkannt,
>> dass der Uhrenquarz lediglich als Taktgeber für Timer2 im asynchronen
>> Modus gedacht ist, nicht aber als Taktversorgung für den Mega selbst.
>
> Zu meiner großen Überraschung stimmt das allerdings nicht ganz. Im
> Datenblatt des Mega32 ist tatsächlich angegeben, das man einen 32kHz
> Quarz als 'Device Clock Source' benutzen kann. Da gibt es sogar eine
> eigene Fuse-Stellung dafür.
>
> Entweder das, oder der entsprechende Abschnitt ist tatsächlich derart
> missverständlich geschrieben, dass dieser Fehler mehr als nur
> verzeihlich ist.

Hi,

das stimmt. Deshalb habe ich das ja auch nur gemacht. Dort steht, dass 
wenn man die Clock mit dem 32khz extern ansteuert solle man die Clock 
Fuses auf 1001 setzen. Das hatte ich dann ach geamcht. leider steht dort 
nicht, wie man dann SUT1 und SUT2 sowie CKOPT setzen muss. Ich denke, 
dass ich die 4 Clock-Bits korrekt gesetzt habe und mein Fuse-Fehler dann 
in einem Bit der drei anderen SUT1+2 und/oder CKOPT zu suchen ist.

By the way, das war meine eigentliche Frage in diesem Thread ;-)

Gruß
Christian

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Zu meiner großen Überraschung stimmt das allerdings nicht ganz. Im
> Datenblatt des Mega32 ist tatsächlich angegeben, das man einen 32kHz
> Quarz als 'Device Clock Source' benutzen kann. Da gibt es sogar eine
> eigene Fuse-Stellung dafür.

Huh?! Oh, dann muss ich mich entschuldigen. Den Opa M32 hatte ich so 
nicht in Erinnerung. Aber im Übrigen gilt oben Gesagtes ;-).

Danke für den Hinweis, Karl Heinz!

von Christian L. (christian_l44)


Lesenswert?

Also im Datenblatt steht es ja nun drin und ich habs auch so gefust wie 
angegeben. EIGENTLICH sollte es ja gehen. Hat noch irgendwer eine letzte 
Rückmeldung, ob es an den anderen Fuses gehangen haben kann? SUT und 
CKOPT?

Gruß
Christian

von Karl H. (kbuchegg)


Lesenswert?

Woher weißt du, dass der M32 nicht mehr läuft?

Nochmal:
Die ISP-Programmierfrequnenz darf nicht höher sein, als 1/4 der 
Takfrequenz des Controllers. Wenn die zu hoch, dann kannst du auf den µC 
nicht mehr zugreifen!

Und wenn dein M32 jetzt mit 32kHz läuft, dann musst du mit der 
ISP-Frequenz in den Keller gehen!

von Christian L. (christian_l44)


Lesenswert?

Mhh,

wie finde ich heraus, was die Programmierfrequenz ist?

Gruß
Christian

von Karl H. (kbuchegg)


Lesenswert?

Christian L. schrieb:
> Mhh,
>
> wie finde ich heraus, was die Programmierfrequenz ist?

Die kann man irgendwo in deinem Brennprogramm einstellen.

von Christian L. (christian_l44)


Lesenswert?


von Karl H. (kbuchegg)


Lesenswert?

Christian L. schrieb:
> Hi,
>
> Ich benutze AVROSPII.

Wenn das alles ist, was dein Programmierprogramm kann, dann bist du 
jetzt Zweiter. Mit dem kann man die offenbar nicht einstellen.

Such dir ein anderes Programm, welches mit dem AVR-ISP (?) umgehen kann, 
und bei dem man die ISP Frequenz einstellen kann.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ist das sinnhaft, dass in den Programmierfenstern der falsche Controller 
angegeben ist? Du schreibst von einem Mega32, angegeben ist der 
Mega8535.

Edit: die Signatur stimmt auch nicht, sollte für den M32 0x1E 0x95 0x02 
lauten

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Knut Ballhause schrieb:
> Ist das sinnhaft, dass in den Programmierfenstern der falsche Controller
> angegeben ist? Du schreibst von einem Mega32, angegeben ist der
> Mega8535.
>
> Edit: die Signatur stimmt auch nicht, sollte für den M32 0x1E 0x95 0x02
> lauten

Ohne Sinn: Meinst du die Screenshoots von der Koreanischen Seite, die 
der Thread-Ersteller wahrscheinlich nur zufällig herausgesucht und 
gepostet hat, um das Proggi zu zeigen? *duck & weg*

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Tim S. schrieb:
> Thread-Ersteller wahrscheinlich nur zufällig herausgesucht und
> gepostet hat, um das Proggi zu zeigen?

Hmmm...

von Christian L. (christian_l44)


Lesenswert?

Hallo,

die Screenshots sind nicht von mir. Damit sollte nur die GUI der 
Software gezeigt werden. Aber sehr aufmerksam! ;-)

Sonst noch wer Ideen bzgl. der Fuses SUT0 und 1 sowie CKOPT?

Ansonsten schon mal vielen Dank für die vielen Rückmeldungen
Gruß
Christian

von Karl H. (kbuchegg)


Lesenswert?

Christian L. schrieb:

> Sonst noch wer Ideen bzgl. der Fuses SUT0 und 1 sowie CKOPT?

Vergiss sie.
Ist sowieso wurscht. Denn wenn du nicht mehr an den Mega rannkommst, 
kannst du sie auch nicht umstellen.

(Und du wirst hoffentlich nicht so blöd sein, und dir einen zweiten Mega 
auf 32kHz fusen)

von Christian L. (christian_l44)


Lesenswert?

Die Dummheit der Menschen kennt ja bekanntlich keine Grenzen, aber icgh 
gebe mir Mühe ;-)

Gruß
Chris

von Jens (Gast)


Lesenswert?

ich hoffe Du hast dran gedacht, auf dem Breadboard  kannst Du schlecht 
eine Quartzschaltung mit nur 22pF aufbauen.
Denn das Steckbrett wird selbst schon einige 10pF haben!
Entweder biegt man die Pins für den Quartz am Atmega hoch und lötet den 
Quartz direkt dran oder man nimmt eine externe Taktquelle.
Es gibt fertige Platinen mit einer RTC zu kaufen. Mit Ds1307 oder noch 
besser Ds3231.
Die geben den 32kHz Uhrentakt fertig aus und zusätzlich haben die eine 
Batterie und eine Uhr die weiter läuft.
Dazu muss man sich allerdings ein wenig mit TWI oder I2C oder IIC 
auseinander setzen.

von der alte Hanns (Gast)


Lesenswert?

> Die Dummheit der Menschen kennt ja bekanntlich keine Grenzen

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.