Hallo zusammen,
ich habe eine kleine Platine mit einem ATmega32U4 Controller selbst aufgebaut, und würde diese gerne einen im Microchip Studio entwickelten Code als Hex-File per Flip über die USB Schnittstelle auf das Gerät flashen.
Reicht der Bootloader ab Werk hierzu aus?
Gerne würde ich auch mittels eines Terminal-Programms mit meinem PC in Verbindung treten mit dem Gerät.
Welchen Treiber (per Zadec-Tool?) muss ich hier verwenden, um das zu bewerkstelligen, d.h. dass das Gerät als COM-Port z.Bsp. in Docklight auftaucht?
Ab Werk gibt es meines Wissens nach keinen Booloader beim 32U4.
Ab Werk ist der USB DFU Treiber drauf. Am Controller ist ein 16Mhz Quarz dran, in der Kombination habe ich auch den Controller zumindest schon mal löschen können , ich habe nur mit dem Zadek-Treiber Tool zu viel rumgespielt, und jetzt funktioniert es nicht mehr.
Ooops, stimmt. Bei den U4 ist wirklich ein Bootloader vorinstalliert. Allerdings scheint mir das Konzept nicht sehr gut durchdacht. Das liegt aber sicher daran, dass ich das Datenblatt nicht komplett gelesen habe.
Am Controller ist ein 16Mhz Quarz
dran
Genau das ist, worüber ich gedanklich gestolpert bin. Wenn ein vorinstallierter USB-Bootloader brauchbar sein soll, dann müßte ja auch die Default-Einstellung für die Taktquelle hinreichend für den Betrieb des USB-Interface sein. Der interne RC-Taktgenerator fällt da aus.
Und, bei der Suche nach der Erkenntnis im DB stellt sich raus:
Es gibt zwei Auslieferungsvarianten:
U4 und U4RC.
Letzteres ist nicht in der Lage, den Bootloader (wirklich) zu benutzen, weil es halt den internen RC-Oszillator als Default-Taktquelle benutzt. Der Bootloader ist aber trotzdem installiert und versucht zu tun, was er tun soll. Ziemlicher Schwachsinn...
Die U4 (ohne "RC") hingegen könnten theoretisch wirklich leisten, was dir vorschwebt. Da muss nur der Quarz und seine Bürde-Kapazitäten passen.
Anscheinend habe ich hier die richtige Version, weil es bei mir ja schon mal geklappt hat, das Board mit Flip zu flashen. Aber welchen Treiber muss ich verwenden, um über den USB Port Befehle empfangen und senden zu können von einem Terminalprogramm aus? Dafür müsste das Board ja mit einem COM-Port versehenen sein, oder? Welchen Treiber, den Zadek mir hier zur Auswahl gibt, muss ich hier verwenden? Hat da jemand Erfahrungen?
Der /HWB Pin ist der Reset, den ich per Taster auf low setzen kann?
Das Datenblatt gibt gerne und ausführlich Auskunft!
Es gibt keine Notwendigkeit da zu raten, oder im Nebel zu stochern.
Du musst noch nicht einmal mir glauben.
Der /HWB Pin ist der Reset, den ich per Taster auf low setzen kann?
Das Datenblatt gibt gerne und ausführlich Auskunft!
Es gibt keine Notwendigkeit da zu raten, oder im Nebel zu stochern.
Du musst noch nicht einmal mir glauben.
Ohne den richtigen Treiber kann ich doch mit /HWB auf low mittels Flip nichts flashen auf den Mikrocontroller.
Die PID/VID aus dem Gerätemanager zeigt mir doch nur, welchen Treiber ich installiert habe, deshalb kann ich doch nicht schließen, welcher Treiber eigentlich installiert sein müsste, damit ich per FLIP zum Flashen auf den Chip draufkomme und per Terminalprogramm darauf zugreifen kann, oder habe ich da was falsch verstanden?
Warum nicht?
Ich sagte was nötig ist, aber du bist dagegen...
OK...(vielleicht)
Aber helfen kann ich auf die Art nicht.
Das mit dem Don Quijote und den Windmühlen, das liegt mir nicht so.
Den, welcher bei Flip automatisch mit installiert wird.
Sich im Installationspaket befindet.
Den, welchen du evtl. per Zadig zerstört/wegkonfiguriert hast.
Das weiß ich nicht!
Das ist abhängig von der USB Konfiguratioen deines AVR.
Von der Serial Emulation.
Da ich die nicht sehe.....
Und du sogar unbedingt das PID/VID Pärchen geheim halten musst....
Das ist abhängig von der USB Konfiguratioen deines AVR.
Von der Serial Emulation.
Üblich ist CDC. Neuere Windows-Installationen brauchen dafür keine zusätzlichen Treiber, da sie /endlich/ damit umzugehen wissen. So etwas wie "Zadig" braucht man da einfach nicht mehr.
Und du sogar unbedingt das PID/VID Pärchen geheim halten musst....
Welche PID/VID man in eigener Software verwendet, sagt nichts darüber aus, welcher Treiber schlussendlich zum Einsatz kommt. Anders sieht es nur aus, wenn man z.B. das Protokoll einer bereits existierenden USB-UART-Bridge wie z.B. FT232 nachbilden will, um den FTDI-Treiber nutzen zu können, aber irgendeine Stimme sagt mir, daß das hier GANZ SICHER nicht der Fall ist.
Ein immer hilfreiches Mittel bei USB-Anwendungen unter Windows ist der US Device Tree Viewer von Uwe Sieber:
Welche PID/VID man in eigener Software verwendet, sagt nichts darüber
aus, welcher Treiber schlussendlich zum Einsatz kommt.
Man kann damit aber ermitteln, welcher funktionieren könnte. Diesen dann installieren und schauen, ob der auch geladen wird. Wenn nicht, kann man schauen, was statt dessen geladen wird. Und dies dann gezielt entsorgen.
Also, kurz:
PID/VID einer USB-Hardware zu kennen, kann in vielerlei Hinsicht nützlich sein.
PID/VID zu verheimlichen macht keinen Sinn. Es sei denn, man ist ein Traffic-Troll, dessen Ziel nicht ist, ein Problem zu lösen, sondern eien möglichst langen sinnlosen Thread zu generieren.
Welche PID/VID man in eigener Software verwendet, sagt nichts darüber
aus, welcher Treiber schlussendlich zum Einsatz kommt.
Es ist die einzige/wichtigste Information, die uns der AVR beim Anschluss an den PC liefert. Wenn man diese Information in den Wind schlägt, steht man vollkommen nackt da.
Nachtrag:
Per ISP zum Arduino Leonardo machen.
Dort findet man dann zuverlässige und ausgetretene Pfade vor.
Vielen Dank für eure ausführlichen Antworten. Ich bin leider nicht dazu gekommen, früher zu antworten, entschuldigt bitte.
Der USB tree viewer zeigt als PID/VID folgendes an:
Vendor ID : 0x03EB (Atmel Corporation)
Product ID : 0x2FF4
USB Deivce Tree zeigt mir das Gerät auch als COM8 an, dieser ist auch in einem Terminalprogram auswählbar, allerdings kann ich mich nicht connecten drauf.
Mittels Flip kann ich mich leider auch nicht mit dem Atmega32U4 verbinden, weder im Modus 'kein Reset/HWB', noch im 'nur HWB' noch bei 'Reset+HWB' gedrückt.
Laut Zadek (ich weiß, den hätte ich nie verwenden sollen) ist aktuell der 'USB CDC USB Serial' draufgespielt.
Wie verhält es sich denn allgemein mit den Treibern. Generell muss doch ein Treiber auf dem Host-PC installiert sein und dieser dann vom Device auch geladen werden, d.h. Teile des Treibers werden im Device verarbeitet, oder?
D.h. nur durch eine Änderung des Treibers auf dem Rechner kann ich möglicherweise nicht wieder zum alten Ausgangszustand meines Devices zurückkehren, wenn das Device den neuen Treiber nicht laden kann?
Wie gehe ich denn jetzt am Besten vor, damit ich über Flip und USB wieder flashen kann (einen ISP-Anschluss habe ich bei meinem custom-board leider gar nicht rausgeführt) und mittels eines Terminalprogramms mit dem Gerät in Verbindung treten kann?
Entschuldigt, wahrscheinlich müsste dass aus den verschiedenen Antworten schon klar, sein, ich kapier's trotztdem nicht, was ich jetzt konkret machen muss.
was vollkommen klar ist weil das Device nicht gestartet werden kann (code 10)
Google nach der VID / PID combo sagt dass dies ein Atmel DFU Device ist was wohl auf libusb basiert. Zadig ist ein sehr mächtiges Tool aber halt nicht für Anfänger gemacht. Du kannst mit Zadig jetzt einfach für diese VID /PID den libusbk zuordnen. Da gibts einen Button alle Devices anzeigen dann sollte auch die PID wieder auftauchen.
Alternativ sollte auch folgendes funktionieren:
mit Zadig den CDC Eintrag für diese VID/PID löschen
Flip Software neu installieren die sollte Treiber und infs mitbringen
USB Deivce Tree zeigt mir das Gerät auch als COM8 an,
Da ich keinen Fabrikneuen 32U4 da habe, mit original Bootloader, erfolgen meine Tests mit einem 16U2.
Dort wird kein COM Port vom Bootloader und Treiber eingerichtet.
Der kommt erst wenn die Anwendung startet.
Windows bietet mir die Treiber, welche im Anhang zu sehen sind.
Beide funktionieren mit Flip
Dieser findet sich im Installationspaket.
(einer meiner stammt offensichtlich aus einer alten Flip Version)
Da hilft kein Zadig!
Das geht ganz ohne.
Wenn du dann irgendwann die UART Emulation (CDC?) über USB nutzen möchtest, ist das eine andere Baustelle.
u.A. abhängig von der PID/VID welche die Emulation zum PC sendet.
Das ist nicht die gleiche, wie für Flip, bzw. den Bootloader.