Forum: Mikrocontroller und Digitale Elektronik Arduino Mini lässt sich nicht über ISP programmieren


von Christian U. (christian_u)


Angehängte Dateien:

Lesenswert?

Hallo Forum

Ich arbeite seit gut einem Jahr mit ATmegas, angefangen mit fertigen 
Arduinos. Super für den Einstieg.
Nun hab ich noch einen Arduino Mini ( 
http://arduino.cc/en/Guide/ArduinoMini ) rumliegen und möchte den Zwecks 
optimiertem Code via ISP direkt programmieren.

Zum Test hab ich ein simples Program geschrieben (PB5 wird im Abstand 
von 1s on/off geswitcht) und es auf dem Arduino Duemilanove der auch 
noch so rumlag getestet. Via ISP kein Problem. Auf dem Duemilanove ist 
jetzt also kein ArduinoBootloader mehr drauf sondern nur noch das 
Blinkprogramm.

Nun zum Mini:
Wie im angehängten Bild zu sehen ist, muss man da selber was basteln da 
der Mini keinen ISP Header hat: 
http://www.arduino.cc/en/Hacking/MiniBootloader
Ich hab mich brav daran gehalten und es 1:1 nachgebaut.
Trotzdem kann ich den Mini nicht via ISP programmieren. Lustigerweise 
geht es aber über den USB-Adapter mittels der ArduinoSoftware und dem 
ArduinoBootloader (der befindet sich ja immernoch auf dem uC weil ich 
ihn ja nicht umprogrammieren kann).

Die Verkabelung hab ich nun nach etlichen Stunden zum ~6. Mal überprüft.

Wer hat ne Idee? Danke im vorraus.

Gruss
Chris

PS: Hier noch der Output von avrdude:

> avrdude -cstk500 -pm168 -PCOM8 -Uflash:w:blink.hex

avrdude: Version 5.8cvs, compiled on Jan  8 2010 at 22:30:26
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is 
"C:\avr\20100110\bin\avrdude.conf"

         Using Port                    : COM8
         Using Programmer              : stk500
         AVR Part                      : ATMEGA168
         Chip Erase delay              : 9000 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  Max
W   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ 
----- ---
-- ---------
           eeprom        65     5     4    0 no        512    4      0 
3600  36
00 0xff 0xff
           flash         65     6   128    0 yes     16384  128    128 
4500  45
00 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0 
4500  45
00 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0 
4500  45
00 0x00 0x00
           efuse          0     0     0    0 no          1    0      0 
4500  45
00 0x00 0x00
           lock           0     0     0    0 no          1    0      0 
4500  45
00 0x00 0x00
           calibration    0     0     0    0 no          1    0      0 
0
 0 0x00 0x00
           signature      0     0     0    0 no          3    0      0 
0
 0 0x00 0x00

         Programmer Type : STK500V2
         Description     : Atmel STK500
         Programmer Model: AVRISP
         Hardware Version: 15
         Firmware Version Master : 2.10
         Vtarget         : 0.0 V
         SCK period      : 260.5 us

avrdude: stk500v2_command(): command failed
avrdude: stk500v2_recv(): checksum error
avrdude: stk500v2_program_enable(): bad STK600 connection status: 
Unknown (0x64)

avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude done.  Thank you.

von David .. (david1)


Lesenswert?

Kenn die Adruinos zwar nich, aber zieh einfach mal alles aus das Board 
ausem Steckbrett und Verkabel alles nochmal neu, und check mal ob 
zwischen den Pins an denen SPI is und den Pin Headers noch irgendwelche 
Bauteile oder so dazwischen sind.

Das rausziehen hat bei mir auhscon paarmal geholfen ...

von Christian U. (christian_u)


Lesenswert?

Unglaublich, da mach ich mir mal die Mühe und sammle alle Informationen 
um sie hier niederzuschreiben und kurz nachdem ichs abgeschickt habe 
fällt mir was auf: die LED!
Beim ArduinoMini kann man am PB5 (ArduinoPort 13) eine LED ohne 
Vorwiderstand betreiben (Vorwiderstand bereits auf der Platine). 
Tjaja... Nun, wenn der PB5 aber als SCK vom ISP-Programmer genutzt wird, 
geht der Strom den Weg des geringsten Widerstandes, und das ist nicht 
der PB5 sondern die LED. LED raus und schon legt der avrdude los :)
Das ist mir nicht aufgefallen, denn als ich die LED noch nicht drin 
hatte, hatte ich MISO/MOSI vertauscht...

EoT

PS: Danke David, das war genau der richtige Ansatz!

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.