Forum: Mikrocontroller und Digitale Elektronik USB Fehlersuche


von USBler (Gast)


Lesenswert?

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

von Carsten M. (ccp1con)


Lesenswert?

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?

von Andreas (Gast)


Lesenswert?

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

von Tastkopf (Gast)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Carsten M. (ccp1con)


Lesenswert?

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?

von Uwe (Gast)


Lesenswert?

> 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.

von Uwe (Gast)


Lesenswert?

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