Forum: Mikrocontroller und Digitale Elektronik Fuses (sut_cksel) falsch gesetzt.


von Atmega32 Fuses (Gast)


Lesenswert?

Hallo zusammen...
tja, der Titel sagt eigentlich alles.
Ich wollte meinem Atmega32 einen 16mhz Takt spendieren.
Die Schaltung habe ich mit einem 16mhz Quarz und 2 22pF 
Keramikkondensatoren soweit ich das sehe korrekt aufgebaut, jedoch 
scheint es so, als hätte ich "sut_cksel" falsch gesetzt:
CKSEL=1111, SUT=10
Dieser Anfängerfehler kommt wohl öfters vor wie ich gelesen habe, leider 
habe ich nur keine passende Antwort gefunden...
Habe den Atmega32 auf einem Steckboard mit 5V Stromversorgung sitzen, 
habe also kein STK500 oder sowas zur Hand...

Gibt es noch irgendwelche Möglichkeiten, oder kann ich schonmal die 
Beerdigung vorbereiten :/?

Gruß!

von Spess53 (Gast)


Lesenswert?

Hi

>jedoch scheint es so, als hätte ich "sut_cksel" falsch gesetzt:
>CKSEL=1111, SUT=10

Das ist 'Crystal Oscillator, fast rising power'. Eigentlich nicht 
grundsätzlich falsch. Lediglich CKOPT sollte auch gesetzt sein.

>Gibt es noch irgendwelche Möglichkeiten, oder kann ich schonmal die
>Beerdigung vorbereiten :/?

Übliche Methode: Takt an XTAL1 anlegen.

MfG Spess

von Hmm (Gast)


Lesenswert?

Meine Güte! Wo bekommt ihr nur alle die Millihertz-Quartze her? :-)

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Hmm schrieb:
> Meine Güte! Wo bekommt ihr nur alle die Millihertz-Quartze her? :-)

Da wo's auch mm gibt ;-) Im Einheitenladen links.

von Atmega32 Fuses (Gast)


Lesenswert?

Spess53 schrieb:
> Lediglich CKOPT sollte auch gesetzt sein.
Oups...

Spess53 schrieb:
> Übliche Methode: Takt an XTAL1 anlegen.
Kannst du mir das etwas erläutern? Bin Anfänger... :/

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Du benötigst einen TTL-Oszillator, z.B. sowas hier:
http://www.conrad.de/ce/de/product/158100/Quarzoszillator-Serie-TFT-680-TFT680-Frequenz-4-MHz-Bauform-DIP-14-L-x-B-207-mm-x-131-mm/SHOP_AREA_29142&promotionareaSearchDetail=005

Da werden 5 Volt angelegt und heraus kommt (in dem o.a. Fall) ein Takt 
mit 4MHz Frequenz. Die werden an den MC an XTAL1 angelegt, beim ATMega32 
im DIP Gehäuse ist das Pin 13. Siehe Datenblatt Fig. 14.

von dolf (Gast)


Lesenswert?

schau ma bei pollin.de rein.
die haben billige quarzoszillatoren im angebot.
16mhz
http://www.pollin.de/shop/dt/MDM5OTY3OTk-/Bauelemente_Bauteile/Passive_Bauelemente/Quarze_Oszillatoren/Quarzoszillator.html

den rest siehe datenblatt.

von Hubert G. (hubertg)


Lesenswert?

Atmega32 Fuses schrieb:
> scheint es so, als hätte ich "sut_cksel" falsch gesetzt:
> CKSEL=1111, SUT=10

Wenn du die Fuses so gesetzt hättest würde es wohl funktionieren.
Du hast aber wahrscheinlich CKSEL=0000 gesetzt, also überall einen Haken 
gemacht. Dann bist du auf ext. Clock und brauchst einen Takt an XTAL1.

von Atmega32 Fuses (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Du benötigst einen TTL-Oszillator, z.B. sowas hier:
> http://www.conrad.de/ce/de/product/158100/Quarzosz...
>
> Da werden 5 Volt angelegt und heraus kommt (in dem o.a. Fall) ein Takt
> mit 4MHz Frequenz. Die werden an den MC an XTAL1 angelegt, beim ATMega32
> im DIP Gehäuse ist das Pin 13. Siehe Datenblatt Fig. 14.

Da komme ich nicht drum herum, oder?

Hubert G. schrieb:
> Atmega32 Fuses schrieb:
>> scheint es so, als hätte ich "sut_cksel" falsch gesetzt:
>> CKSEL=1111, SUT=10
>
> Wenn du die Fuses so gesetzt hättest würde es wohl funktionieren.
> Du hast aber wahrscheinlich CKSEL=0000 gesetzt, also überall einen Haken
> gemacht. Dann bist du auf ext. Clock und brauchst einen Takt an XTAL1.

Nein, nicht das ich wüsste, habe ext crystal /resonator high freq 
startup 16k ck + 4ms gewählt...

von Hubert G. (hubertg)


Lesenswert?

Wenn du das wirklich so gemacht hast dann sollte es aber mit dem 16MHz 
Quarz und 22p Kondensatoren funktionieren.
Überprüft ob alle Lötstellen OK sind, keine Kurzschlüsse, Kondesatoren 
richtig usw.

von Atmega32 Fuses (Gast)


Lesenswert?

Hab ja nichts gelötet, alles gesteckt.
Aber die Bauteile, 16mhz Quarz mit 2x 22pF Keramikkondensator sind 
korrekt, ja? Weil ich wüsste nicht, was ich sonst falsch gemacht hätte. 
Habe das Quarz wie im folgenden Bild auf meinem Brett aufgebaut.
http://mschrod.de/Elektronik/AVR/Atmega%20Allgemein/Quarz/Quarz.GIF

Angenommen ich habe die Fuses falsch eingestellt und brauche jetzt einen 
Taktgeber. Ich habe mir jetzt einen Quarzoszillator mit 16mhz bestellt, 
aber bis der ankommt, dauert es natürlich noch ein paar Tage. Nun habe 
ich gelesen, man könnte mit einem zweiten mC, indem man das 
Ausgangssignal an einem IO-Port "togglet" und diesen Port mit dem XTAL1 
des "defekten" mC verbindet, einen Takt erzeugen.
Habe nun aber keinen 2. mC da, daher meine Frage:
Könnte ich nicht via PC, über ein USB-Serial Kabel, einen Takt senden?
Wenn ich die Datenleitung mit dem XTAL1 verbinde, und dann per PC Daten 
sende mit einer gewissen Pause zwischendrin, wäre das doch auch ein 
Takt, oder?
Wäre das möglich?

von Hubert G. (hubertg)


Lesenswert?

Das ist eine sehr gute und auch praktizierte Möglichkeit. Hex AA liefert 
das gleichmäßigste Signal.
Kannst du ein Bild von deinem Aufbau machen?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Atmega32 Fuses schrieb:
> Habe das Quarz wie im folgenden Bild auf meinem Brett aufgebaut.
> http://mschrod.de/Elektronik/AVR/Atmega%20Allgemei...

Ich hoffe, das du auch AVcc mit Spannung versorgst und 
Ablockkondensatoren auf dem Bord gesteckt hast. Beide GND des Chips 
müssen mit Masse verbunden werden. Steckbretter sind notorisch mit 
Wackelkontakten behaftet, stelle sicher das die Bauteile auch wirklich 
mit dem MC verbunden sind (durchpiepsen), und auch alle 
Programmeranschlüsse wirklich da am MC ankommen, wo sie hingehören.

von Hubert G. (hubertg)


Lesenswert?


von Atmega32 Fuses (Gast)


Lesenswert?

Hubert G. schrieb:
> Das ist eine sehr gute und auch praktizierte Möglichkeit. Hex AA liefert
> das gleichmäßigste Signal.
> Kannst du ein Bild von deinem Aufbau machen?
SEHR gute Möglichkeit? freu
0xAA? Nicht 0xFF?
Bild wir sehr schwierig, weil man darauf wahrscheinlich nicht genug 
erkennen wird...
Aber ich kann es einfach mal ganz grundlegend beschreiben... kann mir 
eigentlich jemand ein Programm empfehlen, wo man Schaltungen möglichst 
einfach abbilden, und dann als Bild exportieren kann?

Matthias Sch. schrieb:
> Ich hoffe, das du auch AVcc mit Spannung versorgst und
> Ablockkondensatoren auf dem Bord gesteckt hast. Beide GND des Chips
> müssen mit Masse verbunden werden. Steckbretter sind notorisch mit
> Wackelkontakten behaftet, stelle sicher das die Bauteile auch wirklich
> mit dem MC verbunden sind (durchpiepsen), und auch alle
> Programmeranschlüsse wirklich da am MC ankommen, wo sie hingehören.
Also falls ein Missverständnis vorgekommen ist. Ich habe nur den Teil 
mit dem Quarz übernommen ;)

Restliche Schaltung sollte korrekt sein, da vorher ja auch alles lief.
VCC, AVCC korrekt angeschlossen, ebenso wie die beiden GND.
Ansonsten sind noch MISO, MOSI, SCK, RST mit einem MK2-Programmer 
verbunden. Wie gesagt, läuft, bzw. lief alles.
Dann habe ich eben XTAL1 und XTAL2 jeweils mit einem Pin des 16mhz 
Quarzes verbunden und von da aus, über ein 22pF Keramikkondensator mit 
GND.

von Atmega32 Fuses (Gast)


Lesenswert?

EDIT:

Hubert G. schrieb:
> Hier ein Link in dem die Rettung über RS232 beschrieben wird.
> http://www.roboternetz.de/community/threads/45827-...
Jop, genau so haben ich mir das vorgestellt!
Wenn ich das nun so
http://oberallgeier.ob.funpic.de/fuserttr_mono.jpg
aufbaue, heißt das einfach nur, ich verbinde die Datenleitung vom Kabel 
mit XTAL1 über einen 100k Widerstand (muss der so groß sein?) und GND 
(vom Kabel) mit GND von meinem Steckbrett, korrekt?
Und dann feuer ich abwechselnd 0xFF und 0x00 durch die Leitung... 
irgendeine Idee für das Intervall?

von Dietrich L. (dietrichl)


Lesenswert?

Wenn Du eine 74HC14 oder 74HC132 (oder andere Inverter oder 
invertierende Gatter mit Schmitt-Trigger-Eingängen) rumliegen hast, 
kannst Du Dir damit leicht einen Schmitt-Trigger-Oszillator bauen. Sein 
Vorteil: der schwingt ganz sicher an (wenn die Schaltung stimmt ;-)).

Schaltung: Kondensator am Inverter/Gatter-Eingang nach GND, Widerstand 
(10kOhm?) zwischen Ausgang und Eingang.

Gruß Dietrich

von Hubert G. (hubertg)


Lesenswert?

Atmega32 Fuses schrieb:
> irgendeine Idee für das Intervall?

Oberallgeier schrieb was von 28800Baud in einer Endlosschleife.

von Jim M. (turboj)


Lesenswert?

> 16mhz Quarz und 2 22pF [...]
> Atmega32 auf einem Steckboard

Lass mal die 22pF Kondensatoren weg, das Steckbrett hat i.d.R. selbst 
genug parasitäre Kapazität, so dass die Quarze dort oft "nackt" laufen.

von Atmega32 Fuses (Gast)


Lesenswert?

Jim Meba schrieb:
> Lass mal die 22pF Kondensatoren weg, das Steckbrett hat i.d.R. selbst
> genug parasitäre Kapazität, so dass die Quarze dort oft "nackt" laufen.
Bingo!
Wenn du mir jetzt nochmal genau erklärst, warum das so ist, bin ich dir 
doppelt dankbar!

SUT_CKSEL steht übrigens auf EXTHIFXTALRES_16KCK_4MS

Wenn ich nun aber ein Programm auf dem mC starten will, bekomme ich vom 
Atmel Studio Error: ispProgramMem Error 0x80.
Würde jetzt ungerne wieder auf 1mhz, wo ich keinen Fehler bekomme, 
zurück gehen ... ISP Clock Freq steht nach wie vor auf 125 khz.
Was sollte ich nun tun?
Die 22pF Kondensatoren lasse ich nun also weg, warum erklärt mich 
hoffentlich noch jemand ;)
Ist SUT_CKSEL korrekt gesetzt?

Obwohl nun ein externer Taktgeber unnötig ist, danke ich allen, die mir 
dabei geholfen haben... ich werde das Gefühl nicht los, ich brauche den 
noch irgendwann ;)

Am Rande:
Dietrich L. schrieb:
> Wenn Du eine 74HC14 oder 74HC132 (oder andere Inverter oder
> invertierende Gatter mit Schmitt-Trigger-Eingängen) rumliegen hast,
> kannst Du Dir damit leicht einen Schmitt-Trigger-Oszillator bauen.
Ich danke dir vielmals, jedoch weiß ich nichtmal, wovon du redest, bin 
totaler Anfänger :D

von Atmega32 Fuses (Gast)


Lesenswert?

So... wer testet, der findet.
Läuft jetzt mit 16Mhz. Habe nun zwei 10pF Kondensatoren verwendet, kein 
Error, alles wunderbar.

Vielen Dank an alle, habe durch dieses "kleine" Problem viel gelernt ;)

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.