USB-Controller via Software deaktivieren

Gast #3092655
Lesenswert?

Hallo,

Ich habe folgendes Problem: Ich verwende FT232R Chip unter WinXP und 
Windows 7, Jedes mal wenn in der Nähe eine induktive Last ein- oder 
ausgeschalten wird, geht die Verbindung verloren. Unter Windows 7 ist 
das kein Problem, weil das Betriebsystem die Verbindung wieder aufnimmt. 
Unter WinXP geht das leider nicht und ich muss entweder den Chip 
abstecken und wieder anstecken oder im Gerätemanager den "USB Serial 
Converter" unter "USB-Controller" deaktivieren und wieder aktivieren.

Nachdem die Hard und Software über Stunden unbeobachtet laufen soll, 
kann ich beides nicht machen. Jetzt stellt sich mir die Frage, ob es 
eine Möglichkeit gibt via Software den "USB Serial Converter" zu 
deaktivieren und dann wieder aktivieren?

Ich verwende als Compiler und IDE LabWindows/CVI

Danke im Vorraus,

Stefan
#3095421
Lesenswert?

Stefan_H schrieb:
> Hallo,
>
> Ich habe folgendes Problem: Ich verwende FT232R Chip unter WinXP und
> Windows 7, Jedes mal wenn in der Nähe eine induktive Last ein- oder
> ausgeschalten wird, geht die Verbindung verloren. Unter Windows 7 ist
> das kein Problem, weil das Betriebsystem die Verbindung wieder aufnimmt.
> Unter WinXP geht das leider nicht und ich muss entweder den Chip
> abstecken und wieder anstecken oder im Gerätemanager den "USB Serial
> Converter" unter "USB-Controller" deaktivieren und wieder aktivieren.
>
> Nachdem die Hard und Software über Stunden unbeobachtet laufen soll,
> kann ich beides nicht machen. Jetzt stellt sich mir die Frage, ob es
> eine Möglichkeit gibt via Software den "USB Serial Converter" zu
> deaktivieren und dann wieder aktivieren?
>
> Ich verwende als Compiler und IDE LabWindows/CVI
>
> Danke im Vorraus,
>
> Stefan
Hallo Stefan,
hast Du schon mal versucht den Rechner per USV vom Stromnetz zu 
entkoppeln.
Ich würde erst mal versuchen durch solche Maßnahmen das Problem an sich 
zu vermeiden.
Auf der seriellen Seite dann z.B. zusätzliche Abschirmung durch einen 
Metallschlauch.
Gast #3095434
Lesenswert?

Hallo,

meldet der sich richtig über Plug&Play ab oder bleibt die Verbindung 
hängen? Wenn nur die Verbindung hängen bleibt,liegt es vermutlich daran, 
dass viele Datenfehler aufgelaufen sind und der Host die Endpunkte in 
HALT setzt. Dann musst du die mit einem Clear_Feature(EP_HALT) wieder 
loslaufen lassen, falls du die Möglichkeit hat.

Gruß
#3095540
Lesenswert?

In der FTD2XX.dll von FTDI gibt's die Funktion FT_CyclePort, die genau 
das macht.
"The effect of this function is the same as disconnecting then 
reconnecting the device from USB. Possible use of this function is 
situations where a fatal error has occurred and it is difficult, or not 
possible, to
recover without unplugging and replugging the USB cable."
http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer%27s_Guide%28FT_000071%29.pdf
Gast #3098054
Lesenswert?

Hallo Leute,

Danke für die Antworten... aber... ;-)

Störungen zu vermeiden wäre zwar super, ist aber durch gewisse Umstände 
nicht möglich. Das Board war eigentlich nur für Tests und entwicklung 
gedacht. Der FT232R liegt EMV-Technisch ganz schlecht und sie die 
Datenleitung für USB liegt quer über das ganze Board.... Problem ist, 
das das Board "irrtümlich" im Einsatz ist und ich die Sache ohne 
Hardwareänderungen zum laufen bringen muss.

Bzgl. Clear_Feature(EP_HALT): Ich habe leider nur wenig Ahnung von USB 
ansich. Ich Kann den fehler nur so beschreiben: Wenn der Fehler 
Passiert, hört man das Typische Ab-/Anstecken-Geräusch von Windows XP 
und der der Chip lässt sich nichtmehr ansprechen:
1
ftStatus=FT_Open(0,&ftHandle);
ftStatus ist immer 1 (invalid ftHandle)

Womit ich dann  FT_CyclePort(ftHandle) nicht ausführen kann, da ich 
keinen ftHandle habe.

Wie gesagt, das einzige was hilft ist USB-Stecker raus und wieder rein, 
oder im Gerätemanager den "USB Serial Converter" deaktivieren und wieder 
aktivieren.

glg,

Stefan
Gast #3105055
Lesenswert?

Hallo,

Arc Net schrieb:
>>> ftStatus=FT_Open(0,&ftHandle);
>> > ftStatus ist immer 1 (invalid ftHandle)
>>
>> Womit ich dann  FT_CyclePort(ftHandle) nicht ausführen kann, da ich
>> keinen ftHandle habe.
>
> Ist das Gerät überhaupt auf Geräteindex 0 zu finden bzw. was liefert
> FT_CreateDeviceInfoList zurück?

Ja, Gerät ist immer auf 0, wenn der Fehler auftritt, wird kein device 
erkannt!

bluppdidupp schrieb:
> http://stackoverflow.com/questions/1438371/win32-a...

Ja, das ist ein schritt in richtung lösung. Mit dem HH_Lib_Test kann ich 
das entsprechende Device disablen und enablen, danach geht alles wieder. 
Jetz muss ich es nur schaffen die Lib auf Labwindows umzuschreiben...

Melde mich wenn es neues gibt!

lg

Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren