Forum: Mikrocontroller und Digitale Elektronik Welche Möglichkeiten, um Fuses zu verändern?


von AVRAnfänger (Gast)


Angehängte Dateien:

Lesenswert?

Hi Leute,

wie ihr meinem Namen entnehmen könnt, bin ich mit uC noch nicht sehr 
vertraut.

Meine Frage ist:
Welche Möglichkeiten gibt es, die Fuses zu verändern und sich dadurch 
auszusperren?

Ich verwende das AVR Starterkit aus dem Tutorial:
http://www.mikrocontroller.net/articles/AVR#Starterkits

Und habe zum zweiten Mal das Problem, wie es im Anhang zu finden ist. 
Als das Problem beim ersten Mal auftauchte, hieß es, Fuses seien 
verändert worden und ich hätte mich ausgesperrt.

Allerdings ging mein Code nie über einfache LED Blinken bzw. LCD hinaus.

Bewusst habe ich nie im AVR Studio die Fuses verstellt, sondern immer 
schön die Finger davon gelassen.

Jetzt meine Frage an euch:
Wenn mein Problem sich tatsächlich auf die Fuses zurückführen lässt und 
ich eben jene nicht direkt in AVR Studio verstellt habe, wie könnten 
sich meine Einstellung ändern, so dass ich mich aussperre?

Vielen Dank

von Fusel (Gast)


Lesenswert?

Um's kurz zu machen SPIEN und falsche Oszillator Einstellungen sind 
bestens dafür geeignet, sich auszusperren.

Schau mal da, http://www.engbedded.com/fusecalc

von Ben _. (burning_silicon)


Lesenswert?

ResetDisable ebenfalls.

von spess53 (Gast)


Lesenswert?

Hi

>Um's kurz zu machen SPIEN ...

SPIEN kann man per ISP nicht abschalten.

MfG spess

von AVRAnfänger (Gast)


Lesenswert?

Hi Fusel,

Fusel schrieb:
> Um's kurz zu machen SPIEN und falsche Oszillator Einstellungen sind
> bestens dafür geeignet, sich auszusperren.
>
> Schau mal da, http://www.engbedded.com/fusecalc

tut mir Leid, ich hätte mich umfangreicher ausführen sollen. Mit 
"bewusst die Fuses in AVR Studio" meinte ich die Oszillatorfrequenz. Ich 
habe die Frequenz genommen, die eingestellt war und mein Programm lief. 
Nun läuft es nicht mehr, ohne dass ich an dieser Einstellung etwas 
verändert hätte.

Ich weiß, dass es stark nach "Gestern lief es, dann kamen aber die 
kleinen grünen Männchen über Nacht vorbei und nun läuft es nicht mehr".

Daher würde ich gerne wissen, ob ich Probleme wegen "unsachgemäßem 
Umgang" bekommen haben könnte. Darunter verstehe ich z.B., dass ich das 
USB Kabel gezogen habe, während die Spannungsversorgung zum uC noch 
vorhanden war. Oder ich das USB Kabel gezogen habe, ohne in Windows das 
Gerät sicher zu entfernen (wobei ich mich nicht daran erinnern kann, 
dass ich die Möglichkeit dazu gehabt hätte) oder dass der uC einfach zu 
lange unbenutzt in der Ecke lag, sich einsam fühlte und nun böse auf 
mich ist und deshalb nicht mehr läuft.

Eure genannten Erklärungen zum Ändern der Fuses scheinen ja alle durch 
mein Handeln zu geschehen. Ich wüsste nicht, wo ich in 4 Zeilen Code 
etwas dergleichen gemacht habe :(

Gruß

von AVRAnfänger (Gast)


Lesenswert?

Was mir noch einfällt, aber vielleicht total irrelevant ist:

Ich verwende den AVRISP Clone, also nicht das Original. Im Tutorial wird 
das Original AVRISP empfohlen, weil irgendwelche Clone etc. nicht 
kompatibel seien, bei einigen funktionieren, bei anderen wiederum nicht.

Klar, ihr könnt nicht hellsehen und deshalb auch nicht sagen, ob das das 
Problem ist. Aber wäre das etwas, was theoretisch Einfluss haben könnte?

Gruß

von Fusel (Gast)


Lesenswert?

Zu allererst mal die Verbindung zum Programmer überprüfen, ggf. 
durchmessen.
Dann den Output vom Studio mal posten.

von Dussel (Gast)


Lesenswert?

Die Fuses änderst du sehr wahrscheinlich nicht im Programm, auch wenn es 
meines Wissens möglich wäre. Das geht aber dann nicht zufällig in einem 
Programm mit wenigen Zeilen.
Die Fuses werden im Programmierdialog eingestellt. Da kannst du mal 
sehen, ob irgendwas komisch ist. Es kann sein, dass die Einstellungen 
der Fuses gleich bleiben, auch in einem neuen Projekt. Wenn du die beim 
ersten Mal falsch eingestellt hast, könnten die im neuen Projekt auch 
falsch gebrannt sein.

>Ich verwende das AVR Starterkit aus dem Tutorial:
Welches? Da stehen mehrere.
Wenn auf dem Controller schon ein Programm drauf ist, das irgendwas 
macht, kannst du zumindest schonmal ausprobieren, ob der Reset 
abgeschaltet ist, indem du den Resetpin auf Masse legst. Am besten über 
einen Widerstand, denn er könnte ja als High-Ausgang eingestellt sein. 
Wenn das Programm dann nicht mehr läuft, ist zumindest der Resetpin noch 
aktiv.

von AVR-Fan (Gast)


Lesenswert?

Ob Du Dich "ausgesperrt" hast kannst Du mit der Abfrage
der CPU-ID rausbekommen. Die funktioniert auch wenn der "falsche" µC
eingestellt ist.

von AVRAnfänger (Gast)


Angehängte Dateien:

Lesenswert?

Fusel schrieb:
> Zu allererst mal die Verbindung zum Programmer überprüfen, ggf.
> durchmessen.
> Dann den Output vom Studio mal posten.

Bitte wie?

Es tut mir wirklich sehr Leid, dass ich mich doof anstelle. Hab aber 
bitte Verständnis dafür, dass diese uC Geschichte eine komplett neue 
Welt für mich ist.

- Ich weiß nicht, was ich messen soll
- Ich weiß nicht, worauf ich achten soll

Ich habe mal den Schaltplan vom ganzen Board eingefügt. Der ICSP ist ja 
die Verbindung zwischen Programmer und uC. Hier habe ich jetzt die Pins 
wie folgt gemessen:

Pin 2 und 10: 5 V
Pin 1 und 10: 0.05 V
Pin 3 und 10: 0 V
Pin 5 und 10: 4.75 V
Pin 7 und 10: 0.05 V
Pin 9 und 10: 0.05 V


Was genau meinst du mit Output vom Studio posten?

Vielen Dank schon mal für deine Hilfe.

Gruß

von Ben _. (burning_silicon)


Lesenswert?

> SPIEN kann man per ISP nicht abschalten.
Mit dieser Aussage wäre ich sehr vorsichtig. Ich bin einer der 
Glücklichen, die das in ihrer Anfangszeit bei einem ATMega8 geschafft 
haben! Und ja, ich bin mir SICHER daß es SPIEN war.

von AVRAnfänger (Gast)


Lesenswert?

Dussel schrieb:
> Die Fuses werden im Programmierdialog eingestellt. Da kannst du mal
> sehen, ob irgendwas komisch ist. Es kann sein, dass die Einstellungen
> der Fuses gleich bleiben, auch in einem neuen Projekt. Wenn du die beim
> ersten Mal falsch eingestellt hast, könnten die im neuen Projekt auch
> falsch gebrannt sein.

Siehe Anhang. Da ist ein externer Oszillator gewählt, wie mir scheint.
>
>>Ich verwende das AVR Starterkit aus dem Tutorial:
> Welches? Da stehen mehrere.
Das hier:
http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=108


> Wenn auf dem Controller schon ein Programm drauf ist, das irgendwas
> macht, kannst du zumindest schonmal ausprobieren, ob der Reset
> abgeschaltet ist, indem du den Resetpin auf Masse legst. Am besten über
> einen Widerstand, denn er könnte ja als High-Ausgang eingestellt sein.
> Wenn das Programm dann nicht mehr läuft, ist zumindest der Resetpin noch
> aktiv.
Was bringt mir der Resetpin? Nicht, dass ich es nicht ausprobieren 
werde, aber ich würde gerne verstehen, was da passiert :/

Gruß

von AVRAnfänger (Gast)


Angehängte Dateien:

Lesenswert?

Hier das Bild :)

von spess53 (Gast)


Lesenswert?

Hi

>Mit dieser Aussage wäre ich sehr vorsichtig. Ich bin einer der
>Glücklichen, die das in ihrer Anfangszeit bei einem ATMega8 geschafft
>haben! Und ja, ich bin mir SICHER daß es SPIEN war.

Aber nicht mit einer sauberen ISP-Verbindung. Und im AVR-Studio kannst 
du die Fuse nicht anwählen.

MfG Spess

von Fusel (Gast)


Lesenswert?

Mit durchmessen meinte ich die elektrisch einwandfreie Verbindung zum 
Programmer, also alles incl. Kabel des Programmers auf Durchgang 
überprüfen.

Oder noch einfacher ausgedrückt, das was beim Ausgang des Programmers 
rauskommt, muss auch an den PINs des Controller ankommen.

Das Board muss beim Flashen mit Spannung versorgt sein. Auch nachprüfen.

von AVRAnfänger (Gast)


Lesenswert?

Fusel schrieb:

> Oder noch einfacher ausgedrückt, das was beim Ausgang des Programmers
> rauskommt, muss auch an den PINs des Controller ankommen.
Durchgang geprüft: Check!

Alles i.O.


> Das Board muss beim Flashen mit Spannung versorgt sein. Auch nachprüfen.
Zum Flashen komme ich gar nicht. Momentan geht es ja erstmal um die 
Verbindung, dass AVR Studio den Programmer erkennt und die Verbindung 
herstellt.

Habe aber trotzdem mal die Spannung am uC geprüft. 5 V liegen zwischen 
AVCC und AGND an.

Zufällig jemand aus Kassel oder Umgebung hier? :P


Gruß

von Fusel (Gast)


Lesenswert?

So, wenn das geklärt ist, dann ist die Frage, ob AVR Studio deinen 
Programmer richtig erkennt.

von Dussel (Gast)


Lesenswert?

AVRAnfänger schrieb:
>> Wenn auf dem Controller schon ein Programm drauf ist, das irgendwas
>> macht, kannst du zumindest schonmal ausprobieren, ob der Reset
>> abgeschaltet ist, indem du den Resetpin auf Masse legst. Am besten über
>> einen Widerstand, denn er könnte ja als High-Ausgang eingestellt sein.
>> Wenn das Programm dann nicht mehr läuft, ist zumindest der Resetpin noch
>> aktiv.
> Was bringt mir der Resetpin? Nicht, dass ich es nicht ausprobieren
> werde, aber ich würde gerne verstehen, was da passiert :/

Über den Resetpin wird der Controller in den Reset gesetzt, wie der Name 
sagt. Eigentlich ist es der !Reset (negiert) Pin, meistens mit einem 
Strich über dem Namen. Das heißt, der Controller ist im Reset, wenn der 
Pin auf Low ist.
Wenn der Controller im Reset ist, kann er über ISP programmiert werden, 
die Ports werden auf Eingang geschaltet und die CPU wird angehalten.
Normalerweise nutzt das der Programmer, um den Controller über SPI zu 
programmieren, aber damit kannst du auch prüfen ob die Resetfunktion des 
Pins abgeschaltet ist. Wenn ein Programm auf den Controller läuft, wird 
es logischerweise nicht mehr laufen, wenn die CPU angehalten ist. Wenn 
du den Pin also auf Low legst, und das Programm läuft weiter, weißt du, 
dass der Resetpin nicht mehr als Reset funktioniert.

Aber so wie ich AVR Studio im Kopf habe, scheint deinem Screenshot 
zufolge die Resetfunktion nicht deaktiviert zu sein.

Du kannst auch noch die Lockbits ansehen. Mit denen kann das Schreiben 
und lesen auch deaktiviert werden, aber ich glaube, dann würde er 
zumindest noch in den Programming Mode gehen und dann melden, dass der 
Controller nicht programmieren kann.

von AVRAnfänger (Gast)


Angehängte Dateien:

Lesenswert?

Fusel schrieb:
> So, wenn das geklärt ist, dann ist die Frage, ob AVR Studio deinen
> Programmer richtig erkennt.

Jap, klingt logisch.

Was ich mache:
(1) Versorge Board mit Spannung
(2) Verbinde Board und Programmer physikalisch
(3) Stecke Programmer per USB an den PC
(4) Starte AVR Studio 4.18
(5) Lade das beim Board beigefügt LED Blink Projekt
(6) Kompiliere das Programm mittels F7
(7) Drücke den "Con" Button in AVR Studio
(8) Wähle AVRISP mkII -> USB aus und klicke auf Connect

Und dann kommt direkt das Bild im Anhang.

ISP Frequenz ist auf 125 kHz.


Gruß

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Ben _ schrieb:
> Und ja, ich bin mir SICHER daß es SPIEN war.

spess53 schrieb:
> Aber nicht mit einer sauberen ISP-Verbindung. Und im AVR-Studio kannst
> du die Fuse nicht anwählen.

Es gab mal eine PonyProg Version 2.06x die genau das gemacht hat. War 
ein Bug und diese Version wurde dann auch entfernt. Hier konnrte man 
alle Settings abwaehlen, u.a. auch SPIen.
Also das es NICHT geht ist ein Geruecht. Es sollte nicht gehen waere 
treffender.

AVRAnfänger schrieb:
> ISP Frequenz ist auf 125 kHz.

Den Fehler habe ich auch oefters. Bei mir hilft dann nur ein reboot. 
WinXP

Probiere zum setzen der Fusebits und flashen mal ein anderes Programm. 
AVR-Burn-O-Mat oder AVRDude direkt.

von Ben _. (burning_silicon)


Lesenswert?

**grummel**

Es war eine AVR Studio 4 Version. Was anderes hab ich nie verwendet. Und 
ich konnte sie abwählen, sonst hätte ich mich nicht ausgesperrt. SICHER!

Egal ob Du es in den nächsten 100 Jahren noch glaubst oder nicht, es ist 
bislang mein erster und einziger verfusedter AVR weil ich zu faul war 
nachzusehen was die SPIEN-Fuse ist. Ich habs erst danach wissen wollen, 
leider etwas spät.

von spess53 (Gast)


Lesenswert?

Hi

>Also das es NICHT geht ist ein Geruecht. Es sollte nicht gehen waere
>treffender.

Dann lügt Atmel:

2. The SPIEN Fuse is not accessible in serial programming mode

MfG Spess

von Fusel (Gast)


Lesenswert?

AVRAnfänger schrieb:
> Ich verwende den AVRISP Clone, also nicht das Original.

Welchen genau?

Wie wird der in der Systemverwaltung angezeigt?

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

spess53 schrieb:
> Dann lügt Atmel:
>
> 2. The SPIEN Fuse is not accessible in serial programming mode
>
> MfG Spess

Und weil das jetzt in irgendeinem Datenblatt von irgendeinem AVR oder in 
irgendeiner AN steht, ist Atmel nun unfehlbar oder was soll das Zitat ?
Tatsache ist, es geht. Aus welchen Gruenden auch immer.

von AVRAnfänger (Gast)


Angehängte Dateien:

Lesenswert?

Fusel schrieb:
> Welchen genau?
USBprog
http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=10

> Wie wird der in der Systemverwaltung angezeigt?
AVRISP mkII, siehe Anhang.


Gruß

von Ben _. (burning_silicon)


Lesenswert?

vielleicht in der aktuellen version. damals ging es DEFINITIV.

bin mir auch sehr sicher, daß es ein AN-910 programmer war.

von spess53 (Gast)


Lesenswert?

Hi

>Und weil das jetzt in irgendeinem Datenblatt von irgendeinem AVR oder in
>irgendeiner AN steht, ist Atmel nun unfehlbar oder was soll das Zitat ?
>Tatsache ist, es geht. Aus welchen Gruenden auch immer.

Deine Behauptung ist auch kein Beweis. Hast du belastbare Fakten?

MfG Spess

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

spess53 schrieb:
> Hast du belastbare Fakten?

Ja, die PonyProg Version 2.06x welche aus dem Programm genommen wurde. 
Siehe lancos oder einfach nachfragen. Und einen ATmega644_PU den ich per 
HV zuruecksetzen musste. Programmiert ueber dt006

von Fusel (Gast)


Lesenswert?

Sie mal dieser Beitrag

Beitrag "Re: AVR Starterkit (inkl. USB Programmer) von embedded projects - keine Verbindung zum AVR Studio5"

Hol Dir das neue Firmware-Upgrade für den Clone.

von AVRAnfänger (Gast)


Lesenswert?

Fusel schrieb:
> Sie mal dieser Beitrag
>
> Beitrag "Re: AVR Starterkit (inkl. USB Programmer) von embedded projects - keine 
Verbindung zum AVR Studio5"
>
> Hol Dir das neue Firmware-Upgrade für den Clone.

Wie geil ist das denn. Ich habe Probleme damit. Der Bildschirm bleibt 
schwarz, wenn ich USBProg starten will. Egal, welche Einstellung ich 
gewählt habe.

Eben habe ich den Hersteller, embedded-projects, kontaktiert. Mal sehen, 
was die so sagen.

Wenn du/ihr noch eine andere Idee habt, was ich in der Zwischenzeit tun 
könnte, dann bin ich sehr offen für eure Vorschläge :)

So schwer hatte ich mir den Einstieg in die AVR Welt wirklich nicht 
vorgestellt.

Gruß

von Fusel (Gast)


Lesenswert?

AVRAnfänger schrieb:
> Wenn du/ihr noch eine andere Idee habt, was ich in der Zwischenzeit tun
> könnte, dann bin ich sehr offen für eure Vorschläge :)

Den original ATMEL AVR ISP mkII kaufen?

Bis dahin Programmierkenntnisse vertiefen .-)

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.