Forum: Mikrocontroller und Digitale Elektronik Arduino nano isp programmierung fail


von Matthias F. (Gast)


Lesenswert?

Guten Tag erstmal,
ich hab mir ein paar Arduino nano´s übers Internet bestellt und wollte 
diese programmieren, doch leider funktioniert das nicht so wie ich das 
haben möchte :D

Erstmal zudem was ich jetzt die letzten Tage schon probiert habe.
1) Den Bootloader via Arduino IDE programmiert/gebrannt
    --> hat auch funktioniert über USB
2) Ein Beispielprogramm "Blink" habe ich auch erfolgreich über USB
   programmieren können

Jetzt möchte ich aber mein Arduino über die ISP Schnittstelle und mit 
AtmelStudio (mein Programm hab ich dort komplett programmiert) 
programmieren doch das klapppt leider nicht und so langsam verzweifel 
ich.

Gaaanz am Anfang hab ich von einem Kollegen einen Arduino nano 168p 
ausgeliehen und den Beispielhaft programmiert und zwar so.

pc --> STK500 --> ISP Kabel auf das Arduino gesteckt

und das hat super funktioniert.

Doch leider ist es jetzt bei meinen neuen Arduinos 328p so nicht 
möglich.

Wenn ich also im AtmelStudio auf "Device Programming" klicke mein 
"Tool", Device und Interface auswähle und auf Apply klicke funktioniert 
noch alles doch sobald ich "Device signature" auslesen möchte kommt 
folgende Fehlermeldung.

"Failed to enter programming mode. ispEnterProgMode: Error status 
received: Got 0xc0, expected 0x00 (Command has failed to execute on the 
tool)

Unable to enter programming mode. Verify device selection, interface 
settings, target power, security bit, and connections to the target 
device."

Woran könnte das liegen ?

Gruß Matthias

von Stefan F. (Gast)


Lesenswert?

1) Kann nicht sein. Die Programmierung über den USB Anschluss nuttzt den 
(normalerweise) vorinstallierten Bootloader. Der Bootloader kann sich 
aber nicht selbst überschreiben. Das geht nur über die ISP 
Schnittstelle.

> Verify device selection, interface
> settings, target power, security bit,
> and connections to the target device.

> Woran könnte das liegen ?

Steht da doch!

Zusätzlich würde ich mal prüfen, ob die ISP Taktfrequenz zur 
Taktfrequenz des AVr passt. Sie muss kleiner als 1/4 des AVR sein.

von Axel S. (a-za-z0-9)


Lesenswert?

Matthias F. schrieb:
> ich hab mir ein paar Arduino nano´s übers Internet bestellt und wollte
> diese programmieren, doch leider funktioniert das nicht so wie ich das
> haben möchte :D
>
> Erstmal zudem was ich jetzt die letzten Tage schon probiert habe.
> 1) Den Bootloader via Arduino IDE programmiert/gebrannt
>     --> hat auch funktioniert über USB

Nein. Das kann so wie du es schreibst nicht funktionieren. Wenn du den 
Arduino mit seinem USB-Anschluß an den PC hängst, dann redet der PC nur 
(und ausschließlich) mit dem Bootloader. Der Bootloader kann sich aber 
nicht selber überschreiben.

> 2) Ein Beispielprogramm "Blink" habe ich auch erfolgreich über USB
>    programmieren können

Dann ist zumindest ein funktionierender Bootloader auf deinem Arduino. 
Das ist schon mal ein Anfang.

> Gaaanz am Anfang hab ich von einem Kollegen einen Arduino nano 168p
> ausgeliehen und den Beispielhaft programmiert und zwar so.
>
> pc --> STK500 --> ISP Kabel auf das Arduino gesteckt
>
> und das hat super funktioniert.
>
> Doch leider ist es jetzt bei meinen neuen Arduinos 328p so nicht
> möglich.

Hast du den neuen Arduino denn auch per ISP-Kabel an ein STK500 (oder 
einen anderen ISP-Adapter) gehängt? Das geht aus deiner Beschreibung 
nicht hervor.

> Wenn ich also im AtmelStudio auf "Device Programming" klicke ...

> "Failed to enter programming mode. ispEnterProgMode: Error status
> received: Got 0xc0, expected 0x00 (Command has failed to execute on the
> tool)

Das Atmel-Studio konnte nicht mit dem ISP-Adapter (vulgo: "Tool") reden. 
Zumindest kam nicht das erwartete zurück. Was mich zu der Vermutung 
führt, daß du den Arduino direkt - also ohne ISP-Adapter - an den PC 
gesteckt hast. So funktioniert das aber nicht.

Einen Arduino kannst du ohne zwischengeschalteten ISP-Adapter nur über 
seinen Bootloader programmieren. Das geht durchaus auch für Programme, 
die im Atmel-Studio erzeugt wurden. Beispielsweise indem man avrdude als 
externes Flash-Programm einbindet und in avrdude den arduino Programmer 
auswählt. Oder man nimmt eine der unzähligen GUIs für avrdude.

von chris (Gast)


Lesenswert?

Ich hatte das gleiche Problem mit den Arduino Nanos in Verbindung mit 
einem AVR ISP MK II.
Grund war die Onboard LED des Nano, die an einem der ISP Pins hängt und 
deren Vorwiderstand war wohl zu niederohmig für den Programmer.
Nach Entfernen der LED funktionierte es bei mir einwandfrei.

von Hubert G. (hubertg)


Lesenswert?

Matthias F. schrieb:
> Jetzt möchte ich aber mein Arduino über die ISP Schnittstelle und mit
> AtmelStudio (mein Programm hab ich dort komplett programmiert)
> programmieren doch das klapppt leider nicht und so langsam verzweifel
> ich.

Warum nicht über den xloader  http://russemotto.com/xloader/  das 
Programm laden. Basiert auf avrdude.

von Matthias F. (Gast)


Lesenswert?

Axel S. schrieb:
> Matthias F. schrieb:
>> ich hab mir ein paar Arduino nano´s übers Internet bestellt und wollte
>> diese programmieren, doch leider funktioniert das nicht so wie ich das
>> haben möchte :D
>>
>> Erstmal zudem was ich jetzt die letzten Tage schon probiert habe.
>> 1) Den Bootloader via Arduino IDE programmiert/gebrannt
>>     --> hat auch funktioniert über USB
>
> Nein. Das kann so wie du es schreibst nicht funktionieren. Wenn du den
> Arduino mit seinem USB-Anschluß an den PC hängst, dann redet der PC nur
> (und ausschließlich) mit dem Bootloader. Der Bootloader kann sich aber
> nicht selber überschreiben.

Ja das stimmt tut mir leid war mit dem Kopf nicht ganz bei Sache. Ich 
meinte es so das ich ein Arduino Uno hatte den ich mit der Software 
"ArduinoISP" bespielt habe (via USB --> Arduino UNO) und von dort aus 
dann den Bootloader via ISP auf den Nano programmiert/gebrannt habe

>
>> 2) Ein Beispielprogramm "Blink" habe ich auch erfolgreich über USB
>>    programmieren können
>
> Dann ist zumindest ein funktionierender Bootloader auf deinem Arduino.
> Das ist schon mal ein Anfang.
>
>> Gaaanz am Anfang hab ich von einem Kollegen einen Arduino nano 168p
>> ausgeliehen und den Beispielhaft programmiert und zwar so.
>>
>> pc --> STK500 --> ISP Kabel auf das Arduino gesteckt
>>
>> und das hat super funktioniert.
>>
>> Doch leider ist es jetzt bei meinen neuen Arduinos 328p so nicht
>> möglich.
>
> Hast du den neuen Arduino denn auch per ISP-Kabel an ein STK500 (oder
> einen anderen ISP-Adapter) gehängt? Das geht aus deiner Beschreibung
> nicht hervor.

ja den neuen Arduino Nano hab ich ebenfalls über das STK500 angesteckt


>Ich hatte das gleiche Problem mit den Arduino Nanos in Verbindung mit
>einem AVR ISP MK II.
>Grund war die Onboard LED des Nano, die an einem der ISP Pins hängt und
>deren Vorwiderstand war wohl zu niederohmig für den Programmer.
>Nach Entfernen der LED funktionierte es bei mir einwandfrei.

Ok werd ich mal rausmessen welche das genau ist und ausprobieren


Danke nochmal für die schnellen Antworten
Wenn alles nichts hilft werd ich mich nochmal melden bzw. wenn ich 
rausgefunden hab woran es gelegen hat ;)

Und wenn jemanden noch was einfällt wäre es nice wenn er es posten würde 
;) doch jetzt mach ich mich erstmal an die Sachen ran ;)

Matthias

von Stefan F. (Gast)


Lesenswert?

> Ich hatte das gleiche Problem mit den Arduino Nanos in Verbindung
> mit einem AVR ISP MK II.

> Grund war die Onboard LED des Nano, die an einem der ISP Pins hängt und
> deren Vorwiderstand war wohl zu niederohmig für den Programmer.

Dann hast du mit Sicherheit einen Fake gekauft. Der originale Programmer 
kann LED's mit 40mA "mit treiben".

von Edmund S. (Gast)


Lesenswert?

Der Arduino "RESET" ist mit einem Widerstand von 1k an VTG ageschlossen. 
Das STK500 zieht bei ISP-Programmierung den Reset auf GND aber nicht 
beim Nano, wegen eben diesem 1k Widerstand. Abhilfe schafft eine 
Transistorschaltung, die in die Resetleitung eingewchleift wird. Also 
Leitung RST unterbrechen, 2 Transistoren opfern, 8,2k aus Richtung 
STK500 an Basis1 anschließen, Kollektor mit 8,2k gegen VTG anschließen, 
Zweite Transistorbasis an Kollektor anschließen, Kollektor 2 an RST vom 
Nano anschließen, beide Emitter an GDN, schon läßt sich der Nano sicher 
über ISP programmieren.

von Stefan F. (Gast)


Lesenswert?

Oder einfach den Reset Knopf drücken und festhalten.

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.