Forum: Mikrocontroller und Digitale Elektronik [PIC] USB, Error 997


von Joachim .. (joachim_01)


Lesenswert?

[PIC] USB, Error 997

Hi,
ich bin geade an Spruts usb4all-Projekt. Der 18F4550 (anstatt 18F2550) 
geht, soweit ich es ersehen kann, einwandfrei. Auch die Kommunikation 
mit dem PIC per USB funzt - aber nur ein einziges mal. Resete ich ihn, 
geht's wieder - einmalig. Hab hier (ein spanisches) Win7, nach einigem 
googlen fand ich heraus, daß das wohl im Zusammenhang mit dem 
Datenverkehr stehen muß und nicht mit der eigentlichen Anwendung. 
Jedenfalls liefert spruts Brenner als auch PICDEM USB in manchen 
Konstellationen den gleichen Fehler. Im MCHP Forum fand ich:
USB WRITE FAILED
FAILED WITH ERROR 997:  OVERLAPPED I/O OPERATION IS IN PROGRESS
Was wollen uns diese Worte sagen?

Ich wollte das WIN7 in den XP-Mode zurücksetzen, offensichtlich geht das 
mit der Home Premium Version aber nicht. Premium. :-(

Irgendeine Idee, was man machen könnte?

von Holger W. (holgerw)


Lesenswert?

Hast du sinngemäß "Windows kann das Gerät ausschalten um Strom zu 
sparen" ausgeschaltet ? Das war bei mir die Ursache. Hab auch Win7
Holger

von Joachim .. (joachim_01)


Lesenswert?

Kannst du mir einen großen Gefallen tun und mir einen Screenshot machen? 
Mein Spanisch ist unterirdisch, ich hab diese Büchse hier beinahe schon 
einmal wuschelig gemacht...

von Joachim .. (joachim_01)


Lesenswert?

Dumm ist, das so was überhaupt notwendig ist. Mein Arduino und all die 
anderen USB-Geräte gehen einwandfrei...

von Holger W. (holgerw)


Angehängte Dateien:

Lesenswert?

Hallo, gerade ganz schlecht, sitze im Hotel ohne usb4all, aber so in 
etwa müsste es aussehen... und mein spanisch ist auch ganz schlecht ;-)
Holger

von Joachim .. (joachim_01)


Lesenswert?

Junge, du bist Gold wert!

Es funzt!

von Joachim .. (joachim_01)


Lesenswert?

Ich dachte erst, ich schau mal unter den Allgemeineinstellungen. Hab 
mich aber nicht so recht getraut. Dann kam dein Post mit dem Bild und 
ich hab speziell nach dem PIC als Device geschaut.

Kannst nachher in der Hotelbar einen auf mein Wohl trinken.

von usuru (Gast)


Lesenswert?

> Kannst nachher in der Hotelbar einen auf mein Wohl trinken.

Geh lieber auf der Rambla in eine Einheimischen-Bar, die Spanier haben 
ganz wunderbaren Weinbrand. Im richtigen Lokal gar nicht teuer (seit 
gestern aus dem Urlaub zurück, habe dort in Nordost-Spanien einen 
sauguten Veterano für 1.80 bekommen - gut eingeschenkt)

von Joachim .. (joachim_01)


Angehängte Dateien:

Lesenswert?

So was wie auf dem Bild meinst du?
Alter Suffkopp, ey. Prost.

von Lehrmann M. (ubimbo)


Lesenswert?

Joachim ... schrieb:
> Dumm ist, das so was überhaupt notwendig ist. Mein Arduino und all die
> anderen USB-Geräte gehen einwandfrei...

Dafür kannst du auch kein richtiges C geschweige denn kannst du Probleme 
lösen, wenn irgendwas nicht in den Libraries nicht funktioniert oder 
nicht vorhanden ist. Von der Zuverlässigkeit des Codes mal ganz zu 
schweigen.

Ich stelle nicht in Frage, dass das das Arbeit mit Arduino (ich sage 
bewusst nicht Programmieren) ineffektiv ist oder nicht nicht zur 
Ziellösung führt. Arduino ist Consumerlevel, Hochsprachen wie C, ADA, 
... sind aber Developmentlevel. Im Hobbybereich ist das ja auch in 
Ordnung. Wenn mir allerdings jemand ein Produkt mit Arduino anbietet, 
dann würde ich da sehr vorsichtig sein. Schon alleine, dass AVR 
verwendet wird wirkt leicht amateurhaft. Wenn dann allerdings auch noch 
Arduino verwendet wird hat das für mich einen Standart wie Legotechnik.

von Walter S. (wschrabi)


Lesenswert?

Hallo,
also ich hab ein gebasteltes HID Device, das auch funktioniert.
doch wenn ich mit HIDMakerFS mit dem Tool ANy HID den Report lesen will
kommt:

====================================================
====================================================
Reading report: Input Report ID 0
====================================================
====================================================

 CancelIO()
  Result Code = 997; Message = Windows error message: Überlappender 
E/A-Vorgang wird verarbeitet.

 *** Peripheral has failed to respond within HIDagent.TimeOut = 3000 
msec. ***
 *** Peripheral has failed to respond within HIDagent.TimeOut = 3000 
msec. ***
     (The data will be meaningless.)

   + + + ERROR in reading report ! + + +
Windows error message: Überlappender E/A-Vorgang wird verarbeitet.

 *** Peripheral has failed to respond within HIDagent.TimeOut = 3000 
msec. ***

Auch wenn ich mein Delphi Prg das HIDMAKER erzeugt verwenden will, kommt 
die gleiche Fehlermeldung. Beide Prg greifen auf HidAgent OCX zurück.
Was kann ich da machen?
Ich hab auch schon die Energieverwaltung der HUBs abgeschaltet (nicht 
angehackt, so wie oben beschrieben.) Aber ohne Erfolg.

Mit USB Trace hab ich mir das Protokoll angesehen, da sieht man schon
den INTERRUPT Trasnfer von 11 BYTE Data.
Kann mir da jemand helfen?
Danke

von Joachim .. (joachim_01)


Lesenswert?

Hast du von deinem "HidAgent OCX" eine Schnittstellenbeschreibung? 
Vielleicht kann man da etwas umschalten?
Spruts Software ist ebenfalls mit Delphi geschrieben. Aktuell verwende 
ich aber das C# Framework von Simon Inns. Ich habe den Verdacht, daß der 
Softwarekern für die Kommunikation mit der USB-Schnittstelle (oder der 
Microchip dll?) ,naja, defaultmäßig irgendetwas Grundsätzliches "nicht 
richtig" macht. Mit dem Framework habe ich in diesem Zusammenhang bei 
meinen Nachforschungen in noch keinem Forum den Fehler gefunden.

Hast du Win7?

von Tobi D. (fanti)


Lesenswert?

hallo,
diese Fehlermeldung hatte ich bei meiner USB-Schaltung auch gehabt.
Bei mir hat es geholfen die Spannungen zu stabilisieren.
Als ich den VUSB Kondensator auf 330nF erhöht und über die Versorgung 
zusätzlich zum 100nF noch einen 10µF Kondensator gehängt hatte läuft das 
USB-Device seit Monaten problemlos.

von Walter S. (wschrabi)


Lesenswert?

Joachim ... schrieb:
> Hast du von deinem "HidAgent OCX" eine Schnittstellenbeschreibung?
Leider nein. es wird ind HIDMakerFS verwendet.


> Vielleicht kann man da etwas umschalten?
> Spruts Software ist ebenfalls mit Delphi geschrieben. Aktuell verwende

Wo bekomm ich die Spruts SW? Verwendet der interrupt pipes?
Kann ich mir da was abschauen?


> ich aber das C# Framework von Simon Inns. Ich habe den Verdacht, daß der
> Softwarekern für die Kommunikation mit der USB-Schnittstelle (oder der
> Microchip dll?) ,naja, defaultmäßig irgendetwas Grundsätzliches "nicht
> richtig" macht. Mit dem Framework habe ich in diesem Zusammenhang bei
> meinen Nachforschungen in noch keinem Forum den Fehler gefunden.
>
> Hast du Win7?

ja hab WIn7.

von Walter S. (wschrabi)


Lesenswert?

Tobi D. schrieb:
> hallo,
> diese Fehlermeldung hatte ich bei meiner USB-Schaltung auch gehabt.
> Bei mir hat es geholfen die Spannungen zu stabilisieren.
> Als ich den VUSB Kondensator auf 330nF erhöht und über die Versorgung
> zusätzlich zum 100nF noch einen 10µF Kondensator gehängt hatte läuft das
> USB-Device seit Monaten problemlos.

Ich glaube es liegt  an der HidAgent ocx. Denn
wenn man mit USBTrace (Datanalyser) sieht man die Interrupt Pipe daten 
sehr schoen. Wieso kann der Analyser die Daten lesen, und HIDMAker 
AnyHID nicht?

von Joachim .. (joachim_01)


Lesenswert?

Fals dieses Post hier noch nicht zu spät kommt und du schon alles 
runtergeladen hast:

>Wo bekomm ich die Spruts SW?
Ich dachte der ist bekannt wie n bunter Hund... scheinbar doch nicht?
sprut.de

>Verwendet der interrupt pipes?
Die Software usb4all schreibt bei Fehlern immer irgendetwas von Pipes, 
glaub' also schon.

>Kann ich mir da was abschauen?
Source ist dabei.

von Joachim .. (joachim_01)


Lesenswert?

>ja hab WIn7.
Ich hab den Verdacht, daß bei XP der Fehler eher nicht auftritt. Probier 
mal, wenn du kannst (hab' selber im Mom. leider kein XP).

von Wschrabi (Gast)


Lesenswert?

DANKE joachim. AUch bei XP kommt der 997er.
Ich werde mal die SW von strup.de laden. Ich hoffe man kann da 
intr-pipes empfangen. In dem Tool von Robert Marquardt geht der controll 
report auf aufforderung sehr schön, doch leider bringt der vielleicht 
keine intr.-pipes zum Aufzeichnen.
Walter

von Wschrabi (Gast)


Lesenswert?

@ Joachim:
ALso eine frage zum sprut.de:

Da ist drin:

  out_pipe    : PCHAR8 = '\MCHP_EP1';
  in_pipe     : PCHAR8 = '\MCHP_EP1';

Ist das uP eigen? Oder woher weiss ich wie mein pipe heisst?
Compilieren geht aber bekomme einen error dass no pipes da sind.

INVALID_HANDLE_VALUE

danke für den tipp

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.