www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik AVR Atmega32 CKOPT

Autor: Marvin (Gast)
Datum: 14.05.2008 03:28

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: 14.05.2008 10:28

> 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: 14.05.2008 10:31

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: 14.05.2008 11:54
Dateianhang: programmierschaltung.png (7,7 KB, 59 Downloads)
preview image for programmierschaltung.png

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: 14.05.2008 11:58

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: 14.05.2008 12:46

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: 14.05.2008 13:00

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: 14.05.2008 13:03

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: 14.05.2008 13:17

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: 14.05.2008 13:32

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: 14.05.2008 17:01

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: 15.05.2008 12:02

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: 16.05.2008 10:39
Dateianhang: aufbau.jpg (270,1 KB, 35 Downloads)
preview image for aufbau.jpg

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: 16.05.2008 10:45

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 Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net