Hallo, ich bin zur Zeit daran, ein USB-Device zu konstruieren. Dabei funktioniert die Elektronik einwandfrei. Der PC erkennt auch das Device, installiert es, im Gerätemanager wird es richtig aufgeführt und ich kann Daten senden und empfangen. Von der PC Seite her scheint alles zu funktionieren, allerdings nach ein paar Tagen kann ich mir keine Pipes mehr zu meinen Endpunkten aufbauen. Wenn ich das Gerät neu installieren lasse, funktionierts wieder. Wenn ich mir Adminrechte geben lasse, scheint es auch keine Probleme zu geben. Weis wer an was es liegen könnte? Oder wie ich den Fehler suchen bzw. eingrenzen kann? Mit freundlichen Grüßen
Ein bisschen mehr kann's schon sein: Welches OS? Welches Device mit welcher Firmware? Was läuft auf dem PC? Welche Fehlermeldung von welcher Funktion wenn du keine Pipes mehr bekommst?
Ich habe nicht mehr angegeben, weil ich den Fehler eigentlich selber finden will (brauche einen kleinen Schubs :) ). Betriebssystem ist XP, Treiber und Firmware sind von Microchip und die Funktion gibt einfach keinen Handle zurück und bleibt deshalb 0. Am PC benutze ich C#. Es ist definitiv so, dass es mit Adminrechte funktioniert und ohne Rechte ab und zu eben nicht. Mit freundlichen Grüßen Tobi
lass dir mal den fehlercode ausgeben kann du kannst, sonst kannst du die Fehlerquelle nur schwer einschränken. Von hardware, uC software bis hin zur Host-Software kann da alles dran schuld sein. Dir könnte dein Oszillator weglaufen, die uC software könnte mit irgend nem suspend Handle nich klar kommen und was deine hostsoftware so treiber weis ausser dir natürlich keiner, ausser dir.
Naja, da Du beide Seiten gleichzeitig in der Hand hast, kann das Problem natürlich auch auf beiden Seiten liegen, also sowohl in der Firmware Deines selbstgestrickten USB-Devices als auch in Deinem USB-Treiber auf dem PC bzw. in der mit dem USB-Device kommunizierenden Software auf dem PC. Mit einem USB-Monitor könntest Du da zumindest noch ein bisschen herumstochern, aber wenn das Problem erst nach so langer Laufzeit auftritt, ist es natürlich nicht leicht zu finden. Kannst Du denn eine der beiden Seiten zu Testzwecken durch etwas anderes, standardisiertes, ersetzen? Also z.B. Dein USB-Device dazu bringen, daß es eine Standardgeräteklasse implementiert, für deren Test Du auf der PC-Seite weder Treiber noch spezialisierte Software benötigst? Wenn Du z.B. ein CDC implementierst, brauchst Du zwar für Windows eine *.inf-Datei, aber danach könntest Du mit einem Terminalprogramm auf dem PC die von Deinem Device zu Testzwecken gesendeten Daten anzeigen lassen, so daß Du die Fehlersuche auf Dein Device beschränken könntest. Andersherum, wenn Du ein sicher funktionierendes Device hast, könntest Du Deine PC-Software zu Testzwecken so anpassen, daß sie mit eben diesem Device kommuniziert, und dann die Langzeitstabilität testen. Das ist halt immer das Problem bei der Fehlersuche; wenn es zu viele Schrauben gibt, an denen man gleichzeitig drehen kann, wird es sehr schwierig, systematisch vorzugehen, um einzelne Fehlerquellen ausschließen zu können.
Was genau heißt eigentlich "nach ein paar Tagen"? Steht die Verbindung während diesen Tagen immer oder kriegst du irgendwann nach dem 40ten mal Verbinden (nach ein paar Tagen) keine Pipes mehr? Und wie Tastkopf sagte: GetLastError wäre von Interesse. Ist es ein HID device oder?
> Es ist definitiv so, dass es mit Adminrechte funktioniert und ohne > Rechte ab und zu eben nicht. Also ist es ein Treiber oder OS Problem bzw. Standbymodus oder Service oder .... Das Problem ist in jedem Fall auf der Host Seite zu suchen.
Tausch doch mal den Host. Also geh an einen anderen Rechner. Am besten einmal an einen Rechner mit dem gleichen OS und dann einem anderen OS dann einen anderen Treiber anderer USB Controller usw ...
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.