Kann avrdude einzelne USB-Programmierer ansprechen?

Ich stelle mir eine Panel-Programmiervorrichtung vor. Meiner Meinung nach besteht es aus einem Raspberry Pi, einem USB-Hub mit Stromversorgung und einer Sammlung von USB-Tiny-Klonen, die jeweils mit einer Pogo-Vorrichtung und einem Ziel auf einem Panel verbunden sind.

Die einzige Frage, die ich noch nicht gelöst habe, ist, wenn ich avrdude aufrufe, kann ich -c verwenden, um es anzuweisen, usbtiny zu verwenden ... aber wie kann ich ihm sagen, welches usbtiny es verwenden soll? Der Plan ist, ein Skript zu verwenden, um sie alle einzeln zu durchlaufen, und meiner Meinung nach ist es einfacher, nur ein paar Programmierer anzuschließen, als zu versuchen, einen Bolt-on zu entwickeln, um den SPI-Bus von einem Programmierer zu allen Zielen zu multiplexen.

Antworten (1)

Mehrere USBasp- oder USBtinyISP-Geräte können anhand ihrer Verbindungsinformationen identifiziert werden. Aus dem AVRDUDE-Handbuch, Anhang B, "Fehlerbehebung" :

  • Problem: Mehrere gleichzeitig angeschlossene USBasp- oder USBtinyISP-Programmierer werden nicht gefunden.

    Lösung: Der USBtinyISP-Code unterstützt die Unterscheidung mehrerer Programmierer basierend auf ihrem Bus:Gerät-Verbindungstupel, das ihren Platz in der USB-Hierarchie auf einem bestimmten Host beschreibt. Dieses Tupel kann der Option -P usb hinzugefügt werden , ähnlich wie das Hinzufügen einer Seriennummer bei anderen USB-basierten Programmiergeräten.

    Die tatsächliche Namenskonvention für die Bus- und Gerätenamen ist betriebssystemabhängig; AVRDUDE druckt aus, was es auf dem Bus gefunden hat, wenn es mit (mindestens) einer Option -v ausgeführt wird . Durch die Angabe einer Zeichenfolge, die mit keinem vorhandenen Gerät übereinstimmen kann (z. B. -P usb:xxx ), listet der Scan alle möglichen Kandidatengeräte auf, die auf dem Bus gefunden wurden.

    Beispiele:

    avrdude -c usbtiny -p atmega8 -P usb:003:025 (Linux)
    avrdude -c usbtiny -p atmega8 -P usb:/dev/usb:/dev/ugen1.3 (FreeBSD 8+)
    avrdude -c usbtiny -p atmega8 \
      -P usb:bus-0:\\.\libusb0-0001--0x1781-0x0c9f (Windows)
    
Exzellent. Ich bin froh, dass es eine Lösung gibt. Ich habe viele Dokumente für avrdude gefunden, aber nicht diesen Teil des Handbuchs. Danke!