Hallo, ich habe ein (evtl.) großes Problem (zumindestens ist es für mich
groß) und daher hoffe ich hier hilfe zu bekommen.
Ich habe einen Attiny45 und eine Diamex-Prog-S, mit dem ich meinen Code
immer auf den Controller gemacht habe. Das hat auch immer funktioniert.
Allerdings ist dieses immer jetzt vorbei. Seit heute bekomme ich
folgende Fehlermeldungen
avrdude: stk500v2_comman<>: command failed
avrdude: initialization failed, rc=-1
Double check connections and try again or use -F to override
this
check
avrdude done. Thank you.
Diese Fehlermeldung, sowie google sagt mir, dass die verbindung falsch
ist. Diese habe ich aber schon mitlerweile öfters kontrolliert und die
sind korrekt.
woran könnte es noch liegen?
Mark
Ps.: im command window tippe ich ein:
avrdude -c STK500v2 -p t45 -P COM5 -B 9 -U flash:w:test.hex
Das erste, was du klären solltest: reagiert dein Programmer gar nicht mehr, oder klemmt die Verbindung zwischen Programmer und Ziel-AVR? Setze mal -vvvv (viermal -v) zu den Optionen hinzu, dann siehst du die komplette Kommunikation.
Als Antwort bekomme ich sehr viele zeilen, die mir ehrlich nicht viel
sagen
Im unteren bereich kommt auch zwei mal
avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
allerdings sehe ich auch
avrdude: stk500v2_getsync(): found STK500 programmer
Also eigentlich müsste der noch funktionstüchtin? sein?
Wenn ich es aber richtig verstanden habe, dass die Zeile
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
das ist, was zum Programmer gesendet wird und die anschließenden Zeilen
avrdude: Recv: . [1b]
usw
das ist, was er empfängt, ist das ja nicht gleich. Hier wäre es z.B. in
der 4.Zeile
avrdude: Recv: . [0b]
und nicht
avrdude: Recv: . [01]
Aber da weiss ich auch nicht, was das bedeutet
avrdude: Version 5.11, compiled on Aug 30 2011 at 10:24:06
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "C:\WinAVR\bin\avrdude.conf"
Using Port : COM5
Using Programmer : STK500v2
Setting bit clk period : 9.0
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv: . [1b]
avrdude: Recv: . [01]
avrdude: Recv: . [00]
avrdude: Recv: . [0b]
avrdude: Recv: . [0e]
avrdude: Recv: . [01]
avrdude: Recv: . [00]
avrdude: Recv: . [08]
avrdude: Recv: S [53]
avrdude: Recv: T [54]
avrdude: Recv: K [4b]
avrdude: Recv: 5 [35]
avrdude: Recv: 0 [30]
avrdude: Recv: 0 [30]
avrdude: Recv: _ [5f]
avrdude: Recv: 2 [32]
avrdude: Recv: . [02]
avrdude: stk500v2_getsync(): found STK500 programmer
avrdude: Send: . [1b] . [02] . [00] . [02] . [0e] . [03] . [98] . [8e]
avrdude: Recv: . [1b]
avrdude: Recv: . [02]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [08]
avrdude: Recv: . [1f]
avrdude: Skipping paramter write; parameter value already set.
AVR Part : ATtiny45
Chip Erase delay : 4500 us
PAGEL : P00
BS2 : P00
RESET disposition : possible i/o
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 Max
W ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------
----- ---
-- ---------
eeprom 65 6 4 0 no 256 4 0
4000 45
00 0xff 0xff
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages
MinW Max
W ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------
----- ---
-- ---------
flash 65 6 32 0 yes 4096 64 64
4500 45
00 0xff 0xff
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages
MinW Max
W ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------
----- ---
-- ---------
signature 0 0 0 0 no 3 0 0
0
0 0x00 0x00
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages
MinW Max
W ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------
----- ---
-- ---------
lock 0 0 0 0 no 1 0 0
9000 90
00 0x00 0x00
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages
MinW Max
W ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------
----- ---
-- ---------
lfuse 0 0 0 0 no 1 0 0
9000 90
00 0x00 0x00
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages
MinW Max
W ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------
----- ---
-- ---------
hfuse 0 0 0 0 no 1 0 0
9000 90
00 0x00 0x00
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages
MinW Max
W ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------
----- ---
-- ---------
efuse 0 0 0 0 no 1 0 0
9000 90
00 0x00 0x00
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages
MinW Max
W ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------
----- ---
-- ---------
calibration 0 0 0 0 no 2 0 0
0
0 0x00 0x00
Programmer Type : STK500V2
Description : Atmel STK500 Version 2.x firmware
Programmer Model: STK500
avrdude: Send: . [1b] . [03] . [00] . [02] . [0e] . [03] . [90] . [87]
avrdude: Recv: . [1b]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [0a]
avrdude: Recv: . [1c]
avrdude: Send: . [1b] . [04] . [00] . [02] . [0e] . [03] . [91] . [81]
avrdude: Recv: . [1b]
avrdude: Recv: . [04]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [02]
avrdude: Recv: . [13]
avrdude: Send: . [1b] . [05] . [00] . [02] . [0e] . [03] . [92] . [83]
avrdude: Recv: . [1b]
avrdude: Recv: . [05]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [0a]
avrdude: Recv: . [1a]
Hardware Version: 10
Firmware Version Master : 2.10
avrdude: Send: . [1b] . [06] . [00] . [02] . [0e] . [03] . [9a] . [88]
avrdude: Recv: . [1b]
avrdude: Recv: . [06]
avrdude: Recv: . [00]
avrdude: Recv: . [02]
avrdude: Recv: . [0e]
avrdude: Recv: . [03]
avrdude: Recv: . [c0]
avrdude: Recv: . [d2]
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_getparm(): failed to get parameter 0x9a
Topcard : Unknown
avrdude: Send: . [1b] . [07] . [00] . [02] . [0e] . [03] . [94] . [87]
avrdude: Recv: . [1b]
avrdude: Recv: . [07]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: 2 [32]
avrdude: Recv: [20]
Vtarget : 5.0 V
avrdude: Send: . [1b] . [08] . [00] . [02] . [0e] . [03] . [98] . [84]
avrdude: Recv: . [1b]
avrdude: Recv: . [08]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [08]
avrdude: Recv: . [15]
avrdude: Send: . [1b] . [09] . [00] . [02] . [0e] . [03] . [95] . [88]
avrdude: Recv: . [1b]
avrdude: Recv: . [09]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: 2 [32]
avrdude: Recv: . [2e]
avrdude: Send: . [1b] . [0a] . [00] . [02] . [0e] . [03] . [96] . [88]
avrdude: Recv: . [1b]
avrdude: Recv: . [0a]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [1f]
avrdude: Send: . [1b] . [0b] . [00] . [02] . [0e] . [03] . [97] . [88]
avrdude: Recv: . [1b]
avrdude: Recv: . [0b]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [1e]
SCK period : 8.7 us
Varef : 5.0 V
Oscillator : Off
avrdude: Send: . [1b] . [0c] . [00] . [03] . [0e] . [02] . [9e] . [01] .
[87]
avrdude: Recv: . [1b]
avrdude: Recv: . [0c]
avrdude: Recv: . [00]
avrdude: Recv: . [02]
avrdude: Recv: . [0e]
avrdude: Recv: . [02]
avrdude: Recv: . [00]
avrdude: Recv: . [19]
avrdude: Send: . [1b] . [0d] . [00] . [0c] . [0e] . [10] . [c8] d [64] .
[19]
[20] . [00] S [53] . [03] . [ac] S [53] . [00] . [00] > [3e]
avrdude: Recv: . [1b]
avrdude: Recv: . [0d]
avrdude: Recv: . [00]
avrdude: Recv: . [02]
avrdude: Recv: . [0e]
avrdude: Recv: . [10]
avrdude: Recv: . [c0]
avrdude: Recv: . [ca]
avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: Send: . [1b] . [0e] . [00] . [03] . [0e] . [11] . [01] . [01] .
[09]
avrdude: Recv: . [1b]
avrdude: Recv: . [0e]
avrdude: Recv: . [00]
avrdude: Recv: . [02]
avrdude: Recv: . [0e]
avrdude: Recv: . [11]
avrdude: Recv: . [00]
avrdude: Recv: . [08]
avrdude done. Thank you.
Dein Programmer redet mit dir, aber dein AVR redet nicht (mehr) mit deinem Programmer. Du kannst mal probieren, ihn mit -B20 oder so aufzurufen, um die ISP-Kommunikation langsamer zu machen. Wenn das auch nichts hilft, dann kontrollier nochmal die Verkabelung, nicht dass sich das was gelöst hat. Wenn all das nicht geht, ist natürlich immer noch eine Chance, dass du den AVR in einen Zustand gedreht hast, in dem er entweder keinen CPU-Takt mehr hat oder aber der /RESET-Pin abgeklemmt ist. Da müsstest du aber mal in dich gehen und nachdenken, was deine letzten Aktionen mit dem Controller waren, bevor er dann nicht mehr reagiert hat.
Faszinierend, jetzt macht er es wieder, allerdings macht der den code nicht mehr richtig
1 | #define F_CPU 1000000UL
|
2 | #include <avr/interrupt.h> |
3 | #include <util/delay.
|
4 | |
5 | int main(void) { |
6 | DDRB |= (1<<PB0); |
7 | PORTB &= ~(1<<PB0); |
8 | |
9 | while(1){ |
10 | PORTB |= (1<<PB0); |
11 | _delay_ms(100); |
12 | PORTB &= ~(1<<PB0); |
13 | _delay_ms(100); |
14 | }
|
15 | }
|
vorher hatte ich stehen
1 | #define F_CPU 8000000UL
|
2 | _delay_ms(1000); |
jetzt musste ich es umändern in
1 | #define F_CPU 1000000UL
|
2 | _delay_ms(100); |
und es ist ein bisschen schneller als eine Sekunde. Aber ersteinmal bin ich froh und dankbar für deine Antwort. Mark
Mark schrieb: > und es ist ein bisschen schneller als eine Sekunde. Überprüfe doch mal die Fuses für deine Takterzeugung (low fuse). Ich hoffe mal, dass das nur Test- und Experimentiercode ist und du nicht derartig lange Delays in Produktivcode benutzen willst. ;-)
lfuse: 0b11000100 -> Divide clock by 8 das heisst, dass mein Controller mit 1MHz läuft? Nein, delay war ein kurzes Programm nur zum testen. das werde ich später mit einem timer austauschen.
Mark schrieb: > das heisst, dass mein Controller mit 1MHz läuft? Nee, CKDIV8 hast du ja nicht aktiviert (Bit 7 ist '1'), aber du hast den 128-kHz-Watchdog-Oszillator ausgewählt =:-) (Bit 3…0 = '0100'). Dann ist es natürlich kein Wunder, dass du im ISP-Takt weit runtergehen musst …
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.