Problem beim Erstellen der Arduino Uno-Firmware

Ich versuche, die Arduino-Firmware auf Win7 mit WinAVR und FLIP zu erstellen. Ich habe die Firmware erfolgreich erstellt und habe eine „arduino-usbserial.hex“-Datei zum Hochladen, aber wenn ich das Uno flashe und es wieder an meinen Computer anschließe, erkennt Windows das Gerät nicht mehr und verwendet die Arduino-Treiber nicht dafür . Wenn ich auf die Datei "arduino-usbserial-uno.hex" reflashe, die sich im Ordner befindet, funktioniert alles einwandfrei. Verpasse ich einen Teil des Build-Prozesses? Meine Schritte sind

  • Arduino in den DFU-Modus versetzen (Jumper verbinden und loslassen)
  • sauber machen
  • mache alles
  • manueller Download mit Flip über USB (ausführen, Anwendung starten, dann ausstecken und einstecken)

Das Makefile hat den ARDUINO_MODEL_PIDSatz auf 0x0001 undMCU = atmega8u2

Danke!

Nichts mit elektronischem Design zu tun. Die Frage sollte geschlossen werden.
@LeonHeller - Die Frage betrifft das Kompilieren von Firmware für eine eingebettete Plattform. Sie haben recht, unsere Seite ist nicht für alles Programmieren, aber Programmieren ist ein wichtiger Teil des Elektronikdesigns. Das ist, IMO, on-topic. Fühlen Sie sich frei, auf Meta zu fragen, wenn Sie verwirrt sind.
@LeonHeller Das ist schon einmal aufgetaucht. Wir haben viele Fragen in die gleiche Richtung wie diese, die nicht abgeschlossen sind. electronic.stackexchange.com/questions/9444/… und electronic.stackexchange.com/questions/4050/… und electronic.stackexchange.com/questions/8746/… und electronic.stackexchange.com/questions/10708/…

Antworten (1)

Okay, Problem gefunden. Die Hersteller-ID und die Produkt-ID der Firmware wurden in nachfolgenden nicht werkseitigen Firmware-Versionen geändert, was die Arduino-Treiber daran hinderte, sie zu erkennen. Die Lösung besteht darin, entweder die Treiber in den LUFA-Projektordnern zu verwenden oder diese Zeilen zu ändernDescriptors.c

.VendorID               = 0x03EB, // Atmel
.ProductID              = 0x204B, // LUFA USB to Serial Demo Application

dazu

.VendorID               = 0x2341, // Arduino
.ProductID              = 0x0001,

Hoffe, das hilft jemandem in der Zukunft.