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.