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ß!
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
Meine Güte! Wo bekommt ihr nur alle die Millihertz-Quartze her? :-)
Hmm schrieb: > Meine Güte! Wo bekommt ihr nur alle die Millihertz-Quartze her? :-) Da wo's auch mm gibt ;-) Im Einheitenladen links.
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... :/
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.
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.
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.
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...
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.
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?
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?
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.
Hier ein Link in dem die Rettung über RS232 beschrieben wird. http://www.roboternetz.de/community/threads/45827-Fuse-irrt%C3%BCmlich-auf-extern-Takt-Hier-die-einfachste-L%C3%B6sung!?p=439726&viewfull=1#post439726
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.
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?
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
Atmega32 Fuses schrieb: > irgendeine Idee für das Intervall? Oberallgeier schrieb was von 28800Baud in einer Endlosschleife.
> 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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.