Forum: Mikrocontroller und Digitale Elektronik Diamex All-AVR & Atmega 168 - "Failed to enter programming mode"


von Benedikt W. (tounho)



Lesenswert?

Hallo Leute,

vor einem Tag habe ich mal mit meinem ganz eigenen uC-Projekt 
angefangen, Erfahrung hatte ich schon, hatte bisher nur noch nie etwas 
ganz von Anfang an auf mich allein gestellt gemacht.

Ich benutze einen ATmega 168PA-PU und einen Diamex ALL-AVR, beide neu 
von reichelt.

Jetzt habe ich jedoch irgendein Problem bei der Kommunikation mit dem 
uC. Ich stelle im Atmel Studio 7.0 "Device Programming" Dialog den 
"ATmega168PA" mit dem "AVRISP mkII" ein (als solcher wird der ALL-AVR 
erkannt) und drücke Apply. Ich lasse ihn die Target-Voltage einlesen; 
3.3V. Wenn ich nun auf "Read Device Signature" gehe bekomme ich 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.
Timestamp:  2016-10-09 22:25:02.084
Severity:    ERROR
ComponentId:  20100
StatusCode:  1
ModuleName:  TCF (TCF command: Device:startSession failed.)

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

Das heruntersetzten des ISP Clock Speed hilft nicht.

Versuche ich die Fuses auszulesen bekomme ich die gleiche Fehlermeldung.

Der Programmer kann 3.3V und 5V und als externe Spannungsversorgung 
fungieren. Ich habe beide Spannungen, mit und ohne Versorgung durch den 
Programmer probiert.

Ich habe mit einem Multimeter das Board getestet. Am Chip liegt die 
gewollte Spannung an (auch Aref und AVCC), Reset ist mit 27K mit VCC 
verbunden (habe auch 8K getestet), keiner der ISP Pins schließt mit 
irgendetwas kurz. Ich habe auch die Verbindung von den Pins bis in den 
Programmer gemessen; Keine Probleme.

Ich habe keinen externen Quarz.
Die Pins für IPS sind ausschließlich mit dieser belegt, keine Taster 
oder Sonstiges.
Es ist ein 220nF Kondensator an GND und VCC angeschlossen.

Ich habe auch schon folgende Threds gelesen, hat mir aber nicht weiter 
geholfen:
Beitrag "Erste Schritte mit AVR Studio 6.2 und AVR ISP MK2 - Fehlermeldung: Erasing device failed"
Beitrag "AVR Dragon Unable to enter Program Mode - was kann ich noch tun?"
Beitrag "AVR Atmega328p an Diamex ALL-AVR ISP - Schaltkreis"

Viellecht kann mir einer von euch helfen, habe keine Ahnung was ich noch 
probieren könnte.

LG Benedikt

von Marco G. (grmg2010)


Lesenswert?

Hast du nochmal den Schaltplan geprüft, dass nicht z.B. Miso und Mosi 
vertauscht. Gerne ist es auch die nicht vorhandene Betriebsspannung. Die 
hattest ja bereits gemessen. Hast du mal an reset gemessen wenn du 
versuchst zu programmieren

von Benedikt W. (tounho)


Lesenswert?

Danke für die schnelle Antwort.
Habe nochmal gemessen und wenn 
http://www.diamex.de/dxshop/mediafiles//Sonstiges/All-AVR-Anleitung.pdf 
Seite 3 die Draufsicht auf den Programmer bzw. den Controller zeigt, 
stimmt das so.
Die Spannung an Reset beim Programmieren ist schwer zu messen, sie ist 
kurz von 3.3V auf 2.4V runter gegangen. So schnell ist mein Multimeter 
nicht, aber das sollte so ja stimmen.

PS.: Der Programmer hat eine 10pin und 6pin Buchse, die miteinander 
verbunden sind. Ich konnte daher sogar den Widerstand vom Pin am uC bis 
in die unbelegte Buchse des Programmers messen. So verzweifelt bin ich 
:)

: Bearbeitet durch User
von Marco G. (grmg2010)


Lesenswert?

Ok, zieh mal den Reset manuell(per pulldown)auf GND. Dann hast du genug 
zeit zu messen. Nicht das der Pin nicht ganz auf Masse gezogen wird und 
so nicht in den Programmiermodus übergeht. Nennst du noch mal die 
Belegung, die du verwendest.

Edit: Ich weiß, den Programmer benutz ich auch und bin eig. auch 
zufrieden damit :)

: Bearbeitet durch User
von Benedikt W. (tounho)


Lesenswert?

Habe zwischen dem Reset Pin am uC und GND gemessen, während ich den 
Reset Pin in der 10er Buchse am Programmer direkt mit GND 
kurzgeschlossen habe. Spannung ist sofort von 3.3V auf ein paar 
Millivolt runter gegangen.

Edit: 1 Reset, 19 SCK, 18 MISO und 17 MOSI

: Bearbeitet durch User
von Marco G. (grmg2010)


Lesenswert?

Ok, das ist schonmal gut. Pin7 ->VCC, Pin8 ->GND

: Bearbeitet durch User
von Benedikt W. (tounho)


Lesenswert?

Pin 19 (SCK/PCINT5) geht bei mir an den SCK Pin der 
Programmierer-Buchse. Soll er auch nach Reset gehen?

Edit: Das mit dem bearbeiten ist nicht gut. Alle GNDs und VCCs (Vref, 
AVCC) sind jeweils verbunden. Auch an der ISP Buchse. GND: 8, 22; VCC 7, 
21, 20

: Bearbeitet durch User
von Marco G. (grmg2010)


Lesenswert?

Nein, SCK geht nur an Pin 19. Der Reset ist einzeln. Einen weiteren uC 
zum Testn hast du wahrscheinlich gerade nicht da. Genau wie ein Oszi, um 
mal die Signale anzuschauen.

von Benedikt W. (tounho)


Lesenswert?

Leider nicht.
An dem fehlenden, externen Quarz sollte es ja nicht liegen? Das wäre 
mein nächster Schritt, so einen zu bestellen (und noch einen 2. uC ^^).

von Benedikt W. (tounho)


Lesenswert?

Die Zeichnung in der DIAMEX Anleitung ist so gemeint das man MOSI an 
MOSI und MISO an MSIO verbindet? Nicht über Kreuz?

von Marco G. (grmg2010)


Lesenswert?

Sind alles 1:1 Verbindungen. Wenn du beide gekreuzt hast, kann es nicht 
funktionieren. Der Quarzwäre egal bei einem neuen uC, an dem du keine 
Fuses geändert hast.

von Benedikt W. (tounho)


Lesenswert?

Dann stimmt es so.
Heiß war der uC auch nie, kann mir kaum vorstellen das er schon kaputt 
ist.

von Marco G. (grmg2010)


Lesenswert?

Ein Hardwaredefekt würde ich auch eher ausschließen, zumindest vor dem 
ersten programmieren. Bei der Versorgung durch denprogrammer, hattest du 
nur den uC dran und keine der anderen ICs. Der Programmer kann nur 50mA 
liefern

von Benedikt W. (tounho)


Lesenswert?

Habe es auch ohne die Spannungsversorgung aus dem Programmer probiert. 
3.3V aus einem Netzteil und den extVCC Jumper aus dem Programmer 
gezogen. An anderen ICs habe ich nur noch ein 74hc595 Shift Register. 
Die anderen Verbraucher hängen an PNP-Transistoren.

von Marco G. (grmg2010)


Lesenswert?

Hast du mal auch dem uC geschaut, ob du auch bekommen hast, was du 
besetllt hast? Nicht, dass du einen 1168 mit einer Endung bekommen hast. 
Wäre bei R. nicht das ungewöhnlichste. Hintergrund: Manche der uCs mögen 
nur 5V

von Benedikt W. (tounho)


Lesenswert?

ATMEL 1523
ATMEGA168PA-PU
steht drauf.

Edit: Nochmal mit 5V aus dem Netzteil getesten. 5V Jumper auf dem 
Programmer gesetzt. Gleiche Fehlermeldung.

: Bearbeitet durch User
von Marco G. (grmg2010)


Lesenswert?

Ich weiß, du hast es schon mindestens zweimal überprüft, aber miss 
nochmal alle relevanten Verbindungen nach. Hast du denn die 
oblogatorischen100nf an VCC und AVCC? Den Takt mal auf die wirklich 
niedrigste Frequenz gesetllt. Hast du auf den Pins gemessen?

von Benedikt W. (tounho)


Lesenswert?

Habe alle ISP Leitungen von den uC Pins bis in die 10er Buchse gemessen. 
2,152 kHz klappt auch nicht. Den 100 nF KerKo habe ich allerdngs nicht. 
Dem initialen Post habe ich drei Bilder angehängt. Ich habe nur einen 
220uF ElKo, der relativ nahe an den VCC- und GND Pins liegt. Kann es 
daran liegen?

von Marco G. (grmg2010)


Lesenswert?

Nah ist relativ ;) Aber gut, es wäre schon besser mit dem Kerko, es kann 
aber auch ohne funktionieren. Wenn du aber noch einen Kerko dahaben 
solltest, von 100 bis 1u ist es eig alles i.O., dann setz ihn mal daran.

von Benedikt W. (tounho)


Lesenswert?

Hab bedarfsgerecht eingekauft, daher habe ich keinen mehr :)
Ich glaubhe ich hol mir einen 2. IC oder einen IC-Greiber und ein 
Steckboard zum Fehlersuchen. Im moment kann ich den Fehler ja nicht 
einmal gescheit eingrenzen...

von Marco G. (grmg2010)


Lesenswert?

Klingt nach einen vernünftige Plan, einen 2. uC kann man immer mal 
gebrauchen, ist also keine unnütze Ausgabe. Wenn d sowas öfter mal 
machen willst, hab einfach mal ne Handvoll 100nF Kerkos rumliegen. 
Werden eigentlich bei jeden neuren IC benutz.

von Olaf B. (Firma: OBUP) (obrecht)


Lesenswert?

Hi Benedikt,

wie sind die Einstellungen des Diamex ALL-AVR?

Prüfe bitte Jumper > PDI, ...

mfg

Olaf

P.S.: kann leider erst heute Abend meine Einstellungen JP checken, 
programmiere gerade ATMega328P

: Bearbeitet durch User
von Marco G. (grmg2010)


Lesenswert?

@ Olaf
Wenn die Jumper noch wie im ersten Bild im ersten Post gesteckt sind, 
stimmt die Jumpereinstellung. Der untere rechte ist dabei ja nur 
optional.

von Arduinoquäler (Gast)


Lesenswert?

Benedikt W. schrieb:
> Den 100 nF KerKo habe ich allerdngs nicht.
> Dem initialen Post habe ich drei Bilder angehängt. Ich habe nur einen
> 220uF ElKo, der relativ nahe an den VCC- und GND Pins liegt. Kann es
> daran liegen?

Ein 100nF reicht nicht, es müssen zwei sein. Die Kondensatoren
müssen hin. Vcc und AVcc. Beide Pins sollen kurz miteinander
verbunden sein und die Kondensatoren mit den Massepins des AVR
verbunden. Sowohl die Vcc als auch die GND Pins sollen eine
kurze direkte Verbindung zueinander haben. Ich sehe da (Vermutung)
eine grosse Schleife ... das wäre nicht gut.

.... oder einfach die Layout-Hinweise zu dieser Thematik
von ATMEL lesen ...

von Benedikt W. (tounho)


Lesenswert?

Danke für die Hilfe, das könnte der Grund sein.
Ja, von VCC nach AVCC und GND links nach GND rechts habe ich die langen 
Kabel gelegt. Da komme ich aber nur schlecht drumherum. Da die Pins 
nicht auf einer Ebene sondern über Kreuz sind kann ich sie ja nicht eben 
auf der Unterseite verbinden. Höchstens einen (Am besten VCC > 
AVCC?)Zwei 100nF KerKos, einer rechts und einer links, sollten doch aber 
reichen? Wenn ich den KerKo 3 Löcher weiter setze aber mittels Lötbrücke 
mit den Pins verbinde ist das ja kein Problem? Direkt neben dem Pin habe 
ich schon die Kabel eingelötet.

von Marco G. (grmg2010)


Lesenswert?

Du kannst zumindest zum Testen die Kerkos auch direkt an die Pin7 und 8 
anlöten, also von der Unterseite. Wenn es dann funktioniert, kannst du 
sie immer noch ordentlich verbauen. Für sowas bieten sich auch SMD 
Kerkos ganz gut an, die kannst du dann zwischen die Pins setzen.

von Arduinoquäler (Gast)


Lesenswert?

Benedikt W. schrieb:
> Da die Pins
> nicht auf einer Ebene sondern über Kreuz sind kann ich sie ja nicht eben
> auf der Unterseite verbinden.

Doch kannst du! Brauchst du dafür eine Anleitung?

Gut dass du ein Einsehen hast.

Der Elko gehört an den ISP Stecker wo du deine Spannung bekommst
und keinesfalls irgendwo hin. Wenn du die Versorgung über
Batterie machst dann speise die Batterie dort ein wo dein Elko
am ISP Stecker sitzt, und nicht irgendwo. Auch am ISP Stecker
gehört noch ein Kondensator hin da man nicht weiss wie gut der
Programmer seine Spannung sauber hält. Ich habe den Programmer
selbst und sehe dort keinen einzigen dicken Elko der dabei helfen
würde Spannungen zu glätten, zu puffern.

von Benedikt W. (tounho)



Lesenswert?

Ich habe jetzt ein paar KerKos und mal an einer Steckplatine probiert.
Dabei habe ich folgendes nachgestellt: 
http://rn-wissen.de/wiki/images/f/fc/800px-Avrtutorial_grundschaltung_mitisp.gif
Ich habe auh alle Leitungen doppelt und dreifach geprüft, mit und ohne 
exVcc und mit 3V und 5V. Ich bekomme immernoch den gleichen Fehler.
Ich habe es auch mit 220uF Elko und zusätzlichem 100nF KerKo am AVcc, 
probiert, sowie mit dem verbinden von Aref und AVcc.

von Marco G. (grmg2010)


Lesenswert?

Hast du auch einen zweiten uC getestet oder ist es noch der alte?

von Benedikt W. (tounho)


Lesenswert?

Das ist ein neuer.

von Marco G. (grmg2010)


Lesenswert?

Ok. Das muss noch ein Fehler in der Verkabelung sein. Anders kann ich 
mir das nicht mehr erklären
Mach bitte noch mal ein Foto des Programmierkabels von vorne.
Ausserdem such dir mal die belegung für den 6pol raus.
Schau dir auch mal die zählweise des steckers an, ob du richtig liegst.
An Pin 1 ist ein kleiner Pfeil. Rechts neben P1 ist pin3 wieder einen 
weiter Rechts ist Pin5. So verhält es sich auf der rückseitigen Reihe 
ebenso. ganz liks ist 2 dann 4 und am Schluss 6

: Bearbeitet durch User
von Benedikt W. (tounho)


Angehängte Dateien:

Lesenswert?

Die Belegung die ich benutze ist die auf Seite 3 die Abb. ganz rechts:
http://www.diamex.de/dxshop/mediafiles//Sonstiges/All-AVR-Anleitung.pdf

Ich habe auch schon die Verbindung vom Pin bis in die 10pin Buchse 
gemessen. Alles scheint ok. Ich habe auch vom Atmega GND Pin bis zum 
Gehäuse der USB-Buchse des Programmers gemessen und da habe ich auch 0 
Ohm, sollte also nicht spiegelverkehrt sein.

von Marco G. (grmg2010)


Lesenswert?

Das sieht eigentlich gut aus. Hast du die Möglichkeit die kabel mal 
kürzer zu machen? Unter welchem Betriebssystem läuft das alles? Hast du 
zufällig noch ein VS 2015 installiert?

von Benedikt W. (tounho)


Lesenswert?

Ja, ich könnte das Kabel kürzer machen, aber kann das echt daran liegen? 
Der uC ist neu und die Scahltung ist minimal. Mit VS mainst du Visual 
Studio? Ich habe das 13er oder Atmel Studio 7.0. Alles mit Win7.

von Marco G. (grmg2010)


Lesenswert?

Könnte sein, ist aber recht unwahrscheinlich. Außer einem MM hast du 
keine Messgeräte?

Ok das sollte keine Probleme machen. Mit VS2015 ohne update 3 
funktioniert Atmel Studio 7.0 nicht wirklich. Ich hatte nämlich 
überlegt, ob der Treiber des Programmers vielleicht nicht richtig 
funktioniert. Hattest du ein Firmeware -Update des Programmers gemacht?

von Benedikt W. (tounho)


Lesenswert?

Ich habs mal versucht und es war glabe ich auch erfolgreich. Ich habe 
die 2 Lötstellen neben der Power-Led kurzgeschlossen bis in der 
ErfosIspUp_1.9.0.exe das Lämpchen grün wurde. Dann hab ich das Update 
gestartet und er zeigt mir auch v1.9 an.

von Marco G. (grmg2010)


Lesenswert?

Ok. Es ist wirklich merkwürdig...:(

von Benedikt W. (tounho)


Lesenswert?

Dann bin ich erleichtert (... dass ich nicht nur zu blöd bin; 
frustrierend ist es trotzdem). Werde mir dann mal einem anderen 
Programmer besorgen, ob es daran liegt. Die sind halt schon teuer und 
das dauert wieder eine Woche...

von Marco G. (grmg2010)


Lesenswert?

Der programmer ist eigentlich ok. Bei mir läuft er ohne Probleme. Es 
muss noch irgenwo anders dran liegen. Mal einen anderen USB-Port 
benutzt?

: Bearbeitet durch User
von Benedikt W. (tounho)


Lesenswert?

Hab auch nicht angezweifelt das die All-Avrs gut sind. An irgendwas muss 
es halt liegen und jetzt ist der Programer dran :)

von Draco (Gast)


Lesenswert?

Marco G. schrieb:
> Ok das sollte keine Probleme machen. Mit VS2015 ohne update 3
> funktioniert Atmel Studio 7.0 nicht wirklich

So nen Quark, läuft und lief (auch VS15 <SP3) hier auf ca. 50 Rechnern 
völlig problemfrei. Nur Das Original VS2015 ohne SP hatte Probleme mit 
der Cache / Datei Verteilung. Das wurde aber durch ein  Hotfix behoben, 
kam dann mit SP1 wieder und wurde dort auch durch ein Hotfix behoben.

Programmer oder allgemein das Brennen der AVR durch AS7 war aber zu 
keinem Zeitpunkt betroffen.

von Marco G. (grmg2010)


Lesenswert?

bei mir hatte es auch mit udate 2 noch nicht funktioniert. erst mit dem 
3. Aber stimmt, das brennen direkt war nicht betroffen

von Benedikt W. (tounho)


Angehängte Dateien:

Lesenswert?

Habe mir jetzt den originalen (mit 60€ super teuren...) AVRISP mkII 
geholt und damit hat es funktioniert.
Habe allerdings mehrere Anläufe gebraucht gebraucht. Er ging erst 
nachdem ich nicht mehr die verzinnten Leitungen vom uC direkt in den 
Stecker gesteckt habe. Stadtessen habe ich die Leitungen die vom uC 
kamen an einen Wannenstecker gelötet habe und in diesen den ISP-Stecker 
gesteckt. Irgendwas stimmte also mit der Verbindung nicht obwohl mein 
Multi keine Probleme anzeigte.
Mit dem AllAvr funktioniert immer noch nicht.

Noch ein paar Anmerkungen zu AVcc und den KerKos. Ich habe es getestet 
und es geht auch Problemlos ohne. Aref, AVcc und AGND muss man nicht 
verbinden, wenn man den uC nur programmieren will. Gleiches gilt für die 
Kerkos. Ich habe mal ein Bild von der Schaltung angehängt, die sich so 
programmieren lässt. Ohne Kondensator, allerdings benutze ich ein 
(günstiges) Labornetzteil.
Nochmal danke für eure Hilfe. Das war echt frustrierend, vor allem da 
das mein erstes uC Projekt alleine ist.

von Stefan F. (Gast)


Lesenswert?

Tu Dir selbst einen Gefallen und spendiere IMMER jedem einen Kerko an 
VCC und GND. Denn genau das ist in gefühlt jedem vierten Fall von 
unerwarteten Funktionsfehlern die Ursache.

Ich kaufe die immer in 100er Tüten.

Wenn die ISP Schnittstelle nächstes mal zickt, kann es helfen, ein paar 
LED's mit 1kΩ Vorwiderständen anzuschließen.

von Arduinoquäler (Gast)


Lesenswert?

Benedikt W. schrieb:
> Noch ein paar Anmerkungen zu AVcc und den KerKos. Ich habe es getestet
> und es geht auch Problemlos ohne.

Genau das tut es nicht.

Es geht rein zufällig ohne. Bei dir, in genau deiner Konstellation.
Und vielleicht auch nicht jedes Mal.

Sonst auch mal zufällig nicht, nur weil man 2 Cent für den/die
Kondensator(en) gespart hat.

von Benedikt W. (tounho)


Lesenswert?

Ok, ich glaube das ist falsch rüber gekommen. Ich habe ja auf einer 
Steckplatine die minimalste Schaltung gesteckt und selbst die ging 
nicht. Dort brauchte ich keinen KerKo, nur um zu testen ob sich der uC 
programmieren lässt. Ich wollte nicht sagen das man generell keinen 
braucht. Das mit Aref, AVcc und AGND ist aber nicht nur in meinem Setup 
so. Wenn man nur programmieren will, benötigt man diese Pins nicht.

von Stefan F. (Gast)


Lesenswert?

> Dort brauchte ich keinen KerKo, nur um zu testen ob sich der
> uC programmieren lässt.

Doch brauchst du. Ohne Kerkos kann er sogar insofern kaputt gehen, dass 
die Fuses falsch gesetzt werden und er dann über ISP gar nicht mehr 
ansprechbar ist.

Die Kondensatoren sind IMMER und ÜBERALL notwendig. Akzeptiere das, oder 
suche Dir ein anderes Hobby.

> AVcc und AGND ist aber nicht nur in meinem Setup so.
> Wenn man nur programmieren will, benötigt man diese Pins nicht.

Auch hier solltest du dich ans Datenblatt halten. Da steht drin, dass 
die Pins angeschlossen sein müssen. Da mag heute bei diesem einen Chip 
auch ohne Anschluss funktioniert haben. Aber schon morgen, wenn du 
nochmal so einen Chip kaufst, geht es plötzlich nicht mehr. Und dann 
fragst du uns hier, warum es plötzlich nicht mehr geht, du hättest doch 
alles richtig gemacht.

Ich kann auch ohne Kühlwasser Auto fahren. Nur für mal eben um die Ecke 
ist kein Kühlwasser nötig - verstehst du es jetzt?

von Arduinoquäler (Gast)


Lesenswert?

Benedikt W. schrieb:
> Dort brauchte ich keinen KerKo

Beratungsresistenz ist eine Zier, doch weiter kommt
man ohne ihr.

Warum nur kommt einem dieser Ausdruck in den Sinn
wenn man sich diesen Thread zu Gemüte führt.

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.