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


von Christian Beuge (Gast)


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...)

von Franz-Rainer (Gast)


Lesenswert?

Wenn er verfused ist, dann hilft nur das Löschen im 
Paralellprogrammiermodus.

von Franz-Rainer (Gast)


Lesenswert?

Mit dem STK500 oder baugleichem Teil.
Gibts auch zum nachbauen.

von Peter D. (peda)


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

von Franz-Rainer (Gast)


Lesenswert?

Bei einem wegprogrammiertem Resetpin hilft das auch nicht weiter.

von Εrnst B. (ernst)


Lesenswert?

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

/Ernst

von Christian B. (christianbeuge)


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

von Franz-Rainer (Gast)


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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von Christian B. (christianbeuge)


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

von kosmonaut pirx (Gast)


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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von Christian B. (christianbeuge)


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!!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von Oliver (Gast)


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

von Christian B. (christianbeuge)


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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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%20Academy&func=viewItem&item_id=568&item_type=project

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

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.