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