Forum: Mikrocontroller und Digitale Elektronik UPDI Programmierung mit dem Diamex


von Johannes (joeto)



Lesenswert?

Liebe Community,

ich probiere einen AVR32DD14 mit dem Programmer Diamex EXA-PROG und 
AVRDUDE unter Windows 11 zu programmieren. Der Programmer wird erkannt, 
leider findet AVRDUDE den Mikrocontroller nicht!
Bei meinem Setup erhalte ich die Fehlermeldung aus dem Anhang.

Zur Verkabelung:
+5 Volt vom EXA-PROG -> pin 1
GND vom EXA-PROG -Y pin 14
UPDI Diamex -> pin 3

Zwei Kondensatoren (100n, 1u) zum Puffern der Spannung (zwischen +5V und 
GND).
Versorgungsspannung liegt richtig an, das habe ich nachgemessen.

Die Switches am EXA-PROG sind 1:on,4:on und der Rest aus.

Hat jemand von euch Erfahrung mit dem EXA-PROG und den "neueren" AVR und 
kann mir helfen?


Viele Grüße

Johannes

von Dieter S. (ds1)


Lesenswert?

Laut der Ausgabe wird AVRDUDE wohl mit "-p m8" aufgerufen, das ist ein 
ATmega8. Vielleicht einfach mal AVRDUDE direkt aufrufen und "-p 
avr32dd14" verwenden.

von Johannes (joeto)



Lesenswert?

Klappt leider auch nicht.
Ich hab es mal mit der Version, die der Hersteller "mitliefert" 
(https://www.diamex.de/dxshop/EXA-PROG-AVR-ISP-und-UPDI-STM32-NXP-ESP 
Reiter Downloads) probiert aber da kommt dann überhaupt keine Ausgabe. 
Auch nicht mit dem höchsten verbose level...
Versuche ich diese Version als Executabel in AVRDUDESS anzugeben erhalte 
ich den libusb error im Anhang.
Bin langsam ratlos...

von Johannes (joeto)


Angehängte Dateien:

Lesenswert?

Bin mir recht sicher dass das an den Versionen liegt. Das Erstelldatum 
der avrdude.ex ist 2016. Also schon "etwas" älter. Der AVR32DD14 ist je 
recht "neu". Hab also mal die neuste Version von avrdude runtergeladen 
und die Config um folgenden Eintrag erweitert, welchen ich aus der 
Config des Herstellers kopiert habe:
1
programmer
2
  id    = "jtag2updi";
3
  desc  = "JTAGv2 to UPDI bridge";
4
  type  = "jtagmkii_pdi";
5
  connection_type = serial;
6
  baudrate = 115200;
7
;

Klappen tuts immer noch nicht ://
Bekomme jetzt den Fehler aus dem Anhang...

von Dieter S. (ds1)


Lesenswert?

Mich wundert warum in Deiner Config der "jtag2updi" Eintrag feht, in der 
Version von Github (avrdude-v7.3-windows-x86.zip) von hier

https://github.com/avrdudes/avrdude/releases

steht "jtag2updi" drinnen und zwar so ("prog_modes" und "hvupdi_support" 
fehlt bei Dir):

1
programmer # jtag2updi
2
    id                     = "jtag2updi", "nanoevery";
3
    desc                   = "JTAGv2 to UPDI bridge";
4
    type                   = "jtagmkii_updi";
5
    prog_modes             = PM_UPDI;
6
    connection_type        = serial;
7
    baudrate               = 115200;
8
    hvupdi_support         = 1;
9
;

Nachtrag: Und "tpye" ist "jtagmkii_updi" und nicht "jtagmkii_pdi".

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich befürchte dein Programmer benötigt ein Firmware Update für diese 
Controller Unterstützung. Das muss alles zusammenspielen. Mein Atmel ICE 
benötigte für den AVRxEA auch ein Update, vorher ging da nix los. Falls 
es kein Update geben sollte, kannst du immer noch Python UPDI verwenden.
Stichwort pymcuprog. 'pyupdi' ist veraltet.

> pip install pymcuprog
> pip install pip
> pip install intelhex
> pip install pylint
> pip install pyserial   (Nicht 'serial'!)

Man benötigt nur noch einen Serial-USB Adapter und einen Widerstand oder 
Diode.

Bsp. Syntax "Funktionstest"
> pymcuprog ping -d avr64ea32 -t uart -u com8 --verify

von S. L. (sldt)


Lesenswert?

> Mein Atmel ICE benötigte für den AVRxEA auch ein Update,
> vorher ging da nix los.

Sicher, dass es nicht die AVRmEBn-Reihe war?
  Bei dieser hatte nämlich Microchip in seinem unergründlichen 
Ratschluss die Signatur plötzlich auf 0x1080 gelegt.

PS:
Ich meine, UPDI ist UPDI. Wenn aber die Signatur nicht an der erwarteten 
Stelle gefunden wird ...

Bei Johannes' AVR32DD14 aber steht sie dort, wo sie immer stand (und 
hingehört): auf 0x1100.

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Hallo,

AVRmEBn Reihe? Meinst du die Curiosity Boards mit ihrem Programmerteil 
drauf? Die meine ich nicht. Ich meine ganz konkret meinen Atmel ICE. Das 
x in AVRxEA steht als Platzhalter für die Flashgröße. Bsp. AVR64EA32. 
Ich habe in meinem Bestand nur 'DB' und 'EA' dieser AVR Typen. ;-) 
Abgesehen von neueren ATmega 4809.

avrdude war auf dem neuesten Stand und ich konnte weder direkt mit 
avrdude noch mittels Microchip Studio den EA ansprechen. Erst nach 
Firmware Update. Ich hatte das vorher auch nicht für möglich gehalten, 
aber das ist das was selbst erlebt habe. Jeder 'DB' funktionierte nur 
der neue 'EA' nicht. Mit Python UPDI ging es jedoch. Das veranlasste 
mich ein Firmware Update des Amtel ICE durchzuführen.

Ich hatte die Frage hier gestellt.
Beitrag "Re: [S] Nachfolger für AVR Dragon: UPDI Programmer + Debugger für AVR 8-Bitter in MC Studio v7 gesuc"
Ich hätte auch gedacht Protokoll ist Protokoll und gut ist.

: Bearbeitet durch User
von S. L. (sldt)


Lesenswert?

Okay, ich dachte, es wäre ähnlich wie in
Beitrag "Verkauft microchipdirect unprogrammierbare AVR16EB28?"

Also ich hatte bei meinem Selbstbauprogrammiergerät mit der EA-Reihe 
keinerlei Problem, lief auf Anhieb. Nur für die EBs musste ich die 
zusätzliche Signatur-Abfrage auf 0x1080 einbauen.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

tja irgendwo hakt es, nur wo. Beiden Johannes ist ein AVRxDD Problem 
gemeinsam. Wenn noch mehr solche Threads mit 'DD' auftauchen wird es 
komisch. Bin gespannt ob dieser Johannes hier mit Python UPDI Zugriff 
bekommt.

von Johannes (joeto)


Lesenswert?

Hey, danke erst mal für eure Beiträge und das Interesse an der Thematik.

kleines Update:
Ich habe es auch mit einem Atiny604 probiert.
Auch dieser wurde anfangs nicht erkannt. Gleiches Problem.

Habe mich dann an dem Projekt MegaTinyCore orientiert 
(https://github.com/SpenceKonde/megaTinyCore).
Nach ein wenig Debugging der Arduino IDE habe ich herausgefunden, dass 
hier die avrdude version 6.3-20201216 verwendet wird.
Überraschenderweise klappt die Programmierung mit dieser älteren Version 
damit auf anhieb, für den Atiny604. Benutzt habe ich hierbei die 
ebenfalls mit der Library mitgelieferte Konfiguration 
Arduino15\packages\megaTinyCore\hardware\megaavr\2.6.10\avrdude.conf.

Wie das bei dem AVR32DD14 aussieht probiere ich die Tage mal. Hatte 
irgendwo im weiten Internet auch in nem Forum gelesen, dass das mit den 
COM Ports, über welche auch mein Diamex EXA-PROG kommuniziert, Probleme 
in neueren Versionen von avrdude gibt. Vielleicht ist das auch der 
Grund, weshalb der Hersteller irgendeine modifizierte uralte Version von 
avrdude von 2016 mitliefert... Ich habe diesen auch mal kontaktiert und 
halte euch auf dem Laufenden.


Den Tipp mit pymcuprog werde ich mir auch mal zu Herzen nehmen und das 
die Tage testen! :)

: Bearbeitet durch User
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.