Hallo zusammen, ich habe schon unzählige Stunden mit online Recherche verbracht, jedoch keine wirkliche Lösung gefunden. Ich habe auf meinem Macbook Pro M1 eine Windows 11 (ARM64) VM über Parallels installiert. Auf der VM läuft Microchip Studio und das funktioniert auch soweit. Mein Problem besteht darin, dass ich den USBasp (für einen ATmega32) innerhalb der VM nicht nutzen kann. Der USBasp ist physisch an dem Macbook angeschlossen, welches für dessen Nutzung keinen Treiber benötigt, das sieht auf der Windows VM wieder ganz anders aus. Das Gerät wird zwar erkannt, ist jedoch nicht funktionsfähig. Möchte ich also meinen ATmega32 mithilfe von Microchip Studio und dem USBasp flashen, so bekomme ich nur die Fehlermeldung von Avrdude, dass das Gerät nicht gefunden wurde. Mir ist bewusst, dass das auf einen fehlenden Treiber schließen lässt. Ich habe bereits mehrfach versucht den libusb-win32 Treiber mit Zadig zu installieren (Administratorrechte, Erzwingen von Treiber Signaturen ausschalten, Installation über den Geräte Manager) nichts hat funktioniert. Nun also meine Frage: Gibt es eine Möglichkeit den ATmega32 mit einem USBasp und Microchip Studio auf einer Parallels VM zu flashen? Danke im Voraus!
Das Ding stammt wohl aus einem China Shop. Keine Beschriftung, gar nichts. Von MacOS wird das Gerät ja dennoch erkannt.
:
Bearbeitet durch User
Phillip S. schrieb: > Nun also meine Frage: Gibt es eine Möglichkeit den ATmega32 mit einem > USBasp und Microchip Studio auf einer Parallels VM zu flashen? Wenn die VM den passenden Treiber hat, dann ja. Für Windoze ist das der libusb-Treiber. Wenn du den Treiber aus irgendwelchen Gründen nicht installiert kriegst, dann eher nicht. Warum überhaupt das Gehampel mit einer Windoze-VM? Microchip-Studio ist Java, das sollte auch auf MacOS laufen. Und für den USBASP nimmst du AVRDude (oder wird der neuerdings direkt unterstützt?). Oder meinetwegen compiliere auf Windoze, aber mach das Flashen von MacOS aus.
Phillip S. schrieb: > Mir ist bewusst, dass das auf einen fehlenden Treiber schließen lässt. > Ich habe bereits mehrfach versucht den libusb-win32 Treiber mit Zadig zu > installieren (Administratorrechte, Erzwingen von Treiber Signaturen > ausschalten, Installation über den Geräte Manager) nichts hat > funktioniert. Dann lass dir von Zadig halt mal anzeigen welcher Treiber deinem Gerät zugeordnet ist. Du brauchst libusbk. Das libusb paket ist in der VM installiert? Was zeigt den der Gerätemanager an? Siest du mit UsbTreeView dein Device?
:
Bearbeitet durch User
Nochmals: WAS für einer ist es? FOTO machen und hier einstellen. Da gibt es mehrere! So einer z.Bsp.? https://www.ramser-elektro.at/shop/programmer-und-zubehoer/usb-avr-isp-programmer-basierend-auf-usbasp-stick-format/
So einer ist das, wenn auch nicht genau der. https://www.ebay.de/itm/232496093834?chn=ps&norover=1&mkevt=1&mkrid=707-134425-41852-0&mkcid=2&mkscid=101&itemid=232496093834&targetid=1404115578933&device=m&mktype=pla&googleloc=9043899&poi=&campaignid=17935704717&mkgroupid=139162549385&rlsatarget=pla-1404115578933&abcId=9301059&merchantid=138391959&gclid=Cj0KCQiA1NebBhDDARIsAANiDD3RPN31DT1tAKDHGcTfpbN4Unu3P8OXwQEi8jYkht9d6r8_dW5aCIoaAsPwEALw_wcB Ich könnte damit leben, die Programme über Die VM zu schreiben im Terminal von MacOS zu flashen, nur weiß ich nicht, wie das geht.
:
Bearbeitet durch User
vermutlich wird deine Schnittstelle einfach nicht an die VM durchgereicht. Da solltest das als erstes prüfen. Nach meiner Erfahrung ist es der kritische Punkt die USB Schnittstelle in der VM durchzureichen.
Die Schnittstelle ist freigegeben. Der USBasp wird auch im Gerätemanager angezeigt, also erkannt. Nur ist dieser unter der Windows VM nicht funktionsfähig.
ok dann zeig mal was der Gerätemanager so anzeigt... Alternativ: schau mit Zadig ob und wenn Ja welcher Treiber zugeordnet ist. Da muss libusbk zugewiesen sein.
Soweit mir bekannt ist, unterstützt die Software von Atmel/Microchip den USAP nicht. Du musst avrdude benutzen und eventuell eine GUI für avrdude. Es kann dann aber trotzdem noch daran scheitern, dass der USBASP sich nicht ganz an die USB Spezifikation hält. Was da genau der Knackpunkt war, wurde hier mal diskutiert. Ich habe die Details vergessen. > Ich könnte damit leben, die Programme über Die VM zu schreiben im > Terminal von MacOS zu flashen, nur weiß ich nicht, wie das geht. Vermutlich wie in Linux. Erstmal die Kommunikation testen:
1 | avrdude -c usbasp -P usb -B16 -p atmega328 |
Um den Flash zu beschreiben:
1 | avrdude -c usbasp -P usb -B16 -p atmega328 -U flash:w:schwiegermutter.hex:i |
Um die Fuses zu ändern:
1 | avrdude -c usbasp -P usb -B16 -p atmega328 -U lfuse:w:0x62:m |
2 | avrdude -c usbasp -P usb -B16 -p atmega328 -U hfuse:w:0xDF:m |
Siehe Datenblatt oder https://www.engbedded.com/fusecalc/ Eine GUI für avrdude (benötigt Java 8 oder 11): http://stefanfrings.de/avr_tools/AVR8-Burn-O-Mat.zip
Steve van de Grens schrieb: > Es kann dann aber trotzdem noch daran scheitern, dass der USBASP sich > nicht ganz an die USB Spezifikation hält. Was da genau der Knackpunkt > war, wurde hier mal diskutiert. Ich habe die Details vergessen. ja es ist durchaus möglich, dass der Mac Probleme mit dem USBAsp hat. Die USB Kommunikation basiert ja auf avrusb das Usb Protokoll wird komplett in Software abgebildet. Probiere mal einen Hub dazwischen zu schalten. Das hilft manchmal.
Thomas Z. schrieb: > Dann lass dir von Zadig halt mal anzeigen welcher Treiber deinem Gerät > zugeordnet ist. Du brauchst libusbk. Das libusb paket ist in der VM > installiert? Ich habe bereits versucht libusb-win32 über Zadig und entpackt über den Geräte Manager zu installieren. Jeweils im Modus ohne Treibersignaturabfrage. Sowohl Zadig, als auch der Geräte Manager zeigen an, dass für den USBasp gar kein Treiber installiert ist (none). Thomas Z. schrieb: > ja es ist durchaus möglich, dass der Mac Probleme mit dem USBAsp hat. > Die USB Kommunikation basiert ja auf avrusb das Usb Protokoll wird > komplett in Software abgebildet. > Probiere mal einen Hub dazwischen zu schalten. Das hilft manchmal. Scherzkeks, der Mac hat nur USB-C ich MUSS also adaptieren. ;)
Steve van de Grens schrieb: > avrdude -c usbasp -P usb -B16 -p atmega328 avrdude -c usbasp -P usb -B16 -p atmega328 avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp' avrdude: opening programmer "usbasp" on port "usb" failed avrdude done. Thank you.
Phillip S. schrieb: > Ich habe bereits versucht libusb-win32 über Zadig und entpackt über den > Geräte Manager zu installieren. Jeweils im Modus ohne > Treibersignaturabfrage. Sowohl Zadig, als auch der Geräte Manager zeigen > an, dass für den USBasp gar kein Treiber installiert ist (none). Wird da eigentlich der korrekte Treiber (winusb.sys für ARM) installiert, oder ein Treiber für 32/64bit Intel?
Phillip S. schrieb: > Steve van de Grens schrieb: >> avrdude -c usbasp -P usb -B16 -p atmega328 > > avrdude -c usbasp -P usb -B16 -p atmega328 > avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc > vendor='www.fischl.de' product='USBasp' Dann findet ihn der Host also auch nicht. Kann durchaus sein, daß der USBASP eine Macke hat. Hat der irgendwo mal funktioniert?
Axel S. schrieb: > Dann findet ihn der Host also auch nicht. Kann durchaus sein, daß der > USBASP eine Macke hat. Hat der irgendwo mal funktioniert? Ja, an einem nativen Windows Rechner hats geklappt.
Phillip S. schrieb: > Ja, an einem nativen Windows Rechner hats geklappt. Was für eine USB Schnittstelle war das am Win Rechner? dann bleibt wohl nur die USB Schnittstelle übrig. Was hat der Mac? USB3.2? USB C ist ja nur die Buchse. Wenn dem so ist und du da keinen (USB2/3) Hub an den Start bekommst wirds am Mac wohl nicht funktionieren. Beitrag "Re: uC für 0,20€ CH552 / CH554 von WCH Billig Micro mit USB Funktion, Chip vorstellung"
Bevor hier weiter herumgerätselt wird, sollte mit dem Usbtreeviewer nachgesehen werden, was in der VM ankommt. https://www.uwe-sieber.de/usbtreeview.html Der zeigt sehr schön, an welchem USB-Controller und Hub Geräte angeschlossen sind und welche VID/PID sie verwenden.
Herbert schrieb: > Der zeigt sehr schön, an welchem USB-Controller und Hub Geräte > angeschlossen sind und welche VID/PID sie verwenden. hatte ich schon vor 2 Tagen vorgeschlagen. USBTreeView ist das wichtigste Tool wenn man USB Fehler sucht.
Ja klar DriverKeyname: file not found Du hast also keinen Treiber zugeordnet. Das Device selbst würde funktionieren und wird korrekt als LowSpeed Device erkannt. Da kein Driver da ist configuriert Win das Gerät nicht. Das sollte sich mit Zadig installieren lassen.
Thomas Z. schrieb: > Das sollte sich mit Zadig installieren lassen. Genau das ist von Anfang an der Knackpunkt. Es ist mir nicht möglich einen Treiber für den USBasp unter Windows zu installieren. -> Zadig gibt eine Meldung, dass die Treiber Installation fehlgeschlagen ist. -> Windows Gerätemanager gibt bei der manuellen Installation aus, dass der Treiber erfolgreich auf 0 Geräte(n) installiert wurde.
Wie oben geschrieben: Ich kein bei zadig keinen Hinweis finden, ob das auch mit Windows für ARM funktioniert. Windows für ARM emuliert zwar einen Intel-Prozessor, aber nicht für Treiber, die müssen nativ sein soweit ich weiß. In die Richtung sollte die Suche gehen...
such mal mit Everything nach libusbk (.sys) (.dll). Das sollte sich ja irgendwo in deiner VM befinden. Ich gehe momentan nicht davon aus dass der USB Host das Problem ist. Das Device wird ja korrekt an Win durchgereicht und die Enumeration funktioniert. Die USB Kommunikation scheint also zu funktionieren. Welche Zadig Version hast du? V2.7 gibts hier https://zadig.akeo.ie/
:
Bearbeitet durch User
das mit Windows for ARM habe ich komplett ignoriert. :-( Zadig kann das wohl nicht. https://github.com/mcuee/libusbk/issues/40
Wie bereits gesagt, ich wäre auch ok damit, die Programme über die VM zu kompilieren und über MacOS zu flashen. Ich bekomme ja nichtmal über den Terminal von MacOS eine Verbindung mit dem USBasp per avrdude. could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp' avrdude: opening programmer "usbasp" on port "usb" failed avrdude done. Thank you. Wie bekomme ich das denn nun gelöst?
Chris K. schrieb: > Vielleicht hilft dies: > https://www.youtube.com/watch?v=tzekKRCbITQ Wtf?! Spreche ich Chinesisch?
>https://www.fischl.de/usbasp/ >On Linux and MacOS X no kernel driver is needed. Windows requires a driver for USBasp.
Phillip S. schrieb: > Wie bereits gesagt, ich wäre auch ok damit, die Programme über die VM zu > kompilieren und über MacOS zu flashen. > Ich bekomme ja nichtmal über den Terminal von MacOS eine Verbindung mit > dem USBasp per avrdude. > Wie bekomme ich das denn nun gelöst? Zu wenig Informationen. Schick mal die Ausgabe von 'lsusb' (zumindest heißt das bei Linux so, wenn MacOS was anderes hat, dann das [1]). Ein Gedanke: das geht natürlich nur, wenn du USBASP nicht an der VM hängen hast. Ein Gerät geht immer nur entweder am Host oder einer VM. Und: unter MacOS könnten Zugriffsrechte wichtig sein (wie unter Linux). Probiere es auch mal als root. [1] https://stackoverflow.com/questions/17058134/is-there-an-equivalent-of-lsusb-for-os-x
Axel S. schrieb: > > Zu wenig Informationen. Schick mal die Ausgabe von 'lsusb' (zumindest > heißt das bei Linux so, wenn MacOS was anderes hat, dann das [1]). Welche Ausgabe meinst du? Die Ausgabe vom Terminal habe ich doch bereits hier eingestellt. > Ein Gedanke: das geht natürlich nur, wenn du USBASP nicht an der VM > hängen hast. Ein Gerät geht immer nur entweder am Host oder einer VM. Die Parallels VM ist nicht von der physischen Maschine getrennt. Ich habe von beiden Systemen vollen Dateizugriff auf das andere, so auch auf die angeschlossenen Geräte. Ich muss also nicht entscheiden, wo die Geräte angeschlossen werden, sondern gebe nur frei, dass zum Beispiel der USBasp an die VM durchgeschliffen wird. Wenn ich einen normalen USB Stick anschließe, so kann ich von beiden Systemen gleichzeitig darauf zugreifen. Ich kann ja auch Dateien zwischen den Systemen per Drag‘n‘drop bewegen.
Auf Dateien (auch auf Dateien auf einem externen Laufwerk je nach Einstellungen) hast du gleichzeitigen Zugriff, aber nicht auf USB-Geräte. Für das automatische Filesharing sorgen die Parallels-Tools in der VM. USB-Geräte sind aber immer exklusiv mit einer Maschine verbunden - wie sollte das auch anders funktionieren, weder das Gerät noch die Treiber wären auf mehrere Hosts gleichzeitig eingerichtet. Parallels-Menü->Geräte->USB&Bluetooth listet die angeschlossenen Geräte auf, wenn ein Häkchen davor ist, hat die VM Zugriff, wenn nicht, hat der Mac Zugriff.
Phillip S. schrieb: > Axel S. schrieb: >> >> Zu wenig Informationen. Schick mal die Ausgabe von 'lsusb' (zumindest >> heißt das bei Linux so, wenn MacOS was anderes hat, dann das [1]). > > Welche Ausgabe meinst du? > Die Ausgabe vom Terminal habe ich doch bereits hier eingestellt. Ich sehe eine Ausgabe von AVRDude. Aber kein Listing der USB-Geräte, wie sie der Host sieht. ARVDude jedenfalls behauptet, daß es kein USB-Gerät mit passender VID/PID gibt. > Die Parallels VM ist nicht von der physischen Maschine getrennt. Ich > habe von beiden Systemen vollen Dateizugriff auf das andere, so auch auf > die angeschlossenen Geräte. Ich muss also nicht entscheiden, wo die > Geräte angeschlossen werden, sondern gebe nur frei, dass zum Beispiel > der USBasp an die VM durchgeschliffen wird. Wenn du das weißt ... die VM jedenfalls behauptet, es gäbe einen USBASP am USB. Der Host (bzw. das darauf laufende AVRDude) verneint das jedoch. Sieht für mich nicht so aus ...
Phillip S. schrieb: > Nun also meine Frage: Gibt es eine Möglichkeit den ATmega32 mit einem > USBasp und Microchip Studio auf einer Parallels VM zu flashen? Wahrscheinlich nicht. Das Problem ist, dass der USBASP unter Windows einen Treiber braucht. Das muss aber in Deinem Fall zwingend ein ARM64 Binary sein. Die Intel-Emulation geht nur für den Usermode, nicht aber für Kerneltreiber. Du kannst ja nicht einmal 32 Bit x86 Treiber mit einem x64 64 Bit Windows benutzen. Da Du offensichtlich kein ARM64 Windows Treiber-Binary hast, hast Du verloren. Ein HID Device (z.B. ein PICKIT4) könnte funktionieren, da hier keine extra Treiber-Binaries erforderlich sind. MPLABX gibts auf MacOS, wird aber aktuell auf Apple Silicon noch nicht unterstützt, weil die JNI-Teile noch nicht portiert sind, sondern nur als x64 Binaries vorliegen. fchk
Ich gebe zu ich bin kein OSX Profi. lsusb gibts wohl nicht am Mac. Hier hat jemand ein Äquivalent gebaut: https://github.com/jlhonora/lsusb damit läßt sich ganz leicht feststellen ob das OSX das Device sieht
Phillip S. schrieb: > Ich muss also nicht entscheiden, wo die > Geräte angeschlossen werden, sondern gebe nur frei, dass zum Beispiel > der USBasp an die VM durchgeschliffen wird. Wie soll das gehen? Dann hättest du zwei Treiber (vom Host und vom Gast) die gleichzeitig der Meinung sind, das USB Gerät alleine zu kontrollieren. Das wird nicht funktionieren. Ich benutze VirtualBox. Wenn ich ein USB Gerät dem Gast bereitstellen will, muss ich das extra im Menü einstellen. Im selben Moment meldet sich das Gerät vom Host ab. > Wenn ich einen normalen USB Stick anschließe, so kann ich von beiden > Systemen gleichzeitig darauf zugreifen. > Ich kann ja auch Dateien zwischen den Systemen per Drag‘n‘drop bewegen. Das ist ein Sonderfall. Dabei hat nur der Host Zugriff auf den Stick. Er emuliert für den Gast jedoch ein Dateisystem, so dass auch der Gast darauf zugreifen kann. Das Gleiche passiert auch mit der Maus und mit der Tastatur. Auch da sieht der Gast nur eine Emulation. Deine VM wird aber nicht so schlau sein, jedes beliebige USB Gerät emulieren zu können.
Frank K. schrieb: > Phillip S. schrieb: > >> Nun also meine Frage: Gibt es eine Möglichkeit den ATmega32 mit einem >> USBasp und Microchip Studio auf einer Parallels VM zu flashen? > > Wahrscheinlich nicht. > > Das Problem ist, dass der USBASP unter Windows einen Treiber braucht. Ja. Aber ich sehe das Problem nicht. LibUSB ist nun nichts schrecklich komplexes. Erst recht das bißchen, was für USBASP benötigt wird. Warum kann man das nicht für ARM und Windows bauen? Wahrscheinlich weil hier zwei Systeme der Art "es gibt nur mich und sonst niemand!" aufeinandertreffen. Apple mit seiner Fixierung, nur ja keinen x86 Prozessor zu benutzen. Und Windows mit seiner "ich will für alles, was über HID hinausgeht, einen Treiber!" Attitüde.
Axel S. schrieb: >> Wahrscheinlich nicht. >> >> Das Problem ist, dass der USBASP unter Windows einen Treiber braucht. > > Ja. Aber ich sehe das Problem nicht. LibUSB ist nun nichts schrecklich > komplexes. Erst recht das bißchen, was für USBASP benötigt wird. Warum > kann man das nicht für ARM und Windows bauen? Kann man sicher. Muss nur jemand machen. fchk
Frank K. schrieb: > Kann man sicher. Muss nur jemand machen. Dazu gibt es einen bereits geschlossenen Bug Report auf https://github.com/libusb/libusb/issues/921 Er endet mit > vcpkg already supports ARM binary > ./vcpkg install libusb:arm64-windows
Steve van de Grens schrieb: > Frank K. schrieb: > >> Kann man sicher. Muss nur jemand machen. > > Dazu gibt es einen bereits geschlossenen Bug Report auf > https://github.com/libusb/libusb/issues/921 > Er endet mit >> vcpkg already supports ARM binary >> ./vcpkg install libusb:arm64-windows So sollte es funktionieren? Falls ja, verstehe ich nicht ganz, was ich tun muss, um das um zu setzen.
:
Bearbeitet durch User
Ich habe keine Ahnung von Mac und ich weiß nicht was vcpkg ist. Aber vielleicht ist das ein Stichwort, mit dem du weiter kommst. Google doch einfach mal danach. Oder schicke eine persönliche Nachricht an Jörg Wunsch, der könnte es wissen, schließlich hat er das avrdude programmiert.
Das ganze funktioniert mit einem ARM Windows nicht! Lösung= x86 Rechner kaufen ;-) Oder eventuell mit nen Linux in der VM...
Steve van de Grens schrieb: > Wie soll das gehen? > > Dann hättest du zwei Treiber (vom Host und vom Gast) die gleichzeitig > der Meinung sind, das USB Gerät alleine zu kontrollieren. Das wird nicht > funktionieren. > > Ich benutze VirtualBox. Wenn ich ein USB Gerät dem Gast bereitstellen > will, muss ich das extra im Menü einstellen. Im selben Moment meldet > sich das Gerät vom Host ab. Okay, die Geschichte mit dem Flashen über die VM gebe ich auf. Ich muss auch zugeben, ich habe mich geirrt, was die Benutzung des USBasps angeht, solange der an der VM angeschlossen ist, ist dieser vom host tatsächlich nicht erreichbar. Widerrufe ich den Zugriff von der VM, findet der Terminal den USBasp. Nun würde ich also gerne mal versuchen ein über die VM kompimiertes Programm zu flashen, wie gehe ich da am besten vor? Welche Datei gebe ich in dem Terminal zum Flashen ein?
Beitrag "Re: USBasp über Parallels" Habe ich dir bereits geschrieben: Phillip S. schrieb: > Welche Datei gebe ich in dem Terminal zum Flashen ein?
Steve van de Grens schrieb: > Beitrag "Re: USBasp über Parallels" > Habe ich dir bereits geschrieben: > Phillip S. schrieb: > >> Welche Datei gebe ich in dem Terminal zum Flashen ein? Ich verstehe die Eingabe nicht ganz. Gebe ich den gesamten Dateipfad mit ein, oder muss ich den Terminal erst in das jeweilige Verzeichnis navigieren? Und dann Flashe ich die jeweilige Main.c?
Phillip S. schrieb: > Steve van de Grens schrieb: >> Beitrag "Re: USBasp über Parallels" >> Habe ich dir bereits geschrieben: > Ich verstehe die Eingabe nicht ganz. Gebe ich den gesamten Dateipfad mit > ein, oder muss ich den Terminal erst in das jeweilige Verzeichnis > navigieren? Wie du willst. Du kannst entweder erst im Terminal zum Zielpfad navigieren. Dann reicht es, nur den Filenamen des HEX-Files anzugeben. Oder du rufst AVRDude von irgendwo aus auf. Dann mußt du den vollständigen Pfad zum HEX-File angeben. > Und dann Flashe ich die jeweilige Main.c? Du flashst das erzeugte HEX-File (oder auch das ELF-File). Wo das gebaut wird, kannst du an den Ausgaben der IDE sehen. Es kann auch durchaus hilfreich sein, in der IDE ein Dummy Flashtool einzustellen. Oder gleich AVRDude mit dem USBASP. Dann siehst du im Log die Kommandozeile und muß sie nur noch per Copy&Paste ins Terminal tun. Sei mal ein bißchen kreativ! Warum muß man dir alles vorkauen?
:
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.