Forum: Mikrocontroller und Digitale Elektronik Nach dem FUSE-Bit programmieren kein Zugang (ATmega16)


von Noob (Gast)


Lesenswert?

Ich mache es kurz:

avrdude -p m16 -c stk200 -P lpt1 -U lfuse:w:0xe1:m -U hfuse:w:0xd9:m

aus WINAVR, also der WINDOWS XP Pro Commandline setzt die Fuses und 
danach kann ich den ATmega 16 nicht mehr mit dem SPI ansprechen.

Ich benutze an dem Laptop einen STK200 Programmer aus einem Starterkit 
und besitze auch ein STK500.

Meldungen kriege ich keine mehr, weil meine 5 ATmega16 nun nicht mehr 
ansprechbar sind.

Ich wollte eigentlich den JTAG abschalten, den internen Oszilator auf 1 
MHz stellen und dann mit dem Servo Teil aus dem AVR Tutorial arbeiten. 
Ausserdem hatte ich bis vor etwa 20 Minuten noch vor, auch mal PWM auf 
dem STK500 auszuprobieren.

Was stimmt mit den Fuse-Bit nicht ?
Habe ich mich etwa ausgesperrt oder muß ich an diesem ominösen Takt zum 
Programmieren etwas einstellen. (Wie mache ich das aus AVR Dude heraus?)

Gruß

Johannes

von Düsendieb (Gast)


Lesenswert?

Noob schrieb:
> weil meine 5 ATmega16 nun nicht mehr
> ansprechbar sind

das heißt, Du hast 5 mal immer das gleiche falsch gemacht.

Den Takt legst Du aus einer externen Taktquelle an. Gib mal bei der 
Suche "verfused" ein

von Thomas (kosmos)


Lesenswert?

du hättest einfach die Fuses aus AVR-Studio ändern sollen. Aber Dank 
STK500 solltest du wieder alle 5 retten können.

von Axel D. (axel_jeromin) Benutzerseite


Lesenswert?

Habe ich glatt übersehen. HV Programier-Modus heißt das Ding

von Noob (Gast)


Lesenswert?

Danke, werde ich dann mal machen.

Reicht es, wenn ich so einen 3646800 Hz Kasten mit 4 Beinen dran neben 
den Mega 16 in das Breadboard stecke ?

Wenn ich Das richtig sehe, dann sollte doch bei der Fuse Einstellung 
wirklich nur das JTAG Interface ausgehen. Oder ist da schon ein Fehler ?

Google schickt mich nach Eingabe der Zeile ab "-U lfuse:w:0xe1:m -U 
hfuse:w:0xd9:m" auf div. Seiten mit FUSE Calculator und die sagen, das 
nur das JTAG ausgeht (Häkchen weg) und RC Osz 1 MHz gewählt wird.

Kann bitte für mich jemand mal die FUSE Einstellung prüfen ? Bitte, 
bitte, ... Sonst bin ich morgen noch dran nach Datenblatt die Register 
auf ein Blatt Papier zu malen und die Bitmuster von HEX nach Binär 
umzurechnen und dann zu rätseln in welcher Richtung High-Byte und 
Low-Byte gelesen werden.

Es ist nicht so, das ich die Datenblätter nicht gelesen hätte ... 
Vielleicht habe ich ja nur ein Verständnisproblem. Schließlich hat es ja 
auch mehr als 3 Stunden gedauert, bis ich alle Beiträge zu "LED Flackern 
am AT Mega 16" hier im Forum gelesen und verstanden hatte. Dann kam erst 
der Versuch, das JTAG auszuschalten.

Johannes

von Markus B. (mbp-bayern)


Lesenswert?

Hallo Johannes,

Abundzu muss ich mal wieder ein neuse Batch schreiben,
für den Serien-Programmier-PC bei mir im Betrieb.
Also hatte ich auch Bedarf an Berechnung und wurde Fündig:

http://www.engbedded.com/fusecalc

Dieser Fuses-Rechner kann beide Richtungen berechen.
Und die bisherigen Erfahrungen haben ihm recht gegeben.

Ansonsten noch:
Beitrag "AT90CAN128 verfust"

MFG:MBP
Markus

von Thomas (kosmos)


Lesenswert?

es kommt drauf an was man verfused hat, wenn man auf externen 
Quarzoszillator umgestellt hat geht es mit dem externen Takt wenn man 
auf Quarz umgestellt hat, muss man halt die Quarzschaltung mit 
Kondenstoren entsprechend aufbauen.

Geh mal im AVR Studio auf die Hilfe AVR Tools->STK 500 User 
Guide->Hardware Description->Target Socket Section->Parallel High 
Voltage Programming dort ist alles zur Verkabelung beschrieben.

von Noob (Gast)


Lesenswert?

Laut dem verlinkten Fuse-Bit Calculator und auch mit dem AVR Studio (Man 
ist das umständlich. So eine Menge Programm. Das geht mit WINAVR besser) 
kommt der gleiche HEX-Wert für die Fuses raus.

Ich habe mal einen Mega 16 wieder in den "Werkszustand" geflashed mit 
diesem HV Prog Gedöhne. Danach konnte ich den wieder mit dem AVR Studio 
lesen.

Fuses geklickt: JTAG disable, Internal RC 1 MHz.

Mit dem ISP Anschluß auf dem STK 500 den Mega 16 auf dem STK500 gefused 
und schon wieder nicht mehr ranzukommen.

Was passiert da ???

Die ATmega 16 sind ca. 1 Jahr alt, lagen auf leitfähigem Schaumstoff im 
Teileregal und wenn ich nur einen Quarz mit 1MHz dranmache und den JTAG 
eingeschaltet lasse, dann klappen die.

Irgendwie komme ich mir von der Technik verladen vor.

Johannes

von Turbo T. (turbotoni)


Lesenswert?

Normalerweise waren bei den AtMega16 früher mal die internen 1Mhz RC 
Oszilatoren im Lieferzustand aktiv.
Die brauchte man nicht extra zu aktivieren.

von Thomas (kosmos)


Lesenswert?

vielleicht programmierst du zu schnell ich wähle generell 125 kHz also 
1/8 des niedrigsten internen Taktes 1/4 also 250 kHz würde auch gehen 
aber ich geh auf Nummer sicher so lange dauert es ja nun auch nicht.

von Turbo T. (turbotoni)


Lesenswert?

Und normalerweise sollte man die Fuses erst auslesen, bevor man daran 
Änderungen vor nimmmt.

von Markus B. (mbp-bayern)


Lesenswert?

Hallo Johannes,

Wenn ich im AVR-Studio auf den Fuses-Tab klicke,
OHNE, dass ein AVR am ISP-Kabel hängt, so bekomme ich eine 
Fehlermeldung.
Soweit OK,

ABER:

Das was dann in der Fuses-Übersicht passiert ist kompletter "Blödsinn".
Wenn man nun Fuses umstellt und flasht, so gäbe das also Mist.

Fazit:

1.)
Immer auf dem Main-TAB den gewünschten Controler einstellen,
dann "Read Signature" anklicken.
--> Meldung "Signature matches selected device"
    (oder so ähnlich) erscheint dann irgendwo.
==> Programmierverbindung erfolgreich geprüft.

2.)
Nur an den Fuses im AVR-Studio umstellen bzw. flashen,
wenn einem angesteckten Controller die Fuses ordentlich ausgelesen 
wurden.

3.)
Ggf. hilft es auch noch, einfach den Controller nach einem Auslesen,
vor dem Programmieren spannungslos zu machen.
(STK500 ISP-Kabel zur Schaltung abziehen, bzw. Board ausschalten nicht 
vergessen - das STK liefet ja selbst Spannung.)

Villeicht hilft das bei Deinem Problem.

MFG:MBP
Markus.

von noob (Gast)


Lesenswert?

So, ich habe das Problem mit Hilfe meines Physiklehrers lösen können ...

Der hat noch so einen uralten PC von Highscreen mit "echter 
Parallelschnittstelle", wie er sagt.

Nun hat der natürlich auf den uralten Pentium mit 166MHz kein Windows, 
sondern so eine CD von tuxgraphics wo alle nötigen Sachen für die AVR 
Programmierung drauf sind.

Der hat dann auf meinem Steckbrett mit dem STK200 Programmer und

avrdude -p m16 -c stk200 -U lfuse:w:0xe1:m -U hfuse:w:0xd9:m

die Fuses gesetzt.

Nun kommt der Hammer ...
Das flackern der LED am JTAG Port war gleich danach aus und der ATmega16 
ist noch ansprechbar.

Auch die anderen 4 sind nun mit 1 MHz intern RC und JTAG aus geflashed 
... und funktionieren immer noch.

Keine Ahnung, was da der Unterschied zwischen meinem MSI-6380 Ver. 2 
Motherboard und seinem Uralt PC ist. Aber die ATmega 16 laufen wie sie 
sollen auf meinem Steckbrett und ich hoffe das ich nun in den Ferien 
nach dem Lernen für die 2. Mathearbeit (Klasse 9 Realschule) auch mal 
endlich rausfinde wie das Zeitmessen für die Servoimpulse aus dem 
Empfänger geht. Ich will nur einen Kanal wissen und nicht 8 wie in den 
ganzen Beispielen.

Johannes

von Markus B. (mbp-bayern)


Lesenswert?

Hallo Johannes,

noob schrieb:
> So, ich habe das Problem mit Hilfe meines Physiklehrers lösen können ...
>
> Der hat noch so einen uralten PC von Highscreen mit "echter
> Parallelschnittstelle", wie er sagt.

Die meisten neuen Parallelports basieren mittlerweile auf 3,3V.
Villeicht meint er dass es sich bei seinem noch um einen mit 5V-Pegel 
handelt.

Dieses Problem ist mir begegnet, als ich versucht habe,
einen ICD2-Nachbau Programmer für PIC18 zu bauen.
Ein leerer PIC benötigt dazu genau 1x eine Firmware,
um ihn danach auf dem gebauten Programmmer einzusetzen.
Leider klappte ein Quick&Dirty-Brenner nicht.
Auf http://sprut.de/electronic/pic/brenner/index.htm
habe ich dann die Ursache mit den 3,3V gelesen.

Wenn Dein Problem aber auch mit dem STK500 auftritt,
so kann das nicht die Ursache sein, denn das STK500 ist ja seriell.

Abblockkondensatoren verwendest du ja hoffentlich auch auf Deinem 
Steckbrett.

MFG:MBP
Markus.

von Thomas (kosmos)


Lesenswert?

ja da gibts ja auch Treiber für leicht unterschiedliche Pegel HC und 
HCT.

von Tip (Gast)


Lesenswert?

noob schrieb:
> ... und ich hoffe das ich ... auch mal
> endlich rausfinde wie das Zeitmessen für die Servoimpulse aus dem
> Empfänger geht

Vielleicht kannst du dafür von diesem Projekt etwas abgucken. Das C ist 
alles andere als schön geschrieben, aber die Zeitmessung läuft.
http://der-frickler.net/modellbau/avr/flightlight

MfG

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.