PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fusebits bei ATMega32 richtig setzen



Keksdose
26.03.2005, 09:18
Wie bekomme ich das hin meinen ATMega32 auf externen Oszillator zu stellen ? Ich benutze PonyProg und das einfache serielle interface von dieser seite http://s-huehn.de/elektronik/avr-prog/avr-prog.htm. Dann muss man doch CKSEL3 bis CKSEL0 auf 1 setzen oder ? 1 wäre in PonyProg soweit ich das verstanden habe kein haken richtig ? Trotzdem funzt das nicht. Vielleicht stell ich mich einfach n bisschen blöd an bei der sache. Wäre gut wenn mir einer sagen könnte wie ich die haken setzten muss. Einen 3. ATMega32 hab ich nämlich nicht...

uwegw
26.03.2005, 09:26
* SUT1 und SUT0 (Zustand=11): Start-up Time 65ms nach Reset, Einstellung für Quarzoszillator und langsam ansteigende Betriebsspannung (Tabelle 5 des Datenblattes)
* CKSEL3-CKSEL0 (Zustand=1111): Quarzoszillator im Bereich 3-8MHz (Tabelle 4 des Datenblattes)
* CKOPT (Zustand=1): schneller Quarzoszillator (Tabelle 4 des Datenblattes)
* BODEN (Zustand=0): Brown-out einschalten
* BODLEVEL (Zustand=1): Brown-out Schwelle auf 2,7V setzen

ist doch wohl recht eindeutig... und dass eine eins kein häkchen bedeutet hast du ja schon verstanden...

Keksdose
26.03.2005, 09:43
ja sry ich habs jetzt auch. Kann mir vielleicht jemand sagen wie ich jetzt meinen anderen ATMega wieder ans laufen bekomme ? Da hab ich glaube ich den fehler gemacht das ich das genau andersrum gemacht habe also bei allen einen haken. Wär ja gut wenn man das ding irgendwie wieder reparieren könnte.

uwegw
26.03.2005, 10:12
also jetzt funktioniert einer? dann kannst du mal eine methode ausprobieren, die in letzter zeit hier öfters im forum aufgetaucht ist. ich hab sie selbst noch nicht getestet, aber noch mehr kaputtmachen kann man damit wohl nicht...

du nimmst nen laufenden avr, und proggst den als rechteck-generator, also in einer endlosschleife einen portpin immer an und aus. das ganze ruhig so schnell wie es geht, also nicht extra verzögerungen setzten. dieses rechtecksignal gibts du dann an den XTAL1 anschluss vom verkonfiguriertem avr. dann kannst du versuchen ob du wieder drauf zugreifen kannst...

Keksdose
26.03.2005, 10:32
japp einer funktioniert jetzt. hm probier ich dann mal aus. Also das Signal dann an XTAL1 und XTAL2 auf masse ? Bastel ich dann mal aufm steckbrett zusammen mit nem AT90S2313. Aber was soll das genau bringen ? Versteh ich nich so richtig...
Mal sehen obs klappt.

uwegw
26.03.2005, 10:46
xtal2 freilassen...
der sinn dabei ist dass ein externer takt erzeugt und eingespeist wird. dies klappt soweit ich weiß unabhängig davon wie die fusebits eingestellt sind. da somit wieder eien tasktquelle vorahnden ist, kann man wieder auf den avr zugreifen...

nase
25.09.2008, 19:57
ja sry ich habs jetzt auch. Kann mir vielleicht jemand sagen wie ich jetzt meinen anderen ATMega wieder ans laufen bekomme ? Da hab ich glaube ich den fehler gemacht das ich das genau andersrum gemacht habe also bei allen einen haken. Wär ja gut wenn man das ding irgendwie wieder reparieren könnte.



Hab auch die FuseBit's aus versehen einmal falsch eingestellt
Hat man deshalb keinen Zugriff mehr auf den Atmega so hat man noch die Möglichkeit einen externen Taktgenerator anzuschließen um so wieder Zugriff auf die FuseBits zu haben.Als externen Takt habe ich hier einmal ein Rechtecksignal von ca 200 Khz mit Erfolg getestet. Dazu muss man den Externen Quarz natürlich abklemmen, deshalb hab ich mir angewöhnt den exteren Quarz über zwei Jumper anzuschließen die dann bei Bedarf entfernt werden können.Um den Externen Takt dann an Pin 9 und 10 ( Atmega 8) oder ( 12-13 Atmega 32)anzuschließen, allerdings sollte man darauf achten das das Externe Signal nicht höher ist als die Versorgungsspannung des Atmegas , in meinem Fall also 5 Volt.


gruß nase

Hubert.G
26.09.2008, 11:18
Du hast aber schon gesehen wie alt der Thread ist?
Sonst ist es die gängige Methode die du beschreibst. Ausser auf einem Experimentierboard würde ich den Quarz allerdings nicht über Jumper anschließen.

nase
27.09.2008, 13:07
Ja , du hast recht hab nicht auf's Datum gesehen. Ja du hast noch einmal recht, Jumper nur zum testen.

nase

Unregistriert
05.11.2016, 19:09
Super und verständlich und kurz knacken erklärt, aber da mir das auch mit einem Atmega32 passiert ist, meine Chance auf Reanimieren eines Microcontrollers.
Übrigens die Verhaltensweise ist denke ich nur der Fall mit den Fusebitseinstellungen in Ponyprog denn da bedeutet ein gesetzter Hacken nämlich eine 0 und ein nocht gesetzter Haken eine 1.
Diese Einstellungen sind dann wohl diametrische Gegensätze wenn man zum Beispiel das Atmel-Evualationsboard 2.01 von Pollin benutzt und in der Software WINAVR diese Fusebitseinstellungen nutzen möchte, und da als Treiber *progman*, wählt?

Damn Ass
11.02.2017, 23:14
So jetzt bin ich um etliches schlauer geworden was die Fusebitseinstellungen bei den Atmega32 (und weitere), anbelangt. Ein grosses *Danke* insbesondere an *Nase* der die Sache trotzdem das der Post hier bereits einige Jahre auf dem Rücken hat, sehr kurz und bündig gehalten hat.
Gut Idee finde ich wenn man den Quarz über *Jumper* anbindet, und in einem ähnlichen Problem existiert im Internet noch ein weiterer Threat des ct'Magazin, welcher eventuell auch *hilfreich* sein könnte.

Aber nun meine Frage:
Ist es Möglich ein Arduinoboard Mega 2560 R3 für daß zurücksetzen der Fusebitseinstellungen eines Atmega32 zu nutzen, oder sollte da unbedingt auf die *unterschiedlichen* MHz bzw. , der Taktung des Arduinoboard und eines *zusätzlichen Quarzoszillator mit 4 Mhz*, geachtet werden.
Der Atmega32 ist von Herstellerseite her auf 1 Mhz sowie des intern verbauten Quarz bzw. QUARZOSZILLATOR getaktet, was mich da zwar nicht gerade abschreckt aber etwas verwundert.

Weshalb verwundert mich das:
Alleine das Datenblatt eines Atmega32 umfasst einiges an Einstellmöglichkeiten, und auch gewisse Konfigurationsmöglichkeiten
und oft sowie auch in meinem Fall bei Verwendung des Pollin Evualationsboard o.g Version (vorherigen Post beachten) wird vermutlich der Unterschied zwischen 1 (Einsen und Nullen) bzw. 0 , nicht exakt verstanden.
(Wurde bereits weiter oben im Vergleich und bei Verwendung des Programms Ponyprog, mehrfach sehr Kurz sowie sehr gut erklärt) !
Wo Verwechslungen auftreten können (aber nicht sollten !) sind diese *beiden* Faktoren , einen Quarz mit einem Quarzoszillator zu verwechseln ?
Ein Quarz hier im Beispiel mit einer *Taktung von 4 Mhz*
ist beispielsweise
Keinesfalls ein
Quarzoszillator hier im Beispiel
Mit einer *Taktung von 4 Mhz* ?

Weshalb ist das so wie angenommenerweise im Beispiel:

Quarz 4 MHz und Quarzoszillator 4Mhz:

-Ein Quarz benötigt die voreingestellten Werte des Internen Quarzoszillator eines Atmega32, welche werksseitig auf einer Frequenz von 1 Mhz (siehe Datenblatt), eingestellt sind und kann diesbezüglichst beim setzen der *falschen Fusebitseinstellungen*,
auch so *sehr schnell verkonfiguriert werden weil man dann keinen Zugriff mehr *auf diese FUSEBITSEINSTELLUNGEN*, hat !

Sollte das der *eingetroffene Fall sein, dann eventuell weiterlesen bzw. Lösungsvorschläge posten*
bzw. auch kurz und knacken halten, was ich nätürlich nicht von mir behaupten möchte ! *

Ein Quarzoszillator generiert einen *Takt für diesen *er deklariert ist*
bzw. (AUFDRUCK beachten ) !
Ein Quarzoszillator mit 4 MHz,
generiert sozusagen den *Takt*, welchen der *verkonfigurierte Atmega32, bei den falschen Einstellungen erwartet* ?

Vorstellbar aber *welche Kriterien müssten hierfür, gegeben sein ?*
dies ist vermutlich bereits schon oft der FALL wie ich annehme, gewesen
und *ja*, ist derzeit bei mir so !

Habe 2 x Quarze mit 20 MHz hier
und jeweils Quarzoszillatoren mit 4 Mhz, 8Mhz, 10Mhz, 16Mhz und 20Mhz ! (Sind nahezu doppelt so teuer, als vergleichbare *Quarze im gleichen Frequenzbereich*, aber auch *genauer, als Vergleich zum Quarz* !

Mit den *Quarzoszillator in der 4 Mhz Frequenz könnte ich doch nun an die *Aufgabe herantreten, um meinen Atmega32 wieder mit den *benötigten Fusebitseinstellungen zu versehen* ?

Falls da eine *Möglichkeit bestehen sollte*,
bin ich *dankbar*, für euere *Hilfe* und eventuell fällt *jemanden eine Lösung ein, wie man das vielleicht über einen Arduino Mega 2560 Rev. 3 oder den Pollin Evualationsboard 2.0.1, machen, könnte.*

Peter(TOO)
12.02.2017, 03:24
Übrigens die Verhaltensweise ist denke ich nur der Fall mit den Fusebitseinstellungen in Ponyprog denn da bedeutet ein gesetzter Hacken nämlich eine 0 und ein nocht gesetzter Haken eine 1.

Das liegt an der Denkweise des Programmierers und der Entwickler bei AMTEL, oder auch an deiner. :-)

Die Fuse Bits sind nichts anderes als zusätzliche EPROM-Bits. Im Grundzustand (nach dem Löschen) lesen sich diese Bits als "1".
Im Datenblatt werden Fuse-Bits, welche eine 0 enthalten als programmiert bezeichnet.

Folglich muss man die Häkchen als "programmiert" lesen und nicht als 0 oder 1.

MfG Peter(TOO)

Unregistriert
12.02.2017, 13:55
Ja stimmt, sozusagen und gut erklärt der Beitrag von uwegw fast am Anfang dieses Thteads und die Angabe als Zustände zu veranschaulichen.

Aber könnte ich mit den Bauteil Quarzoszillator mit 4 Mhz nun den internen Quarz des Atmega32, der ja die falschen Fusebitseinstellungen hat somit wiederbeleben damit ich ihn noch nutzen kann ?

Wohlbemerkt das ich hier von einem Quarzoszillator mit 4 Mhz spreche
Und nicht von einem Quarz ?

LG

Peter(TOO)
12.02.2017, 17:11
Wohlbemerkt das ich hier von einem Quarzoszillator mit 4 Mhz spreche
Und nicht von einem Quarz ?
Jo, das geht.

Das Programmieren funktioniert über die ATmega-CPU. Auf dem Chip liegt ein verstecktes Programm, welches das Programmieren übernimmt.
Ohne Takt macht die CPU aber keinen Wank :-)
Wenn der interne Oszillator mit den Fusebits abgeschaltet wurde muss man einen externen Takt anschliessen. Dann kann man die Fusebits wieder umstellen.

Ob da jetzt ein externer Schwing-Quarz oder ein Taktgeber mit einem 555 angeschlossen ist oder sonst ein Signal, spielt keine Rolle.
Es muss nur den Vorgaben für die Programmierung entsprechen, damit die CPU arbeitet.

MfG Peter(TOO)