mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit ATmega88 und 20MHz Quarz nach Fusebitänderung


Autor: Richard Schlemmer (icerain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich möchte euch um Hilfe bitten! Ich habe vor dem verfassen des Beitrags 
natürlich nach ähnlichen oder gleichen Problemen gesucht aber leider 
auch nichts gefunden.

Zum Problem:

Ich habe eine Grundschaltung mit einem ATmega88 aufgebaut:
-ATmega88
-10-poliger ISP Stecker
-rote LED + Vorwiderstand

Programmiert habe ich mit AVRStudio 4.13 Build528
Programmieradapter ist der USBprog 3.0 (AVRISP MKII Klon)

Die Schaltung wird über den Programmieradapter mit Spannung versorgt!
(Könnte das Problem sein?!)

Hat auch alles wunderbar geklappt und die LED hat geblinkt. Da hab ich 
dann verschieden Delays eingestellt um mich mal mit den Grundlagen zu 
befassen...

Dann hab ich die Schaltung um einen 20MHz Quarz erweitert. Den Quarz hab 
ich auf dem Steckbrett mit XTAL1 und XTAL2 verbunden und auf die andere 
Seite über 22pF Kondiensatoren mit Masse.

Dann hab ich den Fehler gemacht die Fuses nicht einzulesen bevor ich sie 
programmiere. Ich nehme an, dass deswegen nichts mehr geht oder weil ich 
die Schaltung über den Programmieradapter mit 5V versorge und das für 
den 20MHz Quarz nicht reicht?
Auf jeden Fall hab ich die Fuse für den external Full Swing Crystal 
angehakt und den Haken bei: internal RC-Oscillator weggemacht. Danach 
hab ich auf programm geklickt und seit dem rührt sich nichts mehr.

Der ATmega lässt sich jetzt nicht mehr ansprechen.

Es kommt die Meldung: Man solle die ISP-Programmierfrequenz überprüfen, 
ich hab gelesen ihr kennt die Meldung ja alle ;-)

Vielleicht kann mir jemand von euch einen Tipp geben?!
Ob es an der Versorgung liegt oder an der falschen Fuse?!

Nochmal das Fuse das gesetzt wurde: Im AVRStudio die letzte 
Wahlmöglichkeit für den Full Swing Crystal

CKSEL3..1  011           Full Swing Crystal Oscillator
CKSEL0     1             Crystal Oscillator slowly rising power
SUT1..0    11            Starup: 16kCK Additional 14CK+65ms

Vielleicht hab ich auch nur SUT1..0 falsch gewählt?
Ich wusste nicht wie schnell der Quarz sich einschwingt und hab laut 
datenblatt dann slowly rising power gewählt...

Hoffe mir kann jemand helfen.
Danke.

Autor: Werner B. (werner-b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reaktivieren bei fehlerhaften Taktquellen-Fuse Einstellungen
http://www.mikrocontroller.net/articles/AVR_Fuses#...

Autor: Richard Schlemmer (icerain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ja das hatte ich schon gelesen. Ich poste nicht wenn ich nicht sicher 
bin, dass es nötig ist. (Versuchs zumindest :-)

Vielmehr würde mich interessieren ob es daran liegen kann, dass die 
Schaltung über den Programmieradapter versorgt wird und deshalb 
eventuell für den 20MHz Quarz zu wenig abbekommt (Laut datenblatt müssen 
es dann unbedingt 5V sein und ja nicht weniger).
Ich weiß schon, dass ihr nicht hellsehen könnt aber ich dachte fragen 
kostet nichts.

Noch fürs verständnis: Auch wenn der ATmega komplett zugemüllt wurde 
(durch programmieren der fuses ohne sie vorher einzulesen...) kann ich 
ihn mit einer externen Taktquelle wiederbeleben?

Wenn nicht, hilft mir der Artikel der gepostet wurde (und den ich schon 
gelesen hab) auch nicht!

Also die 2 Fragen sind noch unbeantwortet.

Danke nochmal und lg.
Richard

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn 5V ankommen am ATmega, dann ist es ja egal, woher die Spannung 
kommt.
Evtl. mal die Spannung messen, evtl. sogar mit einem Oszi. Wenn die 
Spannung in Ordnung ist, kann das schon mal ausgeschlossen werden.
Es gibt auch andere Möglichkeiten, den ATmega88 zu "verfusen". Wenn die 
Reset_Disable Fuse  gesetzt wird oder die Debug Wire eingeschalten ist, 
funktioniert das ISP nicht mehr!

Autor: Richard Schlemmer (icerain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann das passieren wenn man fused ohne vorher einzulesen?
Ich hab wirklich nur (und da bin 100% sicher) die fuse für die 
Taktquelle geändert.

Wenn ja, könnte das das Problem sein. Dann hilft wahrscheinlich nur mehr 
HV programmieren oder?

Ich habe gerade erst angefangen mich mit µCs zu beschäftigen. Verfüge 
leider über kein Oszi. Mit dem Mulitmeter hab ich gemessen und da 
scheint die Versorgung in Ordnung zu sein.

Scheinbar ist es am besten nen neuen zu nehmen und diesmal die Fuses 
einzulesen, sie danach zu ändern und gucken ob es dann funktioniert.?!

Kann jemand die Fusebiteinstellung bestätigen?
Full Swing Crystal: CKSEL: 0111    SUT: 11
Für den 20MHz Quarz: http://www.myavr.de/shop/article.php?artDataID=32

Nicht, dass es daran liegt und ich noch einen verfuse...

Danke.

EDIT @Tobi: Es hat die ganze Schaltung nicht mehr funktioniert! Das 
heißt die Led hat vorher noch geblinkt, dann hab ich neu programmiert 
mit der neuen Fusebiteinstellung für den Quarz. Also nicht nur ISP weg 
sondern ganz aus!

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim neuen AVR Studio (4.14 Build 589) sind default-mässig alle Fuses 
gesetzt.
Das würde bedeuten, Reset-Disable UND Debug Wire ist gesetzt. Wenn du so 
programmiert hast, hilft nur noch HV-Programmierung.

>Full Swing Crystal: CKSEL: 0111    SUT: 11

passt. --> Datenblatt Seite 33.

Gruß Tobi

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Quarz wirklich so dicht wie möglich an den AVR-Anschlüssen?
Die 22p auch dicht am Quarz und kurze Verbindung zum AVR-GND?
Die 100n dicht an den AVR-Spannungsanschlüssen dran?

Auf einem Steckbrett muß man sich da schon Gedanken machen, wie man die 
Teile anordnet, 20MHz sind da schon eine ganze Menge...

Quarz also direkt neben die Anschlüsse stecken, die 22p direkt zur 
GND-Schene daneben, die 100n direkt an Vcc und GND.

Wenn möglich, mach mal ein Bild vom Aufbau oder steck eine Quarz mit 
3-4MHz rein, wenn Du einen zur Hand hast.

Gruß aus Berlin
Michael

Autor: Richard Schlemmer (icerain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß, ich hab das Datenblatt ja gelesen!^^
Aber im AVRSTUDIO gibts dann doch mehr Einstellungen als ein Einsteiger 
verkraften kann^^

Ich hab wie gesagt AVRStudio in der Version 4.13 verwendet (Build 528)

Ich war mir sicher, dass es ein Full Swing Crystal ist.
Aber ich war mir wegen der Startup Time nicht sicher also hab ich das 
höchste gewählt... Steht auch im Datenblatt auf Seite 33.

Noch eine Zwischenfrage: 16k CK steht schon für 16000 Clockcycles oder?

Na gut, dann bau ich heut mal die Schaltung so um, dass ich den 
verfusten µC nochmal einsetze und es mit einer externen Versorgung 
versuch. Hab mir gestern noch ein netzteil gekauft aber noch nicht 
angebaut.
Vielleicht liegts ja wirklich daran, dass die Schaltung zuwenig Spannung 
abbekommt. Wer weiß, ich werds mal ausprobieren und wenns daran nicht 
liegt probiers ich mit nem neuen und dem einlesen der fuses bevor ich 
neu fuse. Wenns daran auch ned liegt dann melde ich mich wieder.

Was jetzt nicht heißt, dass bis dahin hier keiner posten darf^^

Ausnahmslose Postingerlaubnis erteilt :-)

Gruß,
Richard

Edit: Ich hab hier grad was gefunden?!: 
http://www.myavr.info/myForum/viewtopic.php?p=1850...

Da steht was ganz anderes!!!

Autor: Richard Schlemmer (icerain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael!

Ja die 100nF sind so dicht dran, dass der µC am Anfang geweint hat weil 
er Angst hatte der würde vom Kondensator gefressen. :-) (Spaß muss sein)

Der Quarz musste ein wenig weiter weg ca 2cm von den Eingängen des 
µC(Steckbrettbedingt) die 22pF Kondis waren ganz dicht am Quarz und die 
Leitungen waren auch alle so kurz wie möglich.

Eine Frage noch: Wenn die jemand mit "ja, du nap" beantwortet geh ich 
heim weinen...

Muss ich die Fuse -"internal RC- Oscillator" gesetzt lassen so wie es 
von Anfang an war oder darf ich die "abhaken" wenn ich eine andere 
Taktquelle einstelle?

Weil das würde dann auch erklären warum nichts mehr funktioniert...
Ich hab grad in der AppNote AVR099 gelesen, dass der µC die CPU Frequenz 
nutzt um die 16k CK/ 14 CK + 65ms zu zählen!?!?!?!?!?!
Und wenn ich ihm nicht erlaube den internen Takt zu verwenden (indem ich 
die Fuse "internal RC- Oscillator" abhake) dann is klar das nichts mehr 
geht?! Oder lieg ich hiermit komplett falsch? ich hoffe doch

Besten gruß,
Richard

Autor: Einhart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es lässt sich nur eine der Taktquellen auswählen, mehrere aktivieren 
geht nicht.

Autor: Einhart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Startverzögerung die du da ansprichst wird nicht dein Problem sein. 
Teste wirklich 'mal mit einem 4 MHz Quarz. Ich wäre auch mit 20 MHz auf 
dem Steckbrett vorsichtig. Die Kontaktreihen haben eine nicht zu 
vernachlässigende Kapazität.

Autor: Helmut -dc3yc (dc3yc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richard,

was ist denn das für ein Steckbrett? Kann es sein, dass das schon so 
viel Kapazität zwischen den Anschlüssen hat, dass die zusätzlichen 22pF 
zu viel werden und der Oszillator nicht mehr schwingt? Probiere doch mal 
die Hälfte.

Servus,
Helmut.

Autor: Richard Schlemmer (icerain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey danke leute, da kommen ja immer mehr gute Ideen.

Als erstes möchte ich mich bereits jetzt mal bei allen bedanken.
Super nette Community hier!

Also das Steckbrett ist nicht mehr das neueste.... ich versuchs mal ohne 
oder mit der hälfte. Leider bin ich noch nicht so gut ausgestattet 
(gerade erst begonnen mein "Labor" einzurichten) Jetzt müsst ich wegen 
jedem Bauteil in die Stadt fahren :-)

Aber ich werd mir mal einen 4MHz Quarz und einen Grundbedarf an Kondis 
besorgen (hätt ich sowieso schon machen sollen)
Aber wie ihr bestimmt wisst, ist das Zeug in gewissen "Massen" (ja wollt 
ich so schreiben) auch nicht gerade billig g

Danke für die Aufklärung wegen der Taktquelle. Das wär so ein Fehler 
gewesen wo man sich hätte in den A***** beißen können...
Stellt euch vor man sperrt sich aus dem µC weil man ihm eine andere 
Taktquelle angibt und dann geht nichts mehr weil man ihm die eigene 
Eingebaute wegnimmt die er benötigt um zu zählen wann er die neue 
Taktquelle benutzen darf ^^

Ich werd die Schaltung heut nochmal aufbauen und dann mal ein Foto 
machen.
Dann sieht man welches Steckbrett es ist und wie die Bauteile angeordnet 
sind.

Bis dahin danke nochmal.
Lg.
Richard

Autor: Richard Schlemmer (icerain)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi nochmal!

Also danke nochmals für die tolle Hilfe und die Unterstützung sowie die 
guten Vorschläge.

Das Problem ist gelöst:

Ich versorge die Schaltung jetzt extern (118W PC-Netzteil) mit Spannung 
und es hat auf anhieb geklappt.
Ich hab aber, dass muss ich dazusagen, die Ratschläge befolgt und das 
ganz neu aufgebaut und alles so knapp aneinander wie möglich gesetzt.
Also ich weiß jetzt nicht ob es daran liegt oder an der besseren 
Spannungsversorgung (schlechtes Netzteil --> liefert keine 5V sonder 
5,5V)

Aber ich bin einfach nur froh und kann mich jetzt weiteren Aufgaben 
stellen.
Also noch mal einen herzlichen Dank,
es wird sicher noch ein paar Probleme geben mit denen ich dann gerne 
wieder hierher zurückkomme. Diese Schaltung war ja nur der Tropfen auf 
dem heißen Stein ^^ Ich hänge ein Bild an, da seht ihr was als nächstes 
ansteht :-)

Beste Grüße aus Graz,
Richard

Autor: Richard Schlemmer (icerain)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein paar Bilder weil ich so froh bin :-)

Autor: Richard Schlemmer (icerain)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und das erste größere Projekt wo die Programmierung noch fehlt... kann 
also noch dauern ;-)

Soll eine Lüfterregelung für den PC oder vergleichbare Systeme werden.

Lg.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

die Quarzanordnung so ist ok, sieht auf meinen Steckboards auch immer so 
aus und macht mit 20NHz auch noch keine Probleme.

Was anderes: Du hast offenbar AVcc und AGND nicht angeschlossen?
Mach das generell, auch wenn Du den Port C im Augenblick nicht benutzen 
willst. So vermeidest Du Fehlersuche, wenn Du nicht mehr daran denkst 
und außerdem weiß man nie genau, welche geheimnisvollen Wege der Strom 
im AVR nimmt, die der Hersteller nicht eingeplant hat, wenn nicht alle 
GND/VCC-Anschlüsse angeschlossen sind...

Gruß aus Berlin
Michael

Autor: Richard Schlemmer (icerain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Michael!

Ich nehme an du meinst auf dem Steckbrett?
Da hab ich für den Versuch ob es an der Versorgung liegt nicht alles 
angeschlossen. Aber ich werde den Rat in Zukunft beherzigen.

Lg.

Edit: Ich sehe gerade, dass ich das beim größeren Aufbau auch 
weggelassen hab. mir selber auf die Finger hau
Werd ich ändern, danke für den Tipp.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.