Forum: Mikrocontroller und Digitale Elektronik AVR128DA per USB flashen?


von Michael (Gast)


Lesenswert?

Hallo zusammen,

wisst ihr, ob man den Microchip AVR128DA o.ä. ohne extra 
Programmiergerät oder Debugger-Baustein per USB flashen kann?
Ist der entsprechende Bootloader hier schon drauf?
Ich finde leider hier erstmal gar nichts dazu im Netz. Evtl. geht es ja 
auch gar nicht.
Vielleicht könnte mir jmd. dbzgl. einen Tip geben.

Danke schon mal,
Michael

von Gerhard O. (gerhard_)


Lesenswert?

Michael schrieb:
> Hallo zusammen,
>
> wisst ihr, ob man den Microchip AVR128DA o.ä. ohne extra
> Programmiergerät oder Debugger-Baustein per USB flashen kann?
> Ist der entsprechende Bootloader hier schon drauf?
> Ich finde leider hier erstmal gar nichts dazu im Netz. Evtl. geht es ja
> auch gar nicht.
> Vielleicht könnte mir jmd. dbzgl. einen Tip geben.
>
> Danke schon mal,
> Michael

Moin,

so viel wie mir bekannt ist, geht das nur mit einem UPDI fähigen 
Programmiergerät, wie z.B. das ATMEL-ICE. Ob es billigere Klonen gibt, 
habe ich nicht untersucht. Ich kaufte mir die ICE Bord von Digikey für 
$70. Bis jetzt habe ich es nur erfolgreich an einem DB64 ausprobiert um 
einen Arduino Bootloader darauf zu installieren. Dies ging einwandfrei. 
Diese Serie von uC unterstützt nicht mehr die alten ISP 
Programmiergeräte.

https://www.digikey.ca/en/products/detail/microchip-technology/ATATMEL-ICE-PCBA/4753383
(Ich sehe der Preis ist rauf gegangen. Ich bezahlte letzte Weihnachten 
$70).

Vielleicht weiß jemand hier mehr.

Gerhard

von Cyblord -. (cyblord)


Lesenswert?

Michael schrieb:
> Vielleicht könnte mir jmd. dbzgl. einen Tip geben.

Klar: Nein

von Sepp H. (Gast)


Lesenswert?

Gerhard O. schrieb:
> so viel wie mir bekannt ist, geht das nur mit einem UPDI fähigen
> Programmiergerät, wie z.B. das ATMEL-ICE. Ob es billigere Klonen gibt,
> habe ich nicht untersucht.

MPLAB Snap ist eine günstigere Alternative, das Ding kann ISP, UPDI, 
4-Draht-JTAG, DebugWire etc.

Lässt sich mit Microchip Studio (dem früheren Atmel Studio) nutzen. Nett 
gegenüber dem Atmel-ICE ist die Tatsache, daß das Ding einen normalen 
Steckverbinder im 0.1"-Raster verwendet, so daß es einfach ist, sich für 
die verschiedenen Anwendungen Adapter zu basteln.

https://www.microchip.com/en-us/development-tool/PG164100

Dazu kann das Ding auch PICs und Atmel-SAM-ARMe programmieren/debuggen.

von Programmierer (Gast)


Lesenswert?

Wenn du einen Controller mit USB-Peripherie verwendest kannst du einen 
Bootloader drauf flashen (wozu einmalig ein Programmiergerät nötig ist) 
sodass du dann per USB direkt flashen kannst. Manche Controller haben 
das direkt ab Werk im ROM eingebaut, wie z.B. einige STM32 oder auch die 
ESP32-S3. Letztere kann man über den USB sogar debuggen.

von Florian S. (Gast)


Lesenswert?

Wenn du einen USB-auf-Seriell-Adapter hast, geht es auch per pymcuprog 
(https://pypi.org/project/pymcuprog/), basierend auf pyupdi. Eine 
Anleitung findet sich auch im GitHub-Repo 
(https://github.com/microchip-pic-avr-tools/pymcuprog). TX und RX werden 
einfach Verbunden an UPDI angeschlossen, es braucht nur einen Widerstand 
(~1k) oder Schottky-Diode (BAT54 o.ä.) am TX-Ausgang. Das Tool selbst 
ist direkt von Microchip.

von Georg M. (g_m)


Lesenswert?


von Cyblord -. (cyblord)


Lesenswert?

Michael schrieb:
> Hallo zusammen,
>
> wisst ihr, ob man den Microchip AVR128DA o.ä. ohne extra
> Programmiergerät oder Debugger-Baustein per USB flashen kann?
> Ist der entsprechende Bootloader hier schon drauf?
> Ich finde leider hier erstmal gar nichts dazu im Netz. Evtl. geht es ja
> auch gar nicht.
> Vielleicht könnte mir jmd. dbzgl. einen Tip geben.
>
> Danke schon mal,
> Michael

Wenn du mit diesen Controllern entwickeln willst, dann leiste dir einen 
Atmel ICE. Damit kannst du auch gleich Debuggen. Das ist Gold wert.
Wenn dir das zu teuer ist, gehe auf STM32. Da bekommst du den ST-Link 
für 20-30 Euro im Original und unter 10 als Clone. Damit kannst du 
natürlich ebenfalls Debuggen.
Ich würde nie und nimmer heute noch anfangen da mit Bastel-Tools 
rumzumachen, die mit Müh und Not nur Flashen können. Nicht mehr 
zeitgemäß. Komfortables Debuggen, Durchsteppen, Breakpoints, Variablen 
anschauen und ändern usw. usw. Wer will heute noch darauf verzichten?

von Peter N. (Gast)


Lesenswert?

Cyblord -. schrieb:
> Wenn du mit diesen Controllern entwickeln willst, dann leiste dir einen
> Atmel ICE.

Wie Sepp schon schrieb, ist der nicht nötig. Der MPLAB Snap kann das 
gleiche, kostet weniger und hat weniger eklige Anschlüsse.

von Michael (Gast)


Lesenswert?

Ist es damit möglich, auch per USB zu flashen, d.h. vorher damit den 
Bootloader draufzuspielen und dann den eigentlichen Code? Mit geht es 
eigentlich gar nicht so um das debuggen, sondern um ohne 
Programmiergerät das Modul flashen zu können, so wie es mit dem ESP32 
möglich ist.

von Michael (Gast)


Lesenswert?

Sorry, ich beziehe mich auf den Beitrag von Florian bzgl. pymcuprog.

von Joachim B. (jar)


Lesenswert?

Michael schrieb:
> wisst ihr, ob man den Microchip AVR128DA o.ä. ohne extra
> Programmiergerät oder Debugger-Baustein per USB flashen kann?

nach Blick ins Datenblatt fehlen dem Chip USB Anschlüsse

von Gerhard O. (gerhard_)


Lesenswert?

Vielleicht könnte man eine Curisosity Bord dafür mitverwenden, weil sich 
das UPDI abtrennen lässt.

von c-hater (Gast)


Lesenswert?

Michael schrieb:

> wisst ihr, ob man den Microchip AVR128DA o.ä. ohne extra
> Programmiergerät oder Debugger-Baustein per USB flashen kann?

Naja, ein "Programmiergerät" braucht's schon. Das kann aber sehr simpel 
sein. Im Prinzip handelt es sich dabei um einen handelsüblichen 
USB-Serial-Adapter, der nur minimal modifiziert werden muss (ein 
zusätzlicher Widerstand).

> Ist der entsprechende Bootloader hier schon drauf?

Das Schicke dabei ist: es wird kein Bootloader benötigt. Dieses 
"Programmiergerät" spricht mit dem Target UPDI. Das kann das von Hause 
aus sehr gut, so dass es keine Hilfe durch einen Bootloader braucht. ;o)

> Ich finde leider hier erstmal gar nichts dazu im Netz.

Dann solltest du dringend einen Grundkurs Webrecherche belegen.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

also egal wie du es drehst und wendest, du benötigst immer noch 
irgendeinen extra Baustein/Minischaltung zum flashen.

Um überhaupt generell erstmal  direkt flashen zu können benötigst du 
mindestens die Python Variante mit dem Widerstand bzw. Diode und einen 
USB-Serial Wandler. Damit kannste direkt flashen oder den Bootloader 
aufspielen.

Wenn du den Bootloader draufhast, benötigst du weiterhin einen 
USB-Serial Wandler. Damit hast du ala Arduino eine einfache 
Programmiermöglichkeit und gleichzeitig eine serielle Verbindung für 
Terminalkommunikation.

Du kannst dir auch einen MPLAB Snap, einen Atmel ICE oder einen 
ATtiny416 Xplained Nano oder ein ATtiny817 Xplained Mini Board kaufen 
und verwendest das zum flashen und auch debuggen.

Du merkst, egal wie du dich entscheidest du benötigst immer zusätzliche 
Hardware.

Wenn du nicht in Hardware debuggen möchtest, dann nimm einen USB-Serial 
Wandler und die Python Variante, bau eine brauchbare Leiterplatte mit 
Stecker/Buchse auf und mach damit erstmal rum. Wenn die Ansprüche 
steigen kannste immer noch einen Programmer oder günstiger die Xplained 
Boards / Snap kaufen. Die werden übrigens auch per USB angeschlossen. 
:-)

Wenn du nichts rumbammeln haben möchtest, dann nimm einen AVR... 
Curiosity Nano, dabei kannste auch gleich zur AVR128DB48 Variante 
greifen wenn es keinen Zwang zur DA Serie gibt.

Jetzt musste dich nur entscheiden. Ist nicht einfach bei der Qual der 
Wahl. Nur wenn was rumbammelt sieht technischer aus.  :-)  :-)  :-)

Insider:
Glücklich ist derjenige der jemanden aus Űbersee kennt der einem ein Eis 
schenkt. Danke im Stillen.

: Bearbeitet durch User
von Lust L. (lust)


Lesenswert?

Cyblord -. schrieb:
> Wenn du mit diesen Controllern entwickeln willst, dann leiste dir einen
> Atmel ICE

Ach was. Viel zu teuer.

Gerhard O. schrieb:
> Vielleicht könnte man eine Curisosity Bord dafür mitverwenden
> weil sich das UPDI abtrennen lässt

Yeah! Ist zwar nicht vorgesehen geht aber.
Also,

Veit D. schrieb:
> nimm einen AVR...
> Curiosity Nano

da kann man den Programmer/Debugger für andere UPDI Controller 
zweckentfremden (auch ohne physische Trennung) und Du kommst mit 20€ 
Investition davon. Im übrigen sind die Curiositys auch so schon eine 
perfekte Grundlage für eigene Projekte. Programmier/Debug Möglichkeit 
via USB inklusive. Ein "ganz offizielles" Microchip-Tool für die 
Zusammenarbeit mit dem 7er Studio.

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

Michael schrieb:
> Ist es damit möglich, auch per USB zu flashen, d.h. vorher damit den
> Bootloader draufzuspielen und dann den eigentlichen Code? Mit geht es
> eigentlich gar nicht so um das debuggen, sondern um ohne
> Programmiergerät das Modul flashen zu können, so wie es mit dem ESP32
> möglich ist.

Jetzt kapiers doch bitte. Direkt über USB geht nicht. Du brauchst 
irgendeine Art von UPDI Programmer, wie auch immer der dann ausgeführt 
ist.

von DerEgon (Gast)


Lesenswert?

Cyblord -. schrieb:
> Direkt über USB geht nicht.

Natürlich geht das. Das geht sogar mit einem AtTiny85 ("Digispark"*). 
Voraussetzung ist hier ein Bootloader, der ein USB-CDC emuliert und 
darüber das Arduino-Bootloader-Protokoll abwickelt.

Nur --und da hast Du recht-- auf einen "nackten" µC bekommt man diesen 
Bootloader nicht ohne Hilfsmittel rauf.


*) http://digistump.com/products/1

von Cyblord -. (cyblord)


Lesenswert?

DerEgon schrieb:
> Nur --und da hast Du recht-- auf einen "nackten" µC bekommt man diesen
> Bootloader nicht ohne Hilfsmittel rauf.

Und nur darum geht es hier. Es ist ja eine Binse, WENN du einen 
Bootloader drauf spielen kannst, dann auch jedes andere Programm. Also 
ist dein Hinweis komplett Unsinnig.

von Programmierer (Gast)


Lesenswert?

Michael schrieb:
> Mit geht es
> eigentlich gar nicht so um das debuggen, sondern um ohne
> Programmiergerät das Modul flashen zu können, so wie es mit dem ESP32
> möglich ist.

Nimm doch den ESP32, der kann eh viel mehr. Wobei die älteren ESP32, 
also nicht ESP32-S2/3, auch keinen USB haben und nur über einen 
USB-Seriell-Adapter (oder JTAG) geflasht werden können, welcher sich 
aber auf den Eval-Boards mit drauf befindet.

von DerEgon (Gast)


Lesenswert?

Programmierer schrieb:
> Nimm doch den ESP32, der kann eh viel mehr.

Und er verbraucht auch viel mehr. Dazu kommt, daß er weniger 
I/O-Leitungen hat; den AVR128DA gibt es im 64-Pin-Package mit 55 
I/O-Pins. Der ESP32 hat nur 34 I/O-Leitungen.

von Michael (Gast)


Lesenswert?

Florian S. schrieb:
> Wenn du einen USB-auf-Seriell-Adapter hast, geht es auch per pymcuprog
> (https://pypi.org/project/pymcuprog/), basierend auf pyupdi. Eine
> Anleitung findet sich auch im GitHub-Repo
> (https://github.com/microchip-pic-avr-tools/pymcuprog). TX und RX werden
> einfach Verbunden an UPDI angeschlossen, es braucht nur einen Widerstand
> (~1k) oder Schottky-Diode (BAT54 o.ä.) am TX-Ausgang. Das Tool selbst
> ist direkt von Microchip.

Ok, ich brauche also ein Programmiergerät und einen USB-Serial-Wandler 
um über den seriellen Port per UPDI den Controller flashen und ggf. auch 
debuggen zu können, so wie es auch hier beschrieben ist, oder?

https://www.electronics-lab.com/usb-updi-programmer-pcb-for-avr-micrcontrollers/

Standard USB to UART Chips, wie der CP2102, FT232 o.ä. müssten doch aber 
genauso verwendbar sein, oder?

von Veit D. (devil-elec)


Lesenswert?


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.