Forum: Mikrocontroller und Digitale Elektronik MEGA32u4-AU lässt sich nicht über USB-C programmieren


von Sebastian K. (sebastian_k700)


Angehängte Dateien:

Lesenswert?

Guten Tag, ich möchte gerne meine Platine mit dem MEGA32u4-AU mit einem 
Programm bespielen, welches ich bereits auf einem Arduino Micro 
ausgetestet habe.

Nun habe ich jedoch das Problem, das die Arduino IDE den Controller 
nicht findet. Der Port wird ausgegraut. Meine Platine wird im Windows 
Gerätemanager erkannt als "ATm32U4DFU" bezeichnet. Wenn ich versuche das 
Programm in VS-Code mit Platform IO hochzuladen (dort kann ich den Port 
selbst in eine Konfigurationsdatei schreiben), dann sagt mir mir das 
Programm, dass der Port nicht gefunden werden konnte.

Kann mir jemand sagen wie ich das Problem lösen kann?

Ich weiß durch meine vorgegangene Recherche, dass man auf Arduino gerne 
herabblickt, aber ich würde mich freuen, wenn wir das erstmal ausblenden 
können. Michrochip Studio und AVRdude habe ich mir noch nicht genauer 
angeschaut.

Im Anhang ist mein Stromlaufplan, falls ich dort einen Fehler habe.

von Walter T. (nicolas)


Lesenswert?

Hat Dein MegaA32u4 schon den Arduino-Bootloader erhalten?

von N. M. (mani)


Lesenswert?

Walter T. schrieb:
> Hat Dein MegaA32u4 schon den Arduino-Bootloader erhalten?

Anscheinend nicht. Zumindest meldet sich das Device ja scheinbar als 
ATm32U4DFU.
Das wäre vermutlich das offensichtliche Problem, dass der Arduino 
Bootloader evtl nicht drin ist.

Sebastian K. schrieb:
> Im Anhang ist mein Stromlaufplan

Ist es richtig dass der PE2 (!HWB / Hardware Bootloader activation) 
dauerhaft auf Low ist? Der springt doch dann immer nur in den DFU Mode. 
Man kann das dann zwar scheinbar über ne Fuse deaktivieren, mir scheint 
das aber etwas am Ziel vorbei.
EDIT: Wobei ich gerade sehe dass das beim Micro auch so ist.

Allgemein finde ich ein paar Dinge nicht optimal:
Keine 100nF am uC?
Reset-Schaltung sieht beim Micro anders aus? Kein Kondensator für den 
Impuls beim einschalten?
Sicher dass das so mit der SFH203 Funktioniert? Dunkelstrom?

: Bearbeitet durch User
von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Sebastian K. schrieb:
> Nun habe ich jedoch das Problem, das die Arduino IDE den Controller
> nicht findet.

ISP Adapter dran stecken und Leonardo/Catarina Bootloader brennen.
Dann ist der originale Bootloader gelöscht/ersetzt.

von Wastl (hartundweichware)


Lesenswert?

Sebastian K. schrieb:
> Im Anhang ist mein Stromlaufplan, falls ich dort einen Fehler habe.

Wer Mikrokontroller-Schaltungen ohne Abblock-Kondensatoren aufbaut,
nachmacht oder verfälscht, insbesondere bei existierenden
Schaltungen die Abblock-Kondensatoren weglässt oder falsch
verschaltet oder selbst solche Schaltungen entwirft, in Verkehr
bringt und/oder aufbaut ohne Abblock-Kondensatoren nach Hersteller-
Empfehlungen zu verwenden, wird mit Zugangs-Ausschluss vom
Mikrokontroller-Forum nicht unter zwei Jahren bestraft.

von Sebastian K. (sebastian_k700)


Lesenswert?

Walter T. schrieb:
> Hat Dein MegaA32u4 schon den Arduino-Bootloader erhalten?

Der Chip ist in der -AU Version ausgeliefert und sollte bereits einen 
Bootloader installiert haben. Gibt es einen speziellen Bootloader der 
nur mit der Arduino IDE funktioniert? Kann ich unter Umständen mit einem 
anderen Program den Upload über den eventuell schon installierten 
Bootloader machen?

von Sebastian W. (wangnick)


Lesenswert?

Sebastian K. schrieb:
> Der Chip ist in der -AU Version ausgeliefert

-AU bedeutet nur, dass dein IC Beinchen hat (TQFP) und nicht nur 
Lötflächen an der Unterseite (QFN). Siehe Datenblatt!

Sebastian K. schrieb:
> sollte bereits einen Bootloader installiert haben

Sollte? Welche Version welches Bootloaders denn? Fabrikneu hat der 
Atmega32u4 KEINEN Arduino-Bootloader vorprogrammiert.

Oft werden daher auf solchen Platinen die ISP-Programmierpins auf einen 
2x3-Stecker geführt, an den man einen ISP-Programmer anschließen kann. 
Ein anderer Arduino kann ebenfalls als ISP-Programmer dienen, wie oben 
schon erwähnt wurde. Damit kann man dann z.B. einen Bootloader erstmals 
aufspielen.

LG, Sebastian

: Bearbeitet durch User
von N. M. (mani)


Lesenswert?

Sebastian W. schrieb:
> Sollte? Welche Version welches Bootloaders denn?

Vermutlich meint er den ROM DFU Bootloader. Der scheint sich oben ja 
auch zu melden.

Sebastian W. schrieb:
> Oft werden daher auf solchen Platinen die ISP-Programmierpins auf einen
> 2x3-Stecker geführt, an den man einen ISP-Programmer anschließen kann.
> Ein anderer Arduino kann ebenfalls als ISP-Programmer dienen, wie oben
> schon erwähnt wurde. Damit kann man dann z.B. einen Bootloader erstmals
> aufspielen.

Ohne es selbst gemacht zu haben: er kann ja auch wie oben schon 
angedeutet einfach Mal versuchen einmalig über den DFU Bootloader den 
Arduino Bootloader einzuspielen.
Danach sollte es mit der Arduino IDE funktionieren.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Sebastian K. schrieb:
> Walter T. schrieb:
>> Hat Dein MegaA32u4 schon den Arduino-Bootloader erhalten?
>
> Der Chip ist in der -AU Version ausgeliefert und sollte bereits einen
> Bootloader installiert haben. Gibt es einen speziellen Bootloader der
> nur mit der Arduino IDE funktioniert? Kann ich unter Umständen mit einem
> anderen Program den Upload über den eventuell schon installierten
> Bootloader machen?


Grrr ....


2 Postings drüber habe ich dir gesagt was du zu tun hast um den 
ATMega32U4 Zum Arduino Leonardo kompatibel zu machen.
Und sogar den richtigen Bootloader genannt, obwohl du das nicht wissen 
musst weil die Arduino IDE das sowieso weis und richtig macht.

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Sebastian K. schrieb:
> Walter T. schrieb:
>> Hat Dein MegaA32u4 schon den Arduino-Bootloader erhalten?
>
> Der Chip ist in der -AU Version ausgeliefert und sollte bereits einen
> Bootloader installiert haben. Gibt es einen speziellen Bootloader der
> nur mit der Arduino IDE funktioniert?

Umgekehrt: Das Arduino-System hat einen speziellen Bootloader, den Du 
verwenden musst, wenn Du das Arduino-System verwenden willst. Dieser 
Bootloader muss per Programmer vorher aufgespielt werden. Ohne 
Programmer hast Du ein Problem.

> Kann ich unter Umständen mit einem
> anderen Program den Upload über den eventuell schon installierten
> Bootloader machen?

Dazu müsste sich der Bootloader selber überschreiben, und das kann er 
nicht. Theoretisch möglich, praktisch Unsinn. Hol Dir ein MPLAB SNAP, 
der ist nicht teuer und kann so ziemlich alles Programmieren, was von 
Microchip ist.

fchk

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Frank K. schrieb:
> Ohne Programmer hast Du ein Problem.

Ihm sagte, dass er einen hat.....



Frank K. schrieb:
>> Kann ich unter Umständen mit einem
>> anderen Program den Upload über den eventuell schon installierten
>> Bootloader machen?
>
> Dazu müsste sich der Bootloader selber überschreiben, und das kann er
> nicht. Theoretisch möglich, praktisch Unsinn. Hol Dir ein MPLAB SNAP,
> der ist nicht teuer und kann so ziemlich alles Programmieren, was von
> Microchip ist.

Ihm hat einen Micro, welcher einem Leonardo entspricht, bis auf die 
Bauform.
Den kann man zum ISP Adapter machen und mit der Arduino IDE den 
Bootloader brennen und gleichzeitig damit die Fuses setzen.

Ist also alles da, muss man nur machen.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Arduino F. schrieb:
> Ihm hat einen Micro, welcher einem Leonardo entspricht, bis auf die
> Bauform.

Nö, nicht nur "bis auf die Bauform", sondern vor allem ist der 
Bootloader ein Unterschied. Im "Leonardo" ist eine Arduino-Bootloader 
drin, solange aber in den nackten Chip kein anderer Bootloader als der 
Werks-Bootloader programmiert wird, verhält sich der nackte Chip 
grundlegend anders.


"Ihm hat einen Micro"? Aua.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Harald K. schrieb:
> Arduino F. schrieb:
>> Ihm hat einen Micro, welcher einem Leonardo entspricht, bis auf die
>> Bauform.
>
> Nö, nicht nur "bis auf die Bauform", sondern vor allem ist der
> Bootloader ein Unterschied.

Nein!
Die Bootloader sind gleich.

Vergleiche:
https://github.com/arduino/ArduinoCore-avr/blob/master/boards.txt#L416
https://github.com/arduino/ArduinoCore-avr/blob/master/boards.txt#L519

Beides die gleichen Catarina Bootloader, mit dem einzigen Unterschied, 
andere PID/VID
Was aber hier völlig egal ist, da sein Zielsystem sowieso weder Leonardo 
noch Micro ist.

Harald K. schrieb:
> "Ihm hat einen Micro"? Aua.
Das hat ihm im Eingangsposting gesagt, und bisher nicht zurückgenommen.
Also nehme ich an, dass das der Wahrheit entspricht.

: Bearbeitet durch User
von Sebastian K. (sebastian_k700)


Lesenswert?

Sebastian W. schrieb:


Danke für die Antwort. Ich bin dabei die Platine umzugestalten, da ein 
ISP-Header leider nicht vorgesehen war.

von Sebastian K. (sebastian_k700)


Lesenswert?

N. M. schrieb:

> Allgemein finde ich ein paar Dinge nicht optimal:
> Keine 100nF am uC?
> Reset-Schaltung sieht beim Micro anders aus? Kein Kondensator für den
> Impuls beim einschalten?
> Sicher dass das so mit der SFH203 Funktioniert? Dunkelstrom?

Die Kapazität am uC habe ich nach der Design-Richtlinie im Datenblatt 
gebaut. Die Sache mit dem Reset muss ich mir einmal genauer anschauen, 
da habe ich mir garkeine Gedanken darum gemacht.

Mit der SFH203 dachte ich das würde klappen, wenn der Pin auf PullDown 
gestellt wird. Ich habe deinen Post einmal zum Anlass genommen genauer 
nachzuschauen wie sich das mit den 2-Pin und 3-Pin IR-receivern verhält 
und da denke ich dass ich auf einen 3-Pin umbauen muss damit die 
Signalqualität besser ist.

Vielen Dank für deine wertvollen Hinweise.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Sebastian K. schrieb:
> Ich bin dabei die Platine umzugestalten, da ein
> ISP-Header leider nicht vorgesehen war.

Du könntest auch den originalen (Atmel?) Bootloader beibehalten.
Und den ATMega per Flip beschreiben.
Die von der IDE  erzeugte *.hex Datei, sollte verwendbar sein.

Ob das dann direkt aus der Arduino IDE heraus möglich ist, kann ich dir 
nicht sagen. Nie probiert.
Aber die Boarddefinition  ist anpassbar und AVRdude kann das Flip 
Protokoll.
Also: Vermutlich ist es möglich zu machen.

von Sebastian W. (wangnick)


Angehängte Dateien:

Lesenswert?

Arduino F. schrieb:
> Du könntest auch den originalen (Atmel?) Bootloader beibehalten.
> Und den ATMega per Flip beschreiben.
> Die von der IDE  erzeugte *.hex Datei, sollte verwendbar sein.

Ich würde dem TO auch raten, die jetzige Platine zunächst so wie von dir 
vorgeschlagen in Betrieb zu nehmen. Etwaiige weitere Schwächen in Design 
und Layout können so gefunden und auf einer Folgeversion zusammen mit 
einem ISP-Header verbessert werden.

TO, du könntest aber auch Drähte an die ISP-Pins löten, und darüber den 
Arduino-Bootloader aufprogrammieren. Solche Frickelei ist halt manchmal 
temporär nötig, siehe Bild ...

LG, Sebastian

von Harald K. (kirnbichler)


Lesenswert?

Arduino F. schrieb:
> Nein!
> Die Bootloader sind gleich.

Sind sie eben nicht. Der von Atmel/Microchip verkaufte Baustein enthält 
einen DFU-Bootloader, nicht irgendeinen Arduino-Bootloader.

von Stephan S. (uxdx)


Angehängte Dateien:

Lesenswert?

Sebastian K. schrieb:
> Danke für die Antwort. Ich bin dabei die Platine umzugestalten, da ein
> ISP-Header leider nicht vorgesehen war.

Platz ist in der kleinsten Hütte bzw. auf dem kleinsten Board. Mach ein 
paar Löcher mit Raster 1,27 mm in die Platine und führe die Leiterbahnen 
zum µC, programmiert wird dann mit einer Stiftleiste, die schräg 
festgehalten wird, siehe Phot (hier 5-polig für PICs).

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Harald K. schrieb:
> Sind sie eben nicht.
Vielleicht hast du es zufällig übersehen, aber ich spreche von dem 
Arduino Micro und Arduino Leonardo.
Die haben bis auf VID und PID identische Bootloader.

Dass ein neuer Chip entweder keinen oder den Atmel/Microchip Bootloader 
hat, ist doch schon seit den ersten Postings klar.

Zur Erinnerung:
Harald K. schrieb:
> Arduino F. schrieb:
>> Ihm hat einen Micro, welcher einem Leonardo entspricht, bis auf die
>> Bauform.
>
> Nö, nicht nur "bis auf die Bauform", sondern vor allem ist der
> Bootloader ein Unterschied.
Das "Nö" an der Stelle ist schlicht falsch!

Und nochmal:
Dort gibt es keinen Unterschied, welcher für den TO von Belang wäre!

Harald K. schrieb:
> Sind sie eben nicht.
Sind sie eben doch!
Nur du hast nicht zugehört(oder sagt man zugelesen?)!

Harald K. schrieb:
> Der von Atmel/Microchip verkaufte Baustein enthält
> einen DFU-Bootloader, nicht irgendeinen Arduino-Bootloader.
Da hast du wahr. Hat aber nichts mit dem zu tun, was du an meinem Text 
kritisiert hast.
Falsche Baustelle.

Übrigens, hier sagt ihm, dass er einen Micro besitzt:
Sebastian K. schrieb:
> welches ich bereits auf einem Arduino Micro
> ausgetestet habe.
Und später erwähne ich, dass man den zum "Arduino as ISP" machen kann.
Natürlich hat der Micro NICHT den Atmel Bootloader drauf, sondern 
Catarina

Da kann du so oft "Nö" sagen wie du willst, das wird nicht wahr.

: Bearbeitet durch User
von STANLY L. (stanly_l)


Lesenswert?

Stephan S. schrieb:
> Sebastian K. schrieb:
>> Danke für die Antwort. Ich bin dabei die Platine umzugestalten, da ein
>> ISP-Header leider nicht vorgesehen war.
>
> Platz ist in der kleinsten Hütte bzw. auf dem kleinsten Board. Mach ein
> paar Löcher mit Raster 1,27 mm in die Platine und führe die Leiterbahnen
> zum µC, programmiert wird dann mit einer Stiftleiste, die schräg
> festgehalten wird, siehe Phot (hier 5-polig für PICs).

Super Tipp, danke.

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.