Forum: PC-Programmierung USB LEDS mit ATMega8 unter Linux -"Could not find USB Device


von Felix Adamczyk (Gast)


Lesenswert?

Hallo Leute,
für AVRs gibt es Firmware die den Controller um eine USB Schnittstelle 
erweitern. Ich habe folgendes Projekt nachgebaut:
http://www.schatenseite.de/usb-led-fader_en.html

Sobald ich die Schaltung an den USB Port anschließe, machen die LEDs den 
Interaction Test. Wenn ich jedoch mit dem PC die Schaltung steuern will, 
gibt das Programm die folgende Fehlermeldung:
"Could not find USB device "USB-LED-Fader" with vid=0x16c0 pid=0x5dc"

Der C Code der dies erzeugt müsste der folgende sein:

int main(int argc, char **argv)
{
    usb_dev_handle *handle = NULL;

    if (argc < 2) {
        usage(argv[0]);
        exit(1);
    }
    usb_init();
    if (usbOpenDevice (&handle, USBDEV_SHARED_VENDOR, 
"www.schatenseite.de", USBDEV_SHARED_PRODUCT, "USB-LED-Fader") != 0) {
        fprintf(stderr, "Could not find USB device \"USB-LED-Fader\" 
with vid=0x%x pid=0x%x\n", USBDEV_SHARED_VENDOR, USBDEV_SHARED_PRODUCT);
        exit(1);
    }




Weiß jemand wie ich dieses Problem lösen kann?

Vielen Dank.

Felix

von Εrnst B. (ernst)


Lesenswert?

Bei der Fehlersuche ist erstmal "lsusb" nützlich, damit kannst du 
nachschauen, ob das Device überhaupt richtig angemeldet wird, und dir 
den Device-Descriptor ausgeben lassen.

Wenn das alles passt, die Berechtigungen an der device-node überprüfen, 
mit lsusb Bus/Device-Nr nachschauen, und dann

mit chmod a+rw /proc/bus/usb/<bus-nr>/<device-nr> (bei neuerem linux 
/dev/bus/usb/ ...)
erstmal für alle beschreibbar machen

/Ernst

von Rupplyn (Gast)


Lesenswert?

Steht doch dar. Das Gerät wird nicht gefunden!

wird das gerät im gerätemanager richtig angezeigt? (wurde glaub ich als 
hid-device realisiert...)

-> nein: Initialisierung schlägt fehl: Hardware richtig aufgebaut? 
Firmware richtig angepasst?

-> ja: Hast du die vielleicht VenorID/ProductID oder ähnliches geändert? 
dann würde der client natürlich nach dem falschen device suchen...


die firmware wurde mit libs von obdev entwickelt. der client dürfte über 
libsub realsiert sein...
Vielleicht findest ja auch dort noch infos...

von Εrnst B. (ernst)


Lesenswert?

Rupplyn wrote:
> Steht doch dar. Das Gerät wird nicht gefunden!

Ja, das Steuer-Program findets nicht, aber ob Linux das Device überhaupt 
findet wär interressant.

> wird das gerät im gerätemanager richtig angezeigt? (wurde glaub ich als
> hid-device realisiert...)

Genau das meinte ich mit "lsusb", das zeigt die angeschlossenen 
USB-Geräte an. Einen generischen, bei allen Linux-Distributionen 
vorhandenen "Gerätemanager" kenn ich nicht ;)

Ein HID-Device wirds wohl nicht sein, sonst könnte man nicht mehr ohne 
weiteres mit libusb darauf zugreifen (der kernel-HID Driver würde sich 
das device "wegschnappen")

Ansonsten steht im "dmesg" output meist auch hilfreiches über 
USB-Fehler, z.B. "Timeout on EP0" etc. Beim Debuggen recht hilfreich.


/Ernst

von Rupplyn (Gast)


Lesenswert?

AH ok, das kommt davon wenn man den betreff nicht genau liest...

hey, hast recht mit der libusb... trotz deiner logisch erklärung hab 
ichs grad ausprobiert-> funktioniert nicht...

wieder was gelernt ;-)

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
Noch kein Account? Hier anmelden.