mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMEGA 328 Fuses


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Pechvogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

könnt Ihr mir bitte konkret und "verifiziert" helfen?

Status:

Fabrikneuer atmega 328p tqfp mit externem 8 Mhz Quarz.
Mit meinem ISP MKII konnte ich zugreifen und die Fuse 
auslesen/programmieren.

Originalzustand :
Ext, 0xff
High 0xd9
Low 0x62

Dann wollte ich den aktuellen Arduino Optibootloader optiboot_atmega328 
vom 02.10.2017 aus dem Verzeichnis C:\Program Files 
(x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot brennen.

Recherche ergab für die Fuses:

Ext 0x00
High 0xda
Low 0xff

Ergebnis ist das ich ihn mit Atmelstudo 6.1 und Original ISP MKII nicht 
mehr auslesen oder umprogrammieren kann.

Was ist passiert?
Sind das die falschen Fuses gewesen?
Welche wären die richtigen?
Wie kann ich den wiederbeleben?

Ich wäre sehr dankbar wenn jemand genau weiß, welche die korrekten Fuses 
sind und wie ich aus der Nummer wieder rauskomme, ohne den TQFP 
rauszulöten und einen neuen einzubauen.
Ich fürchter das überlebt meine Platine dann nicht mehr und ich habe 
auch keinen Ersatz hier rumliegen.

Vielen dank,

Karl

Autor: BlaBla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BODLEVEL = 2V7
RSTDISBL = [ ]
DWEN = [ ]
SPIEN = [X]
WDTON = [ ]
EESAVE = [ ]
BOOTSZ = 256W_3F00
BOOTRST = [X]
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_14CK_65MS

EXTENDED = 0xFD (valid)
HIGH = 0xDE (valid)
LOW = 0xFF (valid)

So ist es bei mir.

Autor: BlaBla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und noch die Lock-Bits:

LB = NO_LOCK
BLB0 = NO_LOCK
BLB1 = LPM_SPM_DISABLE

LOCKBIT = 0xCF (valid)

Autor: OldMan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pechvogel schrieb:
> Original ISP MKII

Für was nagelt man einen Bootloader auf das Ding, wenn
meinen ISP MKII hat?
Das verstehe ich nicht.

Autor: BlaBla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BODLEVEL = <none selected>
RSTDISBL = [ ]
DWEN = [ ]
SPIEN = [X]
WDTON = [ ]
EESAVE = [ ]
BOOTSZ = 1024W_3C00
BOOTRST = [X]
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_14CK_65MS

EXTENDED = 0x00 (modified)
HIGH = 0xDA (modified)
LOW = 0xFF (modified)

Deine Recherche, sehr merkwürdig.

Autor: BlaBla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OldMan schrieb:
> Für was nagelt man einen Bootloader auf das Ding, wenn
> meinen ISP MKII hat?
> Das verstehe ich nicht.

Dann mal nachdenken ;-) Tipp: Shield ohne ISP

Autor: Pechvogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BlaBla schrieb:
> OldMan schrieb:
>> Für was nagelt man einen Bootloader auf das Ding, wenn
>> meinen ISP MKII hat?
>> Das verstehe ich nicht.

Bitte jetzt nicht den Thread entern, das hilft mir nicht weiter.
Danke.

ja die Recherche war für den Ar....

Laut Boards.txt aus der Arduino Umgebung muss wohl so sein:

low_fuses=0xFF
high_fuses=0xDA
extended_fuses=0xFD

Passt das?


Wie bekomme ich das möglichst einfach wieder geradgebogen?

danke für sachdienliche Hinweise.

Karl

Autor: Pechvogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Boards.txt

## ---------------------------------------------------
pro.menu.cpu.8MHzatmega328=ATmega328P (3.3V, 8 MHz)

pro.menu.cpu.8MHzatmega328.upload.maximum_size=30720
pro.menu.cpu.8MHzatmega328.upload.maximum_data_size=2048
pro.menu.cpu.8MHzatmega328.upload.speed=57600

pro.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xFF
pro.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA
pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0xFD
pro.menu.cpu.8MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega3 
28_pro_8MHz.hex

pro.menu.cpu.8MHzatmega328.build.mcu=atmega328p
pro.menu.cpu.8MHzatmega328.build.f_cpu=8000000L#
## --------------------------------------------------

Das entspricht genau meinem Hardwareaufbau.

Autor: BlaBla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Chip löschen. Wenn das nicht geht, dann dann fehlt eventuell der 
Takt. Oder, der Reset ist abgeschaltet. Dann hilft nur ein 
HV-Programmer, wie z. Bsp der Dragon.

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast den BOD Level auf 4,3V gestellt.
Mit 3,3V wirds also nichts.

: Bearbeitet durch User
Autor: Pechvogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arduino F. schrieb:
> Du hast den BOD Level auf 4,3V gestellt.
> Mit 3,3V wirds also nichts.

Wenn ich den jetzt mit 5 Volt versorge sollte es wieder gehen???

Das wäre eine OPtion !

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es besteht Hoffnung.

Denn die anderen Fuses stehen nicht so weit aus dem Ruder, dass es 
unmöglich wäre.
ohne Gewähr

: Bearbeitet durch User
Autor: Pechvogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
5 Volt direkt an die CPU.
Studio erkennt die 5 Volt, aber alles Andere schlägt fehl ;-(((

Noch Ideen??

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Du hast den BOD Level auf 4,3V gestellt.
?
Ich lese aus dem Datenblatt 'Reserved' beim Extended Fuse Byte.
Quarz ist angeschlossen für 'Low Power Crystal Oscillator' im Low Fuse 
Byte?

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
S. Landolt schrieb:
> Ich lese aus dem Datenblatt 'Reserved' beim Extended Fuse Byte.
Bei einem ATMega328P ?

Pechvogel schrieb:
> Fabrikneuer atmega 328p

: Bearbeitet durch User
Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, vielleicht irre ich mich ja, aber es wurde doch Extended auf 00 
gesetzt, und da sehe ich unter 'Table 32-8. BODLEVEL Fuse Coding' eben 
'Reserved'. Wie können wir uns einigen?

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
S. Landolt schrieb:
> Tja, vielleicht irre ich mich ja, aber es wurde doch Extended auf
> 00
> gesetzt, und da sehe ich unter 'Table 32-8. BODLEVEL Fuse Coding' eben
> 'Reserved'. Wie können wir uns einigen?

Das ist doch klar...
Ich gebe auf...!
Und dir recht.

Denn ich habe nur http://www.engbedded.com/fusecalc/ benutzt.
Und das sagt eben: BOD 4,3
(auch wenn es falsch ist)

Wenn es sich so fatal auswirkt, ist wohl der HV Programmer die letzte 
Option.

: Bearbeitet durch User
Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich würde doch erst mal den Quarz und seine Verbindungen 
kontrollieren.

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... und falls dies nichts ergibt, an XTAL1 einen externen Takt anlegen, 
so ein solcher verfügbar ist.

Autor: Pechvogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Quarz, Controller schließe ich aus.
Ich konnte den Controller ja vor Setzen der Fuses auslesen und auch die 
Fuses neu beschreiben...

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Quarz ... schließe ich aus.

> ... auslesen und ... beschreiben ...
Schon, aber
> Fabrikneuer atmega 328p
der lief also mit dem internen RC-Oszillator.

Autor: Pechvogel (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Verfic....ttt


Atmega getauscht.
Danke an meinen Weller Gaslötkolben mit Heissluftdüse.

Dann fiel mir auf, ich hatte die 18pf Ziehkapazitäten am Quarz mal eben 
mit 100 nF bestückt.

Das erklärt so ziemlich alles.

Bootloader ist drauf, alles funktioniert.

Danke und sorry zugleich.

Karl

Autor: Gerhard O. (gerhard_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pechvogel schrieb:
> mit 100 nF bestückt

Hmm. Wo habe ich das schon mal gehört:-)

Welcome to the club!

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Durchsteck-Anhänger (für Gerhard O.: THT) kann mir das nicht 
passieren, da unterscheiden sich  pF- und 100 nF-Kondensatoren doch 
erheblich.

Autor: Gerhard O. (gerhard_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
S. Landolt schrieb:
> Als Durchsteck-Anhänger (für Gerhard O.: THT) kann mir das nicht
> passieren, da unterscheiden sich  pF- und 100 nF-Kondensatoren doch
> erheblich.

Wem so etwas noch nie passiert ist, hat sich einfach noch nicht lange 
genug in der Elektronik bewegt.

Mr. Murphy schläft nie...

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> noch nicht lange genug
Seit über einem halben Jahrhundert (schrecklich, wie das klingt) - und 
mir sind schon viele (dumme und unglaubliche) Fehler unterlaufen, aber 
speziell dieser eben nicht, aus genanntem Grund.

Autor: Pechvogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja seit einem halben Jahrhundert, aber wenige Jahre mit SMD...

Am Ende, reine Konzentrtionsfrage, also besser ohne Bier dabei.
Als Diplomarbeit fädelte ich eine Speicherkarte für Bilddaten, 
wochenlang...
Der Fehler lag dann unter dem Drahtverhau, Prost Mahlzeit.

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.