Forum: Mikrocontroller und Digitale Elektronik atmega8 und atmega32 werden verfused


von brungi (Gast)


Lesenswert?

Hallo allerseits !

Die Frage gleich vorweg:
Woran kann es liegen, wenn ich mit meinem Laptop und mysmartUSB 2.11 
zwar fuses lesen kann aber nicht schreiben ? In den Flash schreiben 
geht, genauso wie lesen.

Ich habe versucht:
 - avrdude ( Linux und Windows Vista) auf 2 verschieden laptops,
 - das experimentierboard myavr mkII, und 2 selbstgebaute Platinen für 
m8 und m32,
- verschiedene programmer für avrdude
-- avr911 -> kann nicht schreiben,(fuses)
-- avr910 schreibt zwar die Fuses, diese werden alle auf 0xff gesetzt, 
genauso die device signatur auf 0xffffff,
--  avr109 verhält sich wie avr911
-- verschiedene USB-Kabel (2m, 0,6m)

Es geht eigentlich nur darum die lfuse von 0xe1 auf 0xe0 zu setzen, 
damit ich einen externen quartz ( 3...8MHz) nutzen kann.

für Tips und Anregungen wäre ich sehr dankbar

brungi

von Stephan (Gast)


Lesenswert?

Tipp:
- Atmel AVRISPMKII (original!) benutzen, kostet nicht wirklich viel.
- Atmel Dragon benutzen, wenn genug Geld da ist.
- STK500 benutzen, wenn zuviel Geld da ist.

von brungi (Gast)


Lesenswert?

Also doch s Programmiergerät...
Na ja... viel bleibt ja auch nicht mehr übrig

von brungi (Gast)


Lesenswert?

So...
ich hab jetzt zwischenzeitlich den originalen avrispmkII besorgt ( von 
Atmel). Jetzt habe ich das Problem, daß das Device /dev/ttyUSB0 nicht 
mehr automatisch generiert wird ( beim einstecken des USB - Steckers)

Ausgabe von lsusb:
1
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
2
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
3
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
4
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
5
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
6
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
7
Bus 003 Device 002: ID 03eb:2104 Atmel Corp. AVR ISP mkII

Also wird der avrispmkII  erkannt. Muß ich jetzt auf den mkII erst eine 
spezielle Firmware aufspielen oder sowas ?

von brungi (Gast)


Lesenswert?

### Edit

Der avrispmk 2 läuft jetzt.

Aber leider werden dabei die µC beim schreiben der Fuses immer noch 
unbrauchbar... heul

Ich kann im Terminalmodus vom avrdude die fuses lesen, und auch 
schreiben. Beim nochmaligen lesen wird auch der neue Wert angezeigt. 
Wenn ich dann den avrdude beende, kann ich danach nie wieder auf den µC 
zugreifen.

Hier mal n paste vom avrdude danach...
1
avrdude -cavrisp2 -Pusb -pm8 -n -v
2
3
avrdude: Version 5.10, compiled on Feb 22 2011 at 23:50:16
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
         Copyright (c) 2007-2009 Joerg Wunsch
6
7
         System wide configuration file is "/etc/avrdude.conf"
8
         User configuration file is "/root/.avrduderc"
9
         User configuration file does not exist or is not a regular file, skipping
10
11
         Using Port                    : usb
12
         Using Programmer              : avrisp2
13
avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200087856
14
         AVR Part                      : ATMEGA8
15
         Chip Erase delay              : 10000 us
16
         PAGEL                         : PD7
17
         BS2                           : PC2
18
         RESET disposition             : dedicated
19
         RETRY pulse                   : SCK
20
         serial program mode           : yes
21
         parallel program mode         : yes
22
         Timeout                       : 200
23
         StabDelay                     : 100
24
         CmdexeDelay                   : 25
25
         SyncLoops                     : 32
26
         ByteDelay                     : 0
27
         PollIndex                     : 3
28
         PollValue                     : 0x53
29
         Memory Detail                 :
30
31
                                  Block Poll               Page                       Polled
32
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
33
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
34
           eeprom         4    20   128    0 no        512    4      0  9000  9000 0xff 0xff
35
           flash         33    10    64    0 yes      8192   64    128  4500  4500 0xff 0x00
36
           lfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
37
           hfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
38
           lock           0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
39
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
40
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
41
42
         Programmer Type : STK500V2
43
         Description     : Atmel AVR ISP mkII
44
         Programmer Model: AVRISP mkII
45
         Hardware Version: 1
46
         Firmware Version Master : 1.10
47
         Vtarget         : 5.2 V
48
         SCK period      : 8.00 us
49
50
avrdude: stk500v2_command(): command failed
51
avrdude: stk500v2_command(): unknown status 0xc9
52
avrdude: stk500v2_program_enable(): cannot get connection status
53
avrdude: initialization failed, rc=-1
54
         Double check connections and try again, or use -F to override
55
         this check.
56
57
58
avrdude done.  Thank you.

Yes, Avrdude. Thank you too ! (dieser Satz stammt von mir)

Weiß irgendjemand woran es noch liegen könnte ?

von Oliver J. (skriptkiddy)


Lesenswert?


von brungi (Gast)


Lesenswert?

Oliver J. schrieb:
> DÄÄÄÄ.
> Damit stellst du auf externen Takt.

Ja. Genau das will ich. Auf der selbstgebauten Ziel-Platine ist bereits 
ein 8 MHz Quartz verbaut, an XTAL1 und XTAL2 angeschlossen und mit 2x 
22pF Keramikkondensatoren gegen Masse "entkoppelt".
Was ist daran falsch ?

von Bastler (Gast)


Lesenswert?

"Externem Takt" wird gerne mit "externem Quarz/Resonator" verwechselt? 
Wenn die Oszillatorschaltung nicht aktiviert ist, schwingt der Quarz 
auch nicht.

Nun aber schnell einen echten externen Takt anschließen und Prozessoren 
retten ;-)

von brungi (Gast)


Lesenswert?

Jetzt mal ganz langsam...

Bitte korrigiert mich, wenn ich mich irre...

Das kleine Edelsthl - Ding ( Die Grundfläche sieht aus wie ein 
klitze-kleines Fussballstadion) ist ein Quartz oder nicht ?

laut Datenblatt vom atmega8, Seite 26, Tabelle 2, gehören die fusebits 
von lfuse auf ...

da steht:

external crystal / ceramic resonator        1111 - 1010

Die Grundeinstellung der lfuse des atmega8 ist  1110. ( 0xe1)
also muss ich für den external crystal 1111  ( 0xe0) einstellen, oder ?

external crystal = Externer Quartz(Kristall???)

von Uwe (de0508)


Lesenswert?

Nutze bitte mal dieses Tool:

http://www.engbedded.com/fusecalc/

damit hatte ich nie Probleme.

von Bastler (Gast)


Lesenswert?

brungi schrieb:
> Die Grundeinstellung der lfuse des atmega8 ist  1110. ( 0xe1)
> also muss ich für den external crystal 1111  ( 0xe0) einstellen, oder ?

Nein, 1111 ist nicht 0xe0. Mit 0xe0 steht der ATmega8 auf Ext. Clock mit 
64ms Startup

Für einen externen Quarz (Ext. Chrystal/Resonator High Freq.) mit 
reichlich Startzeit ist für die LFuse 0xff z.B. ein guter Wert.

von Giuseppe B. (brungi)


Lesenswert?

ok. ich hab jetzt mal gemacht, was mir Bastler empfohlen hat.
Und jetzt ist alles gut.
Die verfusten atmega8 zurückgeholt und diesmal die lfuse auf 0xff 
gestellt.
Das Datenblatt studiert ( diesmal richtig). Na ja...
Wenn man vorher schon weiß, daß bei der lfuse 0xff rauskommen soll, dann 
kann man das schon irgendwie nachvollziehen. Und sowieso wenn man auch 
die Texte liest und nicht nur die Tabellen anschaut... ( schäm)
Aber ehrlich : Selbst hätte ich das nicht geschnallt.

Danke Bastler !

von Ich (Gast)


Lesenswert?

Aber dafür hast Du ja jetzt auch immerhin einen prima Progger!

von Giuseppe B. (brungi)


Lesenswert?

Ich schrieb:
> Aber dafür hast Du ja jetzt auch immerhin einen prima Progger!

Scheint so... Auf jeden Fall ist es n prima Progger, wenn s drum geht 
noch weitere Probleme herbeizuführen.

ZITAT von Murphy:
Hinter jedem kleinen Problem steckt ein Grosses, das gerne heraus 
möchte.

Und weiter gehts...
Alle meine ISPs haben immer 10 Pins gehabt ( Kanda- std). Jetz kommt der 
avrispmk2  mit nem 6 poligen Stecker. - Nicht schlimm. Gehäuse öffnen, 
da sind auf der Platine Lötpunkte für den 10-poligen. Laut original 
Schaltplan ( auf der mitgelieferten CD dabei) soll der 10-polige Stecker 
parallel geschalten sein mit m 6 poligen. Also Wannenstecker dran, weil 
man dann aber die smd-led nebendran nicht mehr sieht, steckergehäuse 
amputieren und nur die pins stehen lassen. Tut nicht. Also über den 6 
poligen raus, auf die selbstgebastelte platine ( hier OHNE m8! ) - da 
sind jetz auch n 6pol und n 10pol parallel drauf- und dann weiter zum 
zielsystem. Das tut.

Da schau ich dann n anderes mal was da jetz wieder los ist...

von Giuseppe B. (brungi)


Lesenswert?

### edit ###

oder man macht einfach was hier:

http://www.mikrocontroller.net/articles/AVR_In_System_Programmer#ISP

steht...

Kabel bauen und alles wird gut... :)

von Tanterolf (Gast)


Lesenswert?

Habe auch ein Problem mit den Fuse Bits gehabt und konnte unter Pony 
Prog den ATMega32 nicht mehr ansprechen (unknown device -24) oder so 
ähnlich.
Zur Rettung habe ich auf meinem Pollin Programmer Board einen Keramik 
Resonator mit 4 Mhz an den ATMega angeschlossen und den Mittelabgriff 
mit der Masse des Boards verbunden. Danach war der Chip wieder 
ansprechbar und konnte erfolgreich programmiert werden.
Vielleicht hilfts ja...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Tanterolf schrieb:
> Danach war der Chip wieder
> ansprechbar und konnte erfolgreich programmiert werden.
> Vielleicht hilfts ja...

Nach mehr als 5 Jahren vermutlich nicht mehr - immer aufs Posting 
schauen und auch den roten Spruch über deinem Eingabefeld beachten.
Ausserdem hilft deine Methode nicht, wenn der MC auf 'externen Takt' 
gefused wird und darum gings ja hier. Einen externen Takt kann dein 
Resonator nicht erzeugen.

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.