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.