ATxmega128A4U per PDI programmieren funktioniert nicht.

OP #6529701
Lesenswert?

Hey Zusammen,
Ich bin am Rande der Verzweiflung angekommen...
Ich habe vor einen ATxmega128A4U-AU mit einem Bootloader und einer 
Firmware zu programmieren, aber nichts funktioniert.
Hier im Forum konnte ich leider nichts passendes für mein Problem 
finden, also seid nachsichtig mit mir :)
Ebenso bin ich noch relativ neu in dem Thema, also könnte es auch eine 
sehr simple Lösung geben, die ich schlichtweg übersehe.

Kurz zur Erklärung.
Ich habe eine eigene Platine entworfen und herstellen lassen. Darauf 
sitzt ein ATxmega128A4U-AU als Hauptchip.
Der Chip ist frisch vom Hersteller und daher "leer"...
Nun habe ich mir von Diamex einen AVR Programmer besorgt , der PDI 
unterstützt. 
(https://www.diamex.de/dxshop/Diamex-AVR-Prog-Programmer-fuer-ISP-PDI-TPI)
Der Programmer wird vom Windows PC erkannt und auch von Atmel Studio 7 
als AVRISP mkII...

Als Bild angehängt seht ihr meine Schaltung. Rot eingekreist die Pins, 
die an dem Programmer hängen.
Der PDI_Clock des ATxmega geht (über einen 10KOhm Widerstand der diesen 
auf 3,3V zieht), direkt an den CLK Pin meines Programmers.
Der PDI Pin des ATxmega geht ohne weiteres an den DATA Pin des 
Programmers.
Und GND und 3.3v natürlich auch direkt...

Der Programmer ist auf PDI und 3.3v eingestellt.

Wenn ich jetzt aber versuche über Atmel Studio eine Verbindung zu dem 
Chip herzustellen (z.B. die Device Signature oder Target Voltage 
abzufragen) dann leuchtet die Processing LED auf dem Programmer und 
wenig später gibt Atmel eine Fehlermeldung raus, dass keine Verbindung 
zu dem IC hergestellt werden konnte...

Ich habe schon diverse Sachen versucht, Programme gewechselt etc., aber 
es will nicht.
Langsam glaube ich fast, dass etwas mit meiner Platine nicht stimmt. 
Kann der 10KOhm Widerstand das Problem verursachen?!

Muss vielleicht irgendein Pin auf HIGH um den ATxmega in einen 
programmier Modus zu befördern?

Können andere Bauteile auf der Platine den Programmiervorgang hindern? 
Eigentlich doch nicht wenn ich direkt an die Pins von dem IC gehe...

Ich will doch nur ne verdammte .hex und .eep flashen....

Ich hoffe jemand von euch hat damit Erfahrung und kann mir ein paar 
Tipps geben...

Einen schönen Abend Euch, schonmal Vielen Dank und einen guten Rutsch 
ins neue Jahr,
Leo
#6529772
Lesenswert?

"The RESET pin includes an internal pull-up resistor."

Probiere es mal ohne den 10kOhm Widerstand.
Ich hatte 100kOhm genutzt.

Dass alle Vcc und GND-Pins verbunden sein müssen, das sollte eigentlich 
klar sein, auch wenn damit scheinbar nur der Analogteil versorgt wird.
OP #6529780
Lesenswert?

Ben S. schrieb:
> Leo T. schrieb:
> Aber die haben nun ja gar nichts mit dem Programmieren zu tun!
>
> Du solltest aber alle Versorgungspins des IC mit Spannung versorgen und
> alle GND miteinander verbinden. Pin 8/18/30/38 gehören miteinander
> Verbunden und an alle 9/19/21/39 3.3V!

@bensche123 Du bist mein HELD!!!! Es funktioniert 👍👍👍👍 Ich freue mich 
unglaublich! Manchmal können die Fehler auch simple sein 😅
Atmen Studio spuckt jetzt alles aus 👍👍👍👍
Mal sehen ob das flashen klappt. Einen schönen Abend!
Gast #6529803
Lesenswert?

... und wie üblich halt mal wieder an den Abblock-Kondensatoren
für den ATXMega gespart. Eigentlich sollte den Entwickler dafür
der Blitz treffen ...

Ja, die Devise lautet: sparen, koste es was es wolle.

Denn Abblock-Kondensatoren sind ja reiner Luxus, braucht es
sowieso nicht.
Gast #6529828
Lesenswert?

Mike J. schrieb:
> Bilder aus dem ersten Beitrag

Intelligenterweise ist ein Kondensator zum Prozessor zugeordnet
eingezeichnet, aber die Anschlusse dazu anderen ICs zugeordnet.

Also möglichst kompliziert und irreführend, genau passend fürs
Forum hier, damit noch ein paar Salamischeiben kommen können.
OP #6530241
Lesenswert?

Mike J. schrieb:
> "The RESET pin includes an internal pull-up resistor."
>
> Probiere es mal ohne den 10kOhm Widerstand.
> Ich hatte 100kOhm genutzt.
>
> Dass alle Vcc und GND-Pins verbunden sein müssen, das sollte eigentlich
> klar sein, auch wenn damit scheinbar nur der Analogteil versorgt wird.

Hi Mike, danke auch nochmal für deinen Tipp. Ich habe den 10K mal 
rausgenommen aber keinen Unterschied bemerken können.
Da du dich aber anscheinend mit den ATxmegas auskennst würde ich dir 
gerne noch eine Frage stellen.

Ich habe es jetzt geschafft, meine Firmware .hex auf den ATxmega zu 
flashen. Als ich dann aber versuchte den EEPROM .eep zu flashen hat sich 
mein Programmer aufgehängt und der ATxmega gab keine Rückmeldung mehr...
Das passiert jedes Mal mit dem EEPROM...

Erst wenn ich den ATxmega danach für ein paar Sekunden per USB an meinen 
PC angeschlossen habe, lässt sich der ATxmega wieder per Programmer 
erreichen...
Hast du eine Idee?!

Ich habe für meine Application auch einen separaten Bootloader, den ich 
jetzt zuvor nicht aufgespielt hatte. Kann es damit zusammenhängen?

Wäre das die Flash-Reihenfolge:
Bootloader
.hex
.eep

Entschuldige bitte die vielen Fragen! Es würde mir wirklich viel 
weiterhelfen, wenn du mich dabei unterstützt 🙏

Viele Grüße
#6530499
Lesenswert?

Leo T. schrieb:
> Als ich dann aber versuchte den EEPROM .eep zu flashen hat sich
> mein Programmer aufgehängt und der ATxmega gab keine Rückmeldung mehr...

Als Programmer nutze ich einen USBasp mit PDI.
https://github.com/nieldk/USBASP-PDI

Hab da keine Probleme.

Vielleicht schaust du einfach mal ab wo dein Programmer versucht die 
.hex oder .eep Datei hinschreiben möchte.

Theoretisch solltest du nur den Bootloader flashen müssen und mit dem 
Bootloader kannst du dann hex und eep flashen.

Wenn das nicht funktioniert, dann versucht dein Bootloader die hex/eep 
an eine falsche Adresse zu schreiben.

> Ich habe für meine Application auch einen separaten Bootloader,
> den ich jetzt zuvor nicht aufgespielt hatte. Kann es damit zusammenhängen?

Du nutzt also nicht den Original-Bootloader von Atmel?
Bist du sicher dass dieser richtig funktioniert?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren