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