Forum: Mikrocontroller und Digitale Elektronik Fusebits setzen AVR-Studio/AVR OSPII


von Björn W. (wulfi)


Lesenswert?

Hallo,

ich bin gerade dabei mich in das AVR-Tutorial(mikrocontroller.net) 
einzulesen, um erste Erfahrungen mit den Controllern zu sammeln.

Die benötigte Hardware habe ich soweit zusammen. Diesen ISP habe ich 
nachgebaut:

http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html

Nun wollte ich ersteinmal die nötigen Fusebits setzen.
Wenn ich AVR-Studio verwende kann ich die Fusebits und den Flash zwar 
auslesen, aber nicht schreiben!
Wenn ich die neuen Fusebits einstelle und dann schreibe, tut der 
Programmer das auch scheinbar... bloß wenn ich sie danach wieder auslese 
sind es die default Werte!

Bei AVR OSPII ist es genauso!
hier der Log:

Checking programmer type ...
Found AVR ISP
Entering programming mode...
Signature = 0xFF 0xFF 0xFF
Leaving programming mode...
Checking programmer type ...
Found AVR ISP
Entering programming mode...
Fuse bits read = 0xFFFF    ( 1111111111111111 )
Leaving programming mode...
Checking programmer type ...
Found AVR ISP
Entering programming mode...
Programming fuse bits...
Selected device has no extended fuse bits!
Leaving programming mode...

Was könnte nicht stimmen???
Ich weiß nicht mehr weiter!

Gruß
Björn

von Elmar H. (elmar69)


Lesenswert?

> ich bin gerade dabei mich in das AVR-Tutorial(mikrocontroller.net)
> einzulesen, um erste Erfahrungen mit den Controllern zu sammeln.

Eine dürfte die sein, dass man mit den Fuse-Bits vorsichtig sein muss - 
zumindestens wenn man nur einen ISP-Programmer hat.

> Entering programming mode...
> Signature = 0xFF 0xFF 0xFF

Da wird kein Device erkannt.

Entweder ist der AVR-Controller nicht richtig angeschlossen oder er kann 
nicht mehr ISP-Programmiert werden.

Man kann sich gleich auf mehreren Wegen aussperren:

a) Wahl der Taktquelle: Wenn man was anderes als den internen Taktgeber 
einstellt, muss der Taktgeber auch zur Programmierung laufen.

b) Reset-Disable: Wenn man die Reset-Leitung als IO-Port freischaltet, 
ist anschließend Essig mit ISP-Programmierung.

c) Es gibt sogar eine Fuse, um ISP-Programmierung grundsätzlich 
abzuschalten.

Mit einem HV-Programmiergerät ist das alles kein Problem, bei a) kann 
man durch Hinzunahme einer entsprechenden Taktschaltung weiterkommen.

von Bensch (Gast)


Lesenswert?

Hast du möglicherweise beim ersten Schreiben das Teil verfust? Lies mal 
das Tutorial, da stehen viele Hinweise und Lösungsmöglichkeiten.

Was hat die Signatur angezeigt VOR dem ersten Schreiben?

von Rene (Gast)


Lesenswert?

hast mal das hier probiert?

http://www.myavr.de/download.php?suchwort=dl112

gruß Rene

von Björn W. (wulfi)


Lesenswert?

Hallo,

habe eben mal einen 2. Controller getestet und hier passiert das 
gleiche...
Zu mindest bei AVR OSPII bei AVR-Prog sagt er nun bei den Fusebits 
verify and programming disabled. Also dass alle Lockbits gesetzt sind!

Und bei dem ersten Controller konnte ich ja bisher noch gar keine Fuses 
schreiben.

Ich werde nachher nochmal die gesamte Verkabelung des Controllers 
überprüfen.

Björn

von Elmar H. (elmar69)


Lesenswert?

Björn Wulf wrote:

> Zu mindest bei AVR OSPII bei AVR-Prog sagt er nun bei den Fusebits
> verify and programming disabled. Also dass alle Lockbits gesetzt sind!

Das sollte mit einem Chip-Erase wieder rückgängig gemacht werden können.

von Björn W. (wulfi)


Lesenswert?

Elmar Haneke wrote:
> Björn Wulf wrote:
>
>> Zu mindest bei AVR OSPII bei AVR-Prog sagt er nun bei den Fusebits
>> verify and programming disabled. Also dass alle Lockbits gesetzt sind!
>
> Das sollte mit einem Chip-Erase wieder rückgängig gemacht werden können.

Chip-Erase mit AVR-Prog habe ich versucht... schafft keine Abhilfe!

Bin gerade dabei nochmal alles zu überprüfen!

Björn

von Björn W. (wulfi)


Lesenswert?

Habe gerade mal mein ISP-Kabel durchgemessen... Dabei musste ich 
feststellen, dass die MISO-Leitung unterbrochen ist!
Mal sehen ob ich die Unterbrechnung beseitigen kann, danach sieht die 
Sache ja eventuell ganz anders aus!

Björn

von Björn W. (wulfi)


Lesenswert?

Es funktioniert jetzt!!! :)

Konnte den Flash schon erfolgreich beschreiben mit AVR-Prog!
Ich soll ja nun die Fuses so einstellen...

http://www.mikrocontroller.net/images/atmega8-nachher.png

Mit AVR-Prog muss ich dann von:

Int RCosc, Frequency 1MHz auf
Ext RCosc, Frequency ~8MHz stellen?!?!? Nutze einen 4MHz Quarz.

Startup: 64ms + 6 CK kann diese Einstellung so bleiben??

Der Rest müsste eigentlich stimmen:

BOD enabled, 4.0V
Boot block 1024 Words.

Hoffe jemand kann mir helfen.

Björn

von Bensch (Gast)


Lesenswert?

>Neiiiiin, nicht ext RC Osc, sondern ext XTAL.
CKOPT würde ich auch setzen, sofern dass nicht Ultra Super Low Power 
sein muss.

von Björn W. (wulfi)


Lesenswert?

Bensch wrote:
>>Neiiiiin, nicht ext RC Osc, sondern ext XTAL.
> CKOPT würde ich auch setzen, sofern dass nicht Ultra Super Low Power
> sein muss.

Gut, dass ich die Fuses noch nicht gesetzt habe...

Bei EXT XTAL, low frequency??? Oder medium/high ??
Und wie muss der Startup eingestellt werden?

Hier mal ein Bild von der Oberfläche:

http://www.bilder-hochladen.net/files/5h4a-6-jpg.html

Björn

von Bensch (Gast)


Lesenswert?

Hmm, ich nehm immer 9,830 MHz. 4 MHz müsste noch Low sein. Aber mach ein 
Häkchen bei Full Amplitude, das ist die CKOPT Fuse.

Lt. deiner Überschrift benutzt du AVR OSPII, da ist das viel 
übersichtlicher. Ausserdem zeigt der AVR Prog z.B. beim mega32 kein Full 
Amplitude an, also unbrauchbar.

von Bensch (Gast)


Lesenswert?

Stop.
4 MHz müsste Medium sein, Low ist z.B. 32 kHz.

von Fred S. (Gast)


Lesenswert?

Hallo Björn,

was Deine Nutzeroberfläche als "low frequency" bezeichnet, weiß ich 
nicht. Kannst Du vielleicht irgendwo sehen, wie diese Eingaben in die 
CKSEL Bits umgesetzt werden? Dann hilft Dir das Datenblatt, in dem für 
die Wahl von CKSEL bei externem Quarz und CKOPT=1 die Frequenzbereiche 
0,4-0,9; 0,9-3.0 und 3,0-8,0 MHz unterschieden werden.

Gruß

Fred

von Björn W. (wulfi)


Lesenswert?

Danke für deine Hilfe Bensch!

Habe die Fuses nun mit AVR OSPII gesetzt und das Programm läuft im 
Controller so wie es soll!!

Gruß
Björn

von Björn W. (wulfi)


Lesenswert?

Hallo Fred,

bei AVR-OSPII sieht es so aus:

ext crystal/resonator low freq cksel = 1010 und 1011 und jeweils sut
ext crystal/resonator med freq cksel = 1100 und 1101
ext crystal/resonator hig freq cksel = 1110 und 1111

Ich habe diese Fuse gesetzt:

ext crystal/resonator medium freq, start up time 16k ck + 64ms
cksel=1101 sut=11

Björn

von Fred S. (Gast)


Lesenswert?

Hallo Björn,
laut ATmega8xxx-Datenblatt (Rev. 2486M–AVR–12/03) S.25 würde ich für 
einen externen 4MHz Quarz CKOPT und CKSEL auf 1111 setzen. Deine 
Startup-time ist in Ordnung.

Gruß

Fred

von Björn W. (wulfi)


Lesenswert?

Fred S. wrote:
> Hallo Björn,
> laut ATmega8xxx-Datenblatt (Rev. 2486M–AVR–12/03) S.25 würde ich für
> einen externen 4MHz Quarz CKOPT und CKSEL auf 1111 setzen. Deine
> Startup-time ist in Ordnung.
>
> Gruß
>
> Fred

Ist jetzt gesetzt! :)

Vielen Dank für eure Hilfe!

Björn

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.