Hallo zusammen, Testumgebung PC: Intel G3320 @3GHz 2GB Ram (2 Kerne) Gigabyte B85M D3H OS: Windows 10 64 Bit USB-Treiber: libUSB 1.2.6.0 mit libWizard.exe generiert und installiert Programmer: DIAMAX AllAVR / Den 4 Programmern wurden vier individuelle Seriennumern zugewiesen Wie ihr vielleicht aus meinen anderen Beträgen wisst beschäftige ich mich schon länger und immer wieder mit "Controller-Programmierung in der Produktion" und zwar auf LowCost-Basis. Momentan ist das Geld für richtige Produktionsprogrammer noch nicht frei gegeben. Als Gang-Programmer habe ich bisher STK500.exe aus AVR-Studio 4 eingesetzt und das lief als 4-Fach-Gang-Programmer. Unter Win7 problemlos und dann auf Win10 portiert - und seit dem gibt es Probleme. Nachdem schon zweimal durch ein Update von Windows 10 der Programmer nicht mehr gefunden wird (STK500.exe:Programmer not found) wil ich nun diese Gang-Programmer-Station mit AVRDude lösen. Die Steuersoftware ist "ein PC-Programm" bzw. 4 Programme die vier Batchdateien aufrufen. Jeder Batchdatei ist eine eigene Intel-Hex-Datei mit Serienummer und Parametern usw. modifiziertes .hex-File zugeordnet. Die Steuersoftware liest das Ergebnis der Flashvorgangs aus einer Textdatei aus. In der BatchDatei wird diese mit ERRORLEVEL > Result.%Instanz%.txt angelegt. Starte ich jeden Job, wenn der letzte beendet ist, funktioniert alle 4 Programmer einwandfrei. AVR-Dude beendet immer mit "ERRORLEVEL 0". Starte ich aber nun alle 4 Instanzen der Programmierung zeitgleich, bzw. 1-2 Abstand (so schnell wie man auf 4 Buttons klickt) so machen mindestens 2 Instanzen beim Programmieren es Flash einen Fehler. Ab und zu hängt das ganze so, dass sich USB-Kommunikation aufhängt und ich die Programmer durch abstecken von USB reseten muss. Hat jemand Erfahrtung woran das liegen kann, dass sich 4 Instanzen von AVR-Dude nicht gleichzeitig starten lassen. Gruß und Danke euch schon mal Robert
:
Bearbeitet durch User
Robert H. schrieb: > > Hat jemand Erfahrtung woran das liegen kann, dass sich 4 Instanzen von > AVR-Dude nicht gleichzeitig starten lassen. Guten Morgen, ja klar deine Programmer haben alle dieselbe ID, konkret die USB ID ist dieselbe. Und es ist wirklich völlig irrelevant welche PC hatte du verwerwendest; aber wir-ich nutzen für so etwas Linux. Siehe lsusb.
Hallo Karl, dank für die Antwort. Das hier vier Programmer mit der gleichen USB-ID auf sogar den selben Treiber zugreifen ist mir klar. Aber dafür hat man ja die Möglichkeit den Programmen verschiedene Serienummern zu geben und diese auch beim Aufruf von AVR-Dude mit zu übergeben. Beim Öffnen des Programmers verwende ich wie in der Dude-Doku geschrieben steht: (zB:) -P USB:00200692123 bzw. -P USB:2123 weil nur die letzen 4 Byte von AVRDude verglichen werden. Es wird auch der richtige Programmer angespochen. Die erste Instanz spicht den ersten Programmer und somit die erste Platine an, die zweite Instanz den zweiten Programmer und die zweite Platine usw. Wenn's an der USB-ID liegt - gäbe es dann ein Lösung? (außer Linux) Unter AVR Studio wenn mehrere Programmer angeschlossen sind, wird man ja auch gefragt welchen Programmer mit welcher Serienummern man verwenden will. Hier fehlen mir wahrscheinlich die weitergehenden Systemnahen USB-Kenntnisse gerade im Zusammenhang mit libUSB. Die Angaben zum PC usw. schreibe ich in meine meisten Foreneinträge rein, einfach dass noch zusaätliche Informationen vorhanden sind. Das Thema Linux hatte ich schon, das geht nicht, da in der Ferigung auf diesen PCs viele andere (Win-)Programme laufen. Darf ich aber fragen was ich mit dem Hinweis auf "lsusb" machen soll? Gruß und Danke Robert
:
Bearbeitet durch User
Hallo Robert, Der einfache Aufruf liefert die USB IDs. # https://linux.die.net/man/8/lsusb $ lsusb Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 003: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0 Bus 004 Device 002: ID 04f3:0103 Elan Microelectronics Corp. ActiveJet K-2024 Multimedia Keyboard Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 002: ID 0b05:17cb ASUSTek Computer, Inc. Broadcom BCM20702A0 Bluetooth Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub In deinem geschlossenen Produktion, würde ich zur Lösung jedem AVR Programmer eine eineindeutige USB ID zuweisen. Z.B. durch fortschreiben der eigentlichen ID 03eb:????. Das geht natürlich nur, wenn man Zugriff auf die Firmware hätte. Über lokale avrdude.conf dann jeweils die neuen, weiteren Programm hinzufügen (nicht getestet):
1 | programmer parent "<Name deines Programmers>" |
2 | connection_type = usb; |
3 | usbvid = 0x03eb; |
4 | usbpid = 0x????; |
Hallo Karl, Danke für die Info aber den Source für die FW habe ich leider nicht zur Verfügung. Gruß Robert
:
Bearbeitet durch User
Hallo Robert, nicht gleich aufgeben. Hast Du mal nachgesehen welche USB ID hier korrekt ist? Mit einem binär Editor kann Mann/ Frau auch die USB ID direkt in der Firmware ändern. So viele Möglichkeiten je eine 16 Bit Zahl (usbvid und usbpid) zu speichern, wird es nicht geben.
Hallo Robert, wenn ich nicht irre, dann hat: Jörg W. (dl8dtl) (Moderator) von 2007 bis 2014 am AVRDude gearbeitet. Vielleicht hat er einen Tip für dich. Mal per PN anschreiben oder laut rufen: Jööööööörg?
Hallo Karl, Karl M. schrieb: > Mit einem binär Editor kann Mann/ Frau auch die USB ID direkt in der > Firmware ändern. So viele Möglichkeiten je eine 16 Bit Zahl (usbvid und > usbpid) zu speichern, wird es nicht geben. Auf dem Programmer ist ein NPX LPC1343, da müsste ich zuerst Revers-Engeniering machen und schauen wo auf der Platine JTAG oder SPI ist. Und ich denke mal der Hersteller hat das Flash sicher geschützt gegen auslesen. Danke, Gruß Robert
Danke Tommy, Jörg hat mir in anderen Threads rund um das Thmea "Production Programmer" schon viel geantwortet. Er kommt, wie er selbst sagt aus der Liunux Welt - und ich denke mal das ganze hängt wirklich am libUSB-Treiber unter Windows. Ich warte mal ob er sich zu Wort, meldet. Gruß Robert
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.