www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Komplett Reset des Prozessors?


Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Juten Tag, ich hoffe ihr könnt mir weiterhelfen (wäre sonst ärgerlich!)

Ich habe meinen Mega 128 mit Lancos Ponyprog programmiert und dieses
mal die Configuration Bits verändert (M103 C = 0 / BootSz1, Bootsz2 = 1
/ BootTrst = 1 und ClkSel3 = 0). Normalerweise dachte ich, dass dabei
nicht viel passieren kann, aber nun wird mein Chip von PonyProg nicht
mehr erkannt! Schock! Wie kann ich den Mega wieder zum Laufen bringen?
Bitte helft mir, sonst waren 2h Lötarbeit nur für den Chip umsonst!

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hast Du es schon mit einem externen Quarz versucht?

Sebastian

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe kein Oszilloskop, daher weiß ich nicht, ob der Quarz, den ich
dort angeschlossen habe, funktioniert. Könnte es daran liegen? WEnn ja,
dann fahre ich zu einem Freund, der ein Oszi hat.

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hast Du es dann auch mal ganz ohne Quarz versucht? Vielleicht hast Du
den internen aktiviert.

Mail' doch mal einen Screenshot von Deinen Fuses.

Sebastian

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde ich ja gerne, wenn ich die mit PonyProg auslesen könnte, aber das
Programm zeigt mir ja an, dass kein Device verfügbar ist - das Problem
ist entstanden, nachdem ich an den  Configurationbits (s.o.)
herumgespielt hatte!

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans,

Du hast ja recht, mein Fehler!

Ich hab' gerade nochmal darüber nachgedacht:

M103C: Der Kompatibilitätsmodus ist mein Programmieren egal
Boot...: sollte auch egal sein

Aber ClkSel dürfte wichtig sein. Es geht im Moment ja weder ohne Quarz
noch mit, sehe ich das richtig? An den AVR kann man aber auch noch
andere "Schwinger" anschließen. Vielleicht hast Du die ClkSel-Fuses
so ungeschickt gesetzt, daß dies der Fall ist. Schau mal im
Meag128-Datenblatt ab Seite 35ff. Auf Seite 38 ist z.B. ein anderes
"Schwing-System" beschrieben. Probier' notfalls alles mal durch.

Bei meinem AVR hat mir das einmal sehr geholfen, als ich was mit diesen
Fuses verwechselt habe.

Sebastian

Autor: HansHans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Wenn die ClkSel auf 0 stehen
muß der Takt extern zugeführt
werden ,also ein Externer Taktgenerator
nicht nur ein Quarz ....
so habe ich auch schon einen wiederbelebt und
die Configurationbits wieder richtig gesetzt .....

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also einen teuren Quarzoszillator an Xtal1?

Autor: HansHans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist eine Möglichkeit ,
vielleicht ist ja irgendwo auf einer alten Platine
von einem mainboard oder so einer drauf ,
oder einfach einen Takt selber bauen
z.B. mit einem 74hc132 (oder so was)
Eingang auf Ausgang und ein kleinen Kondensator dran
Hauptsache es schwingt selber
oder von einem anderen AVR abzapfen oder
erzeugen .

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich weiß nicht, ob es mit einem Quarzoszillator geht.

Hast Du einen 2. AVR? Es reicht ein "kleiner" 2313er oder so. Gebe
auf einem Pin einfach ein Rechtecksignal aus und schließe diesen Pin an
XTAL1 vom Mega128. Die GNDs der beiden Chips noch miteinander verbinden
und Du hast Dein Signal.

Sebastian

Autor: HansHans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das habe ich auch gemeint ....

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

schnapp Dir einfach einen anderen AVR, der noch läuft und schalte einen
Ausgang High/LOw , also Takt und dann ran an XTAL1.

Gruss
A. Arndt

Autor: Ronny Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hatte das Problem auch - zwar war der Grund ein anderer. Aber letenendes
lief es mit einem externen Oscillator dann wieder. Die Dinger kosten ja
auch nicht die Welt. Ich glaube für das Auslaufmodell 7.68MHz habe ich
gerade mal 1.50 € bei Segor bezahlt.

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe es heute einmal mit einem 10Mhz Quarzoszillator versucht - das
klappte aber nicht. Dann habe ich die Konstruktion mit dem zweiten
Mikrocontroller ausporbiert mit folgendem Code:

    ldi    zl,Low(255)
    out    DDRD,zl
    ldi    zl,Low(255)
    out    DDRB,zl
L0000:
    ldi    zl,Low(1)
    out    PORTB,zl
    Nop
    Nop
    Nop
    Nop
    ldi    zl,Low(3)
    out    PORTB,zl
    Nop
    Nop
    Nop
    Nop
    rjmp  L0000
L0001:

Das sollt ja eigentlich funktionieren, oder? (Ich habe es auch einmal
ohne nop 's probiert - vergeblich) Heute Nachmittag werde ich mit
einem Oszilloskop messen, was da für ein Takt herauskommt.
Was kann man denn tun, wenn das wieder nicht funktioniert - gibt es
eine art TOTAL Reset, bei welchem der ganze Mikrocontroller auf
Werkseinstellungen zurückgesetzt wird?

Autor: Sebastian Wille (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans,

einen "Werksrückstellungs-Reset" ist mir nicht bekannt. Es gibt nur
noch den High-Voltage-Programmier-Modus, was Dir - wenn es am
Taktsignal liegt - aber auch nichts hilft. Das bringt nur was, wenn Du
den Seriell-Programmier-Modus abgestellt hast usw.

Ich habe mal einen 1200er als Taktgeber eingesetzt. Das Programm hängt
an. Bei Deinem Programm ist mir nicht klar, für was Du PortD definierst
usw. Schau' Dir mal mein Programm an, mußt halt die Interrupt-Vektoren
anpassen und den SPL setzen.

Sebastian

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mit Assembler eigentlich noch nie gearbeitet, daher weiß ich
nicht so genau, was ich in deinem Beispiel noch ergänzen muss - ich
benutze einen AT90S4433 zum Test.

Autor: Sebastian Wille (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans,

ich hab' das Programm für den 4433 "umgeschrieben".

Ich hab's zwar nicht mehr getestet, sollte aber dennoch laufen.

Sebastian

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank - das Programm läuft (AVR Studio), allerding habe ich noch
keine Erfolge mit meinem Mega128 Problem feststellen können - ich leihe
mir jetzt ein Oszi aus und dann melde ich mich wieder.

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe nun mal mit einem Oszi überprüft, ob der Takt wirklich direkt
am Xtal1 anliegt - das tut er auch, allerdings ist er nicht sooo
sauber, aber das dürfte keine Rolle spielen(ca. 1,8 Mhz). Der CHip wird
aber immer noch nicht von Ponyprog erkannt - was soll ich nun machen?

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Leute, dank eines Tricks von AVRFreaks.com kann ich nun die Bits
wieder setzen und löschen, doch wie muss ich die einstellen, damit ich
einen externen Quarz benutzen kann?

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

schau' mal im Mega128-Datenblatt unter "System Clock and Clock
Options" und da unter "External Crystal/Ceramic Resonator".

Die Einstellung basiert auf den MHz des Quarzes.

Aber Achtung: Die Angaben sind invertiert. Unter PonyProg gilt z.B.
folgendes: Eine "1" im Datenblatt bedeutet KEIN Häckchen und
umgekehrt.

Kannst Du den Trick, wie Du die Fuses setzen mußt - beschreiben?!?
Danke!

Sebastian

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willst du wissen, wie man einen Mikrocontroller rettet, der falsche
Fuse-Bits hat? Man muss ein 500kHz Signal an Xtal1 legen - dann kann
man mit Ponyprog auf den Chip zugreifen.

Ich habe das gestern mal versucht mit dem Einstellen der Fusebits -
kannst du mir nicht mal einen Screenshot von den fertig configurierten
Mega128-Fusebits zuschicken? Ich benutze ein 16Mhz Quarz, welches über
2 22pF Kondensatoren an GND gelegt ist. Als Spannungsquelle benutze ich
ein altes PC-Netzteil.

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans,

Screenshot geht gerade leider nicht, da ich PonyProg nicht mehr laufen
habe, weil ich das AVR-Studio nehme. Aber die Beschreibung ist auch
nicht schwer:

Hier machst Du ein Häckchen rein:
- CKOPT

Hier machst Du KEIN Häckchen rein:
- CKSEL3
- CKSEL2
- CKSEL1
- CKSEL0
- SUT1
- SUT0

Probier's mal aus. Falls es nicht geht, kann ich Dir noch beschreiben,
wie Du den internen Quarz zum Laufen kriegst.

Sebastian

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank dafür! Ich wusste gar nicht, dass man mit AVR Studio flashen
kann - geht das auch mit der freewareversion von der Atmel-Homepage?
Wie geht das?

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans,

man kann zwar mit dem AVRStudio wunderbar und superschnell (!!!) per
ISP flashen, man braucht allerdings den "AVRISP"-Adapter (ca. 50
Euro) oder das STK500. Das hat das "AVRISP" schon drauf.

Dann dauert der Mega8 aber nur noch 0,4 Sekudnen anstatt 1 Minute mit
PonyProg!

Tip: Kauf' Dir das AVRISP, beim Mega128 lohnt es sich! Bei 12K Code
ca. 7 Sekunden mit PonyProg Minuten... da wird man irre!

Geht Dein Mega128 nun wieder?

Sebastian

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, also noch funktioniert der chip nicht, aber was muss ich denn bei
Lock1, Lock2, Bootlock1, Bootlock2, Bootlock11, Bootlock12,WDTON,
OCDEN, JTAGEN, EESAVE, BODLEVEL, BODEN, BOOTSZ1, BOOTSZ0, BOOTRST
einstellen? UNd wie bekomme ich einen 16Mhz oder 8 Mhz Quarz zum laufen
- alternativ könnte ich auch noch einen 10Mhz Quarzoszillator
anschließen, aber das nur sehr ungern.

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans,

schade, daß es immer noch nicht geht...

Die anderen Fuses sind für Dein Problem eigenlich egal. Die ganzen
Bootlock* sind verschiedene Lesesperren (damit niemand Dein Programm
ausspioniert), JTAGEN aktiviert das JTAG-Interface (brauchst Du nicht)
usw.

Hier sind mal die Einstellungen für den internen 8MHz-Quarz:

Hier ein Häckchen:
- CKOPT
- CKSEL3
- CKSEL1
- CKSEL0
- SUT0

Hier KEIN Häckchen:

- CKSEL2
- SUT1

Nach der Umstellung der Fuses Dein Quarz bzw. 500KHz-Takt gleich weg.

Vielleicht klappt's ja nun!

Sebastian

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einen 8 Mhz Quarz hat das Ding integriert?

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ja, es hat sogar 4 Varianten integriert:

- 1 MHz
- 2 MHz
- 4 MHz
- 8 MHz

Siehe auch Datenblatt S. 39.

Ist das Dein 1. Atmel?

Und geht's nun endlich?!?

Sebastian

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das ist nicht mein erster Atmel, aber mein erster Mega! Die AT90S -
Chips und die Tinys mussten in Sachen Clock ja nicht programmiert
werden. Es funktioniert übrigens immer noch nicht - ich kann zwar auf
den Chip zugreifen,aber nicht programmieren - schreiben fehlgeschlagen.
Nur wenn ich auf die internen 8Mhz umschalte, dann steht beim 2. oder
3. Versuch "SChreiben erfolgreich" ~ mein Programm funktioniert aber
trotzdem nicht

Autor: Hans Deller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit diesen Settings funktioniert es nun endlich!

<img
src="http://www.avrfreaks.net/phorum/download.php?f=3&f...

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

so geht es aber mit einem externen Quarz, oder?

Komisch, daß der interne nicht geht...

Naja, hauptsache nun geht er wieder! :-)

Sebastian

Autor: Ronny Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja warum das mit dem internen nicht geht, wäre doch auch interessant
zu wissen. Ich hatte damals das Problem meinen Stack falsch eingestellt
zu haben. Mit dem externen ging er dann meistens ... seltsam aber
wahr..

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.