Forum: Mikrocontroller und Digitale Elektronik AVRDUDE Linux ispmk2 programmer


von Heinz B. (heinz1983)


Lesenswert?

Hallo zusammen,

ich versuche jetzt schon einige Zeite meinen avrisp mk2 unter Linux zum 
Laufen zu bekommen.
Das rätselhafte an der ganzen Sache ist, dass das Flashen reibungslos 
funktioniert, wenn der Atmega32 auf 1MHz (Werkseinstellungen) läuft. 
Sobald ich den uC allerdings
auf 16MHz hochtakte (entsprechende Fusebits setzte)  funktioniert das 
Ganze nicht mehr. Ich kann dann nicht mehr mit dem uC kommunizieren

Ich habe noch ein altes Board in dem ich den uC über eine serielle 
Schnittstelle abenfalls über ISP programmieren kann. Dort funktioniert 
alles reibungslos, also sowohl bei 16 Mhz als auch bei 1 Mhz Taktrate.
Ich habe irgendwie den Verdacht, dass das Ganze mit der ISP 
Geschwindigkeit zusammenhängt.
Hat vielleicht jemand eine Idee, an was das liegen könnte ?

avrdude -p m32 -B 9  -c avrispv2 -P usb -v

avrdude: Version 5.10, compiled on Jun 27 2010 at 00:21:42
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

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

         Using Port                    : usb
         Using Programmer              : avrispv2
         Setting bit clk period        : 9.0
avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200009009
         AVR Part                      : ATMEGA32
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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    10    64    0 no       1024    4      0 
9000  9000 0xff 0xff
           flash         33     6    64    0 yes     32768  128    256 
4500  4500 0xff 0xff
           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
           signature      0     0     0    0 no          3    0      0 
0     0 0x00 0x00
           calibration    0     0     0    0 no          4    0      0 
0     0 0x00 0x00

         Programmer Type : STK500V2
         Description     : Atmel AVR ISP V2
         Programmer Model: AVRISP mkII
         Hardware Version: 1
         Firmware Version Master : 1.10
         Vtarget         : 5.0 V
         SCK period      : 10.37 us

avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

von -schumi- (Gast)


Lesenswert?

Wenn es bei 1 Mhz geht sollte es bei 16 kein Problem sein. Bei der 
ISP-Geschwindigkeit gilt einzig die Regel: Die Geschwindigkeit darf 
maximal ein viertel der Taktrate betragen (oder weniger).

Kann es denn sein, dass du im Eifer des Gefechts den 16 Mhz Quarz und 2 
22pF Kondensatoren vergessen hast?

von Heinz B. (heinz1983)


Lesenswert?

hallo schumi,

vielen Dank für die schnelle Antwort.
Der Quarz ist angelötet. Allerdings sind die Kondensatoren nicht genau
22pF sondern größer.
Kann es an den Kondensatoren liegen ?

von Hc Z. (mizch)


Lesenswert?

Heinz Busch schrieb:
> Allerdings sind die Kondensatoren nicht genau
> 22pF sondern größer.

Was ist „etwas größer“?  Geht es auch präziser?

> Kann es an den Kondensatoren liegen ?

Gegenfrage:  Hältst Du die Spezifikation im Datenblatt für reine 
Schikane?

von Heinz B. (heinz1983)


Lesenswert?

Hallo mitch,

nein natürlich nicht. Ich habe die Kondensatoren ausgetauscht.
Leider bringt das keine Abhilfe.
Ich habe auf meinem Board eine LED an einen Pin gelötet und lasse diese 
LED blinken
indem ich eine Schleife verwende. Bei 1 MHz Takt blinkt sie sehr langsam 
und bei 16 MHz entsprechend schneller. Der Quarz scheint zu 
funktionieren.
Der uC lässt sich über die serielle Schnittstelle auch problemlos 
flashen bei 16MHz,
aber leider nicht über den USB Flasher.
Die Fusebits habe ich hier (http://www.engbedded.com/fusecalc) 
ergestellt und
geflasht (-U lfuse:w:0xff:m -U hfuse:w:0x99:m ).
Es sind die Werte 0xff und 0x99 im Moment gesetzt. Habe ich vielleicht 
bei den Fusebit
Einstellungen etwas falsch gemacht ?


Viele Grüße und Besten Dank im Vorraus

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.