Arduino Nano als ISP Programmer

Hi,

bevor ich jetzt stundenlang weiter nach dem Fehler such, einfach mal die Frage, ob man einen Arduino Nano überhaupt nutzen kann, um einen Bootloader auf einen Chip zu laden.

Ich habe einen Atmega1284p auf einem Breadboard installiert, mit 16MhzCrystal und 2x 22p Kondensatoren. Relativ ähnlich wie hier: http://www.flickr.com/photos/maniacbug/6413368937/ Alle 6 ISP Anschlüsse habe ich mehrfach kontrolliert, die passen. Als Bootloader nutze ich https://github.com/maniacbug/mighty-1284p

Dazu habe ich im ORdner C:\Programme\Arduino\hardware\arduino\avr\ die Datei boards.txt entsprechend angepasst:

mighty_opt.name=Mighty 1284p 16MHz using Optiboot

mighty_opt.upload.protocol=arduino
mighty_opt.upload.maximum_size=130048
mighty_opt.upload.speed=115200

mighty_opt.bootloader.tool=avrdude
mighty_opt.bootloader.low_fuses=0xff
mighty_opt.bootloader.high_fuses=0xde
mighty_opt.bootloader.extended_fuses=0xfd
mighty_opt.bootloader.path=optiboot1284
mighty_opt.bootloader.file=optiboot_atmega1284p.hex
mighty_opt.bootloader.unlock_bits=0x3F
mighty_opt.bootloader.lock_bits=0x0F

mighty_opt.build.mcu=atmega1284p
mighty_opt.build.f_cpu=16000000L
#mighty_opt.build.core=arduino:arduino
mighty_opt.build.core=standard
mighty_opt.build.variant=standard

##############################################################

Im Ordner C:\Programme\Arduino\hardware\arduino\avr\bootloaders liegt der Ordner optiboot1284 mit den Dateien.

Als IDE nutze ich Version 1.5.5 r2

Zunächst hatte ich die Fehlermeldung "not in Sync"....habe dann einen 0.1uF Kondensator zwischen Reset und 5v beim Nano gestckt, siehe: http://www.instructables.com/id/How-to-use-Arduino-Mega-2560-as-Arduino-isp/step2/Time-to-Burn-the-bootloader/

Letzte Fehlermeldung:

avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
processing.app.debug.RunnerException
    at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:309)
    at processing.app.Editor$47.run(Editor.java:2571)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: processing.app.debug.RunnerException: Probleme beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload .
    at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:113)
    at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:302)
    ... 15 more

Wie hoch ist der ISP Clock gesetzt? ISP Clock sollte mindestens kleiner 250kHz sein.

Es gibt gute Gründe, zu einem guten ICSP zu wechseln, der erspart ungemein viel Arbeit und Nerven :wink:

Hast Du am Nano zwischen Reset und Ground einen Kondensator? Hat der guten Kontakt?

Grüße,

Sven

Und ja, ein vernünftiger ISP ist viel Wert! Bereits nach der ersten Fehlersuche mehr wert als sein Kaufpreis ;-)

Hi,
könnt ihr mit einen guten nennen?
ICh habe zwar einen, den bekomme ich aber nicht installiert (Treiber). war ein billiger

Den Kondensator habe ich zwischen Reset und 5v, muss der an GND?

BG

http://www.reichelt.de/AT-AVR-ISP/3/index.html?&ACTION=3&LA=446&ARTICLE=45040&artnr=AT+AVR+ISP&SEARCH=avrisp .

Beim verlinkten Atmel MKII sollte man aber dazusagen, dass dieser keine Versorgungsspannung für den Mikrocontroller bereitstellt, dieser muss daher anderweitig mit 5V (bzw. 3,3V je nach Anwendung) versorgt werden. Hat mich auch mal ein paar Stunden Grübel- und Recherchezeit gekostet, als ich den neu erworben hatte. ;)

Ja, das ist richtig.

Der AVRISP mkII ließt über diesen Pin lediglich die Versorgungsspannung aus. Das ist gerade der Vorteil gegenüber den anderen ISP Programmer (DIAMEX, China ...). Denn bei diesen lassen sich die Pegel meist nur zwischen 3V3 und 5V anpassen. Der Atmel passt die Pegelspannung von 1V8 - 5V5 problemlos an. Im User Guide wird sogar 1V6 geschrieben, das habe ich noch nicht getestet, da die meisten meiner AVRs bei 1V7+ aufhöhren.

Das nervigste an meinen anderen Programmer (zB Diamex) ist, dass sobald ich diesen an einem anderen USB Port anschließe, der COM Port sich ändert. Entweder manuell wieder umstellen oder im Atmel Studio diesen neuanlagen. Beim Atmel wird die Adresse bei behalten. (wird auch nicht als COM-Port aufgeführt).

Desweiteren wird der soweit ich weiß von Arduino direkt out-of-the-box unterstützt. Das ist bei anderen Programmern nicht immer zwingend der Fall.

Man will ja am Arduino der ISP ist den Reset verhindern, also sollte der Kondensator zwischen Reset und Ground, weil so immer ein positives Signal am Reset anliegt. Auf Ground gezogen wird ja der Reset ausgeführt. Wie hast Du es denn verkabelt? Schick mal bitte ienen Link. Ach ja, wenn Du Links in Deinem Post als solche markierst, dann müssen andere nicht immer mit copy paste die herauspfriemeln.

Grüße,

Sven

Hallo, mein AVR ISP mkII ist eingetroffen. Nur mal ne Frage bevor ich loslege: installier ich einfach einen Treiber und mach dann alles über die Arduino Software oder kann/sollte ich das alles direkt mit AVR Studio machen? Ist ja nen riesen Software Paket, habe das schon mal im Vorfeld installiert.

BG Thorsten

Treiber installieren wirst du machen müssen. Danach kannst du den Programmer in der Arduino IDE nutzten. Atmel Studio brauchst du nicht zwingend, auch wenn dass die schönere Umgebung ist für das Programmiern.