mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Atmega32 CKOPT


Autor: Marvin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marvin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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...

Autor: MainSter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marvin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht 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 ....

Autor: MainSter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: pcprofi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marvin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.