www.mikrocontroller.net

Forum: Compiler & IDEs Fuse Bits zurücksetzen ? ATMEGA 169


Autor: Christian Beuge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

leider habe ich bei meinem µC die FUSE Bits falsch gesetzt... bzw. ich 
habe ausversehen den falschen Controller angegeben. Nun weiß ich aber 
nicht, wie ich die Bits wieder in Auslieferungszustand bringen kann. Ich 
verwende zum programmieren AVR studio. Hardware ist der mysmart USB 
Programmer.
Dann hätte ich gleich noch eine Frage. Warum wird bei AVR Studio, wenn 
ich den µC flashen will (tools->AVRprog...) im Menü nur ATMega 169 Boot 
angezeigt und nicht ATMega 169?

Danke!

Gruß Christian

P.S.: Im Datenblatt habe ich zwar Info's über die fuse Bits gefunden.... 
aber leider nicht, wie ich sie zurücksetzen kann... (kann auch sein, das 
ich es überlesen habe...)

Autor: Franz-Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn er verfused ist, dann hilft nur das Löschen im 
Paralellprogrammiermodus.

Autor: Franz-Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem STK500 oder baugleichem Teil.
Gibts auch zum nachbauen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es ein Bootloader ist, dann kann man die Fuses garnicht ändern.

Wenn es ein SPI-Programmer ist, dann kann man in der Regel mit einen 
externen Takt (2. AVR) die Fuses wieder ändern.


Peter

Autor: Franz-Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einem wegprogrammiertem Resetpin hilft das auch nicht weiter.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sagt mal, den ATMega 169 gibts doch nur im MLF64 & TQFP64 Gehäuse...
Wird etwas schwierig den in den STK500 zu packen

/Ernst

Autor: Christian Beuge (christianbeuge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich denke auch, das ich den µC nicht auf das STK500 Board stecken kann. 
Ich hoffe, das es möglich wäre das HV programming Signal an den µC via 
drähte anzuschließen. Geht das? Hat damit jemand Erfahrung? Ich habe 
auch schon gehört, das der 169 ein Bootloader ist und man die FUSE Bits 
gar nicht umstellen kann. Komischer weise funktioniert er nicht mehr. 
Das auslesen meines Butterflys ergab, das ich dort andere Einstellungen 
bei den Fuses und der Taktfrequenz habe, als bei meinem "verfuseden"...

Ich habe bei ebay die Möglichkeit gefunden, einen HV Programmer zu 
ersteigern. Kostet 25 Euro (selbstbau. Leider weiß ich nicht genau, ob 
ich damit meinen 169er auch via HV neu "flashen" kann.

Würde mich auch freuen, wenn mir jemand bezüglich des Bootloaders etwas 
auf die Sprünge helfen könnte. Ich weiß, steht alles im Datenblatt, aber 
Datenblatt lesen, verstehen (!!!!) und dann experimentieren... kostet 
halt viel Zeit... und Geld (welches ich als Student nicht habe...)

DANKE!!!!

Gruß Christian

Autor: Franz-Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du halt zu faul bist das Datenblatt zu lesen wo der Parallelprogr. 
Modus genau beschrieben ist, dann kann ich dir auch nicht helfen....

MfG.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage ist ja: hast du denn wirklich nur über den Bootloader an
dem Teil herumgefummelt (also über die serielle Leitung) oder hast
du dir noch einen ISP-Stöpsel drangelötet und darüber gearbeitet?

Der Bootloader hat in der Tat keine Chance, an den Fuses zu drehen --
ohne wenn und aber.

Autor: Christian Beuge (christianbeuge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Zuerst mal Dank an alle, die mir helfen.

ABER: Ich bin nicht zu faul, das Datenblatt zu lesen. (Das kommende soll 
jetzt nicht überheblich klingen!!!)Aber leider bin ich niemand der sich 
alles aus einem Datenblatt merken kann. Klar, die 5 - 10 Anschlüsse 
finde ich auch noch. Und auch den Text dazu. Aber mir ging es mit der 
Aussage darum, Informationen von jemanden zu bekommen, der damit 
Erfahrung hat, mich auf Probleme hinweißt und evtl. schnell zum Ziel 
bringt.
Wäre alles so einfach und so toll in Datenblättern beschrieben, 
bräuchten wir auch keine Foren.... dann gäbe es auch keine Probleme(ein 
Hoch auf die,  die keine Probleme haben...).

Aber zurück zum Problem:
Ich habe mit AVR-Studio (->Tools -> AVRprog-> Advanced) und dem 
MySmartUSB meinen 169 programmiert (ISP). Leider habe ich dabei den 
falschen µC gewählt (habe eine 3 für eine 9 gesehen). Danach ging nichts 
mehr. Jedoch konnte ich von meinem Butterfly die Daten (JTAG, ISP,...) 
auslesen und mit meinem Boardprozessor vergleichen und stellte fest, das 
ich alle Bits "resetet" habe. Ich weiß weder was von einem Bootloader 
(nur das hinter der Bezeichnung im "Flash-Dialog" >>(BOOT)<< steht) noch 
habe ich bewust den µC über einen Bootloader geflasht.

Gruß Christian

Autor: kosmonaut pirx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
afaik kann das butterfly die fuses nicht nur lesen, sondern auch 
schreiben, cmiiw. und wenn jtag funktioniert, wie du schriebest, bist du 
doch gut im geschäft, benutze es.
bye kosmo

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Beuge wrote:

> Ich habe mit AVR-Studio (->Tools -> AVRprog-> Advanced) und dem
> MySmartUSB meinen 169 programmiert (ISP).

Gut, also über ISP, da kannst du dir in der Tat ein paar Fuses
zerprogrammieren.  Der häufigste Fall dürfte es sein, dass du dir die
Taktquelle des Controllers geschrottet hast, z. B. auf externen Takt
gestellt.

> Jedoch konnte ich von meinem Butterfly die Daten (JTAG, ISP,...)
> auslesen und mit meinem Boardprozessor vergleichen und stellte fest,
> das ich alle Bits "resetet" habe.

Das glaube ich dir so mal nicht.  Wenn du die Fuses auslesen könntest,
dann könntest du das Ding auch sonst noch programmieren.  Wenn er dir
alle Fuses als 0xFF anzeigt, dann ist das eher ein Zeichen dafür, dass
der Controller das ISP-Protokoll einfach mal nicht mehr beantwortet
(alle Pins hochohmig -> ergibt logisch 1 -> 8mal gelesen ist das
0xff).

Das sicherste dürfte es in der Tat sein, mittels JTAG auf das Teil
zuzugreifen.  JTAG-Programmierung hat den Vorteil, dass sie im
Gegensatz zu ISP nicht auf einen laufenden Controller-Oszillator
angewiesen ist.  Wenn du selbst kein JTAG ICE hast, dann hast du wohl
folgende Optionen:

. du borgst dir eins bzw. gehst zu jemandem, der eins hat
. du baust dir einen Clone, der ATmega169 lässt sich mit den
  einfachen Clones programmieren; dafür braucht man nicht viel
  mehr als einen ATmega16 und einen 7.37-MHz-Quarz
. du baust deinen Butterfly zu einem JTAG ICE Clone um; auf
  avrfreaks.net gibt's in den Projekten dafür eine modifizierte
  Firmware (und vermutlich auch eine Verdrahtungsbeschreibung)

Alternativ kannst du probieren, an XTAL1 einen externen Takt von
(1...4) MHz einzuspeisen und zu gucken, ob du ihn damit mittels ISP
wieder zum Leben bekommst.  Das ISP-Protokoll ist beim ATmega169
ziemlich sicher gegen ,,Selbstzerstörung'', da man mittels ISP die
SPIEN-Fuse nicht löschen kann und der ATmega169 keine RSTDISBL-Fuse
besitzt.  Etwas mehr Vorsicht wäre mit JTAG geboten: über JTAG kann
man sehr wohl die JTAGEN-Fuse rücksetzen und sich damit seinen Ast
absägen, auf dem man sitzt.

Autor: Christian Beuge (christianbeuge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Ich glaube, ich habe mit meiner ungeordneten Ausdrucksweise etwas 
Verwirrung gestiftet:

*****
> Jedoch konnte ich von meinem Butterfly die Daten (JTAG, ISP,...)
> auslesen und mit meinem Boardprozessor vergleichen und stellte fest,
> das ich alle Bits "resetet" habe.

Das glaube ich dir so mal nicht.  Wenn du die Fuses auslesen könntest,
dann könntest du das Ding auch sonst noch programmieren.  Wenn er dir
alle Fuses als 0xFF anzeigt, dann ist das eher ein Zeichen dafür, dass
der Controller das ISP-Protokoll einfach mal nicht mehr beantwortet
(alle Pins hochohmig -> ergibt logisch 1 -> 8mal gelesen ist das
0xff).
***

Ich muss dazu sagen, das ich angefangen habe mit dem Butterfly zu 
"experimentieren", aber als ich an die UART wollte und schon einiges von 
"ihm" aktiviert hatte, habe ich mir selbst ein Board gemacht und einen 
neuen 169er dort drauf gelötet, sprich ich habe zwei Boards... wobei 
meines halt nicht mehr so ganz funktioniert.

@Jörg: Vielen dank für Deine gute Erläuterung. Derzeit habe ich einen 12 
Mhz externen Quarz dran. Ich werde es mal mit einem 4Mhz Quarz 
testen...ein 168er läuft (seid heute freu) mit einem 4 Mhz Quarz...

Gruß Christian

P.S.: für Weitere Tips und Anregungen, habe ich weiterhin ein offenes 
Ohr!!! DANKE!!

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Beuge wrote:

> @Jörg: Vielen dank für Deine gute Erläuterung. Derzeit habe ich einen 12
> Mhz externen Quarz dran. Ich werde es mal mit einem 4Mhz Quarz
> testen...

Das wird u. U. auch nicht helfen.  Wenn du das Ding aus Versehen auf
externe Taktversorgung gestellt hast, ist der Quarzoszillator
abgeschaltet.  Dann hilft nur das Einspeisen eines separaten Taktes
an den Anschluss XTAL1.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lösung 4:

Falls dein Hobby und Interesse das Restaurieren defekter AVRs ist, mach 
weiter. Wenn nicht, kauf einfach einen neuen AVR, und verbuche die paar 
Euros unter "Erfahrung". Ist allemal billiger und schneller als alle 
anderen Varianten hier. Wenn der dann läuft, und du in einer langen, 
kalten Winternacht mal viel Zeit hast, kannst du an dem zerschossenen 
immer noch rumexperimentieren.

Oliver

Autor: Christian Beuge (christianbeuge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Oliver!

Gute Idee... das Problem ist nur... der ist (leider) auf das Board 
aufgelötet. Da meine Ausstattung nicht gerade SMD tauglich ist, ist es 
sehr aufwendig den µC wieder auszulöten... daher hoffe (hoffte) ich auf 
eine "einfache" Lösung. Mal sehen..... das mit den 4Mhz geht auch 
nicht... vielleicht löte ich das Ding doch aus.... oder finde einen JTAG 
programmer.... ist jemand zufällig aus dem Raum Reutlingen?????

Gruß Christian

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ist allemal billiger und schneller als alle
> anderen Varianten hier.

Kaum.  Für das Anklemmen eines 1-MHz-Taktes dürften beide Aussagen
nicht zutreffen.

Christian, wenn du keinen Taktgenerator hast, kannst du den Butterfly
als solchen nehmen.  Voraussetzung ist, dass beide Geräte mit gleicher
Spannung laufen (3,3 V, falls du den Dataflash auf dem Butterfly nicht
kaputt machen willst).  Erstens müsste es funktionieren, XTAL2 vom
Butterfly an XTAL1 deines anderen AVRs zu klemmen (nicht zu lange
Drähte nehmen).  Zweitens kannst du einen Timer mit "toggle OCn on
compare match" im CTC-Modus dazu bringen, mit f[CPU]/2 den OCn-Ausgang
mit Takt zu versorgen.

Drittens schließlich, guck dir doch mal das hier an:

http://www.avrfreaks.net/index.php?module=Freaks%2...

Das macht aus deinem Butterfly einen JTAG-ICE-Clone.

Beitrag #4427453 wurde von einem Moderator gelöscht.

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.