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.
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.
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?
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.
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?
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 ...
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).
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 im Beitrag #7547276:
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!
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).