Forum: Mikrocontroller und Digitale Elektronik AVR Atmega32 CKOPT


von Marvin (Gast)


Lesenswert?

Hallo zusammen,
ich habee in letzter Zeit ein wenig mit einem Atmega rumgespielt und 
soweit hat  das Programmieren auch ganz gut funktioniert (immer interner 
Oszillator).
Nun wollte ich den Atmega mit einem 16 MHz Quarz takten (UART). Deshalb 
habe ich alle CKSEL Bits zurückgesetzt (in Ponyprog die Hacken 
entfernt). Danach konnte ich nicht mehr per ISP auf den MC zugreifen 
(Beschaltung mit Quarz und 22pF Kondensatoren).  Deshalb habe ich einen 
Quarzoszillator benutzt. Damit ging der Zugriff erstmal.
Im Datenblatt und im Forum ist erwähnt, dass man bei so hohem Takt CKOPT 
setzen soll. Deshalb habe ich in Ponyprog bei CKOPT einen Hacken 
gemacht. Seitdem funktioniert der Atmega weder mit dem Qarz noch mit dem 
Quarzoszillator (auch 16 MHz).

Die Schaltung ist auf einem Breadboard aufgebaut. Der Aufbau ist mit dem 
aus dem AVR Tutorial identisch. Außerdem ist am Quarz eine Spannung von 
ca. 2,5 V zu messen (=> der Quarz sollte also schwingen).

Hat von euch jemand eine Idee und kann mir weiterhelfen?
Danke!

Viele Grüße
Marvin

von Bensch (Gast)


Lesenswert?

> Seitdem funktioniert der Atmega weder mit dem Qarz noch mit dem
Quarzoszillator (auch 16 MHz).

Da hast du vermutlich andere Fuses falsch gebrannt.

> Außerdem ist am Quarz eine Spannung von
ca. 2,5 V zu messen (=> der Quarz sollte also schwingen).

Das ist eine gewagte Schlussfolgerung, ohne Scope geht da nix.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hi Marvin,

Welche Schaltung hast Du denn benutzt? Mach doch mal ein Bild von Deinem 
Aufbau und stell es hier ein (Anhang). Auch die genaue Konfiguration der 
Fuses. CKOPT brauchst Du fuer Takte >=8MHz wenn Du einen Quarz 
verwendest. Mit einem Quarzoszillator sollte dies nicht noetig sein 
(wenn ich mich irre korrigiert mich).

lg,
Michael

von Marvin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
im Anhang die Schaltung. Eigentlich fehlt noch die Beschaltung der UART, 
aber die habe ich mal weggelassen. Macht das was aus? Die ist per MAX232 
an meinem PC angeschlossen.
Die Fuses wollte ich eigentlich wie folgt setzen:
SUT1: 1, SUT0: 0, CKOPT: 0, CKSEL[0..3]: 1
Das entspricht, wenn ich alles richtig verstanden habe, in Poyprog einem 
Hacken bei SUT0 und CKOPT.
Danke und Gruß
Marvin
P.S.: Ist mein erster Schaltplan mit Eagle...

von MainSter (Gast)


Lesenswert?

Hi Marvin,

ich schließe mich der Aussage von Bensch an.
>Da hast du vermutlich andere Fuses falsch gebrannt.

Dass ist mir auch schon passiert. Ich würde so oder so immer die FUSES 
ein paar mal hintereinander einlesen bevor ich ein Fusebit 
schreibe/lösche. Bei mir ist es schon vorgekommen dass z.B. meine vers. 
Spannung überlastet war (nur noch 3V oder so). Jedes mal wenn ich die 
Fuses erneut eingelesen habe hat er was anderes angezeigt, einen Fehler 
beim lesen hat er nicht gemeldet. Wenn du in diesem Zustand versucht, 
Fuses zu brennen geht garantiert was schief (z.B. das ResetDisable- Fuse 
Bit)

An deiner Stelle würde ich es mit einem Quarzoszillator (4MHz o.ä.) 
nochmal testen. Den RES pin des megas würde ich mal vom Programmer 
abhängen und manuell auf Masse legen.

Allerdings wirst du wahrscheinlich kein Glück haben....

Mit freundlichem Gruß
MainSter

von Marvin (Gast)


Lesenswert?

Und was wären die richtigen Einstellungen? Also CKSEL[0..3] auf 1 und 
wie muss ich SUT0, SUT1 und CKOPT einstellen.
Gruß
Marvin

von Pete K. (pete77)


Lesenswert?

Mit AvrStudio wäre das nicht passiert :-)

Ne, aber mal ehrlich. Wieviele AVRs wird ponyprog noch schroten, bis mal 
das Mensch-Fuses Interface verbessert wird ....

von MainSter (Gast)


Lesenswert?

Das CKOPT Fusebit ist nur dazu da, um die Verstärkung der 
Oszillatorschaltung umzustellen (Quarz >8MHz heisst, der Oszillator 
braucht eine größere Verstärkung).
Meines Wissens kannst du aber auch einen 8MHz Quarz (oder kleiner) mit 
der höheren Oszillatorverstärkung (CKOPT programmiert, 0) laufen lassen 
(Stromaufnahme ist dann glaube ich bissl höher)

<--- Bitte korrigieren wenns net stimmt!

Die SUT bits stelle ich immer auf die längste dauer ein wenn es nicht 
auf eine möglichst kurze Resetdauer ankommt.

Also ich würde nur das CKOPT Fuse programmieren und alle anderen 
unprogrammiert lassen!


MFG MainSter

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Vermutlich hast du CKOPT nun ausgeschaltet und dadurch geht der
Oszillator mit dieser Frequenz nicht mehr.  Probiere mal, einen
kleineren Quarz (3,686 MHz oder 7,37 MHz) zu benutzen.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Marvin, mach doch bitte mal nen Bild vom Aufbau, vielleicht hast Du den 
Quarz auch unguenstig aufgebaut... kannst Du messen, hast mind. nen 
Multimeter, das eine Frequenz messen kann oder ein Oszi?

von Michael U. (amiga)


Lesenswert?

Hallo,

ich würde auch eher Probleme im Aufbau vermuten, Leitungen 
AVR/Quarz/Kondensatoren/AVR-GND zu lang, 100n dicht an den 
AVR-Spannungspins,   Betriebsspannung unsauber/instabil.

Ansonsten: der AVR läßt sich in jeder Fuse-Einstellung (ext. Clock, 
Quarz, Resonator, RC-Oszillator) mit einem externen Takt takten. Auch in 
der Einstellung >= 8MHz schwingen Quarze mit 4 MHz (vermutlich auch 
darunter, habe ich bisher nicht probiert).

Gruß aus Berlin
Michael

von pcprofi (Gast)


Lesenswert?

Vll hab ichs überlesen - aber ich hab das Problem mal mit ner Rev. vom 
Mega8 gehabt.

Evt. hilft es, wenn man extern an die Quarzpins nen 22pF gegen Masse 
hängt.

von Marvin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
schonmal Danke für die vielen Antworten!
Im Anhang das Foto des Breadboards mit dem Aufbau. Als 
Spannungsversorgung nutze ich ein altes AT-Netzteil, welches laut 
Messgerät 5,2 V liefert. Das hat bisher aber keine Probleme verursacht.
Der rote Folienkondensator mit 47 nF hängt an Reset und Grund. Daneben 
der blaue Stummel, dass ist ein 100 nF Kondensator, der zwischen Ground 
und Vc sitzt.
Viele Grüße
Marvin

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Huhu Marvin ;)

Also der Aufbau sieht schon recht abenteuerlich aus. Beim Quarz kann ich 
durch die Unschaerfe leider auch nicht viel erkennen. Du solltest auf 
jeden Fall mal eine anstaendig stabilisierte Spannungsquelle vorsehen 
(7805). Koennte mir vorstellen dass 5.2 oder vielleicht bei nem 
schlechten Netzteil ohne Last noch mehr den Controller gekillt haben.

AT-Netzteile sind fuer Elektronik garnicht geeignet und teilweise nur 
unter einer gewissen Last ueberhaupt halbwegs "genau" bei der Spannung. 
Ich denk mal Du hast den Controller einfach geschossen damit. Waere 
meine erste Vermutung. Den Rest kann man nur durch Messen herausfinden.


lg,
Michael

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.