Forum: Compiler & IDEs ATMEGA8 mit avrdude flashen macht Probleme


von andi (Gast)


Lesenswert?

Hallo,

habe mir ein neues Board zum Testen mit einem ATmega8 aufgebaut, nur 
leider kann ich die Software nicht auf den mega8 flashen. avrdude kann 
erfolgreich die fuses lesen, also denke ich, die Kommunikation sollte 
funktionieren. Hier der Output (habe schon von int. 1MHz auf 16MHz Quarz 
umgestellt):

<log>
avrdude -p m8 -c pony-stk200 -n -v

avrdude: Version 5.4, compiled on May 21 2007 at 21:35:45
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/anpu/.avrduderc"
         User configuration file does not exist or is not a regular 
file, skipping

         Using Port            : /dev/parport0
         Using Programmer      : pony-stk200
         AVR Part              : ATMEGA8
         Chip Erase delay      : 10000 us
         PAGEL                 : PD7
         BS2                   : PC2
         RESET disposition     : dedicated
         RETRY pulse           : SCK
         serial program mode   : yes
         parallel program mode : yes
         Timeout               : 200
         StabDelay             : 100
         CmdexeDelay           : 25
         SyncLoops             : 32
         ByteDelay             : 0
         PollIndex             : 3
         PollValue             : 0x53
         Memory Detail         :

                                  Block Poll               Page 
Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages 
MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ 
----- ----- ---------
           eeprom         4    20   128    0 no        512    0      0 
9000  9000 0xff 0xff
           flash         33    10    64    0 yes      8192   64    128 
4500  4500 0xff 0x00
           lfuse          0     0     0    0 no          1    0      0 
2000  2000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0 
2000  2000 0x00 0x00
           lock           0     0     0    0 no          1    0      0 
2000  2000 0x00 0x00
           calibration    0     0     0    0 no          4    0      0 
0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0 
0     0 0x00 0x00

         Programmer Type : PPI
         Description     : Pony Prog STK200
           VCC     =  (not used)
           BUFF    = 4,5
           RESET   = 9
           SCK     = 6
           MOSI    = 7
           MISO    = 10
           ERR LED = 0
           RDY LED = 0
           PGM LED = 8
           VFY LED = 0

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.00s

avrdude: Device signature = 0x1e9307
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D9

avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D9
avrdude: safemode: Fuses OK

avrdude done.  Thank you.
</log>




Beim Schreiben der Test-SW kommt aber folgender Fehler, was hat das zu 
bedeuten?
Nachdem Schreiben scheint er nur noch Nullen zu Lesen!





<log>
avrdude -p atmega8 -P /dev/parport0       -c pony-stk200 -E noreset -U 
flash:w:avr_test.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.00s

avrdude: Device signature = 0x1e9307
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be 
performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "avr_test.hex"
avrdude: input file avr_test.hex auto detected as Intel Hex
avrdude: writing flash (174 bytes):

Writing | ################################################## | 100% 
0.13s

avrdude: 174 bytes of flash written
avrdude: verifying flash memory against avr_test.hex:
avrdude: load data flash data from input file avr_test.hex:
avrdude: input file avr_test.hex auto detected as Intel Hex
avrdude: input file avr_test.hex contains 174 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 
0.09s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x12 != 0x00
avrdude: verification error; content mismatch

avrdude: safemode: lfuse changed! Was ff, and is now 0
Would you like this fuse to be changed back? [y/n] y
avrdude: safemode: and is now rescued
avrdude: safemode: hfuse changed! Was d9, and is now 0
Would you like this fuse to be changed back? [y/n] y
avrdude: safemode: and is now rescued
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

make: *** [program] Error 1
</log>


Bin für jeden Hinweis dankbar!

Grüße

Andi

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Probier mal, ein -i5 oder -i10 mit in die Kommandozeile aufzunehmen.

von andi (Gast)


Lesenswert?

Hallo Jörg,

danke für deine Antwort!
Das hatte ich allerdings auch schon probiert, hilft leider nix.
Könnte es denn noch an den Lock-Bits liegen, obwohl ich einen Chip erase 
vorher mache? Der ATmega8 ist brand neu.

Vielen Dank

Andi

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nein, mit Lockbits hat das nichts zu tun.

Wie lang ist denn dein ISP-Kabel so?  Hast du einen Treiber drin, oder
muss das die Parallelschnittstelle selbst treiben?

von andi (Gast)


Lesenswert?

Hallo,

ich verwende diesen ISP hier (http://rumil.de/hardware/avrisp.html) mit 
10poligem Anschluss. ISP hängt am Parrallel-Port mit ca. 1,5m Kabel und 
vom ISP zur Platine sind es ca. 15cm Flachband-Kabel.

Grüße

Andi

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Die 1,5 m finde ich ziemlich viel.

Probier mal, ob weiteres Runtersetzen des ISP-Taktes hilft (-i20 oder
so).

Dein Problem liegt irgendwo in der Hardware, entweder des ISP-Adapters
oder der Zielschaltung.

von andi (Gast)


Lesenswert?

Hallo,

hab jetzt mal versucht die Delays sukzessive zu vergrößern und siehe da: 
bei -i [50..70] läuft die Kiste. Zwar nicht immer, aber spätestens beim 
3ten Anlauf.

Doch Kabel zu lang?
Frag mich nur, warum ich beim mega16 da nie probleme hatte ?!


Grüße

Andi

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Keine Ahnung.  Ich würde dir ja zu einem aktiven Programmer raten, der
selbst einen Controller besitzt.  Irgendwas STK500artiges am Besten
(da gibt's auch massig Clones davon, ich meine damit lediglich das
Kommunikationsprotokoll).

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.