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