Hallo, da ich aus den Datenblättern nicht ganz schlau geworden bin folgendes Problem. Ich habe einen Controller der via FTDI mit einem Rechner verbunden werden kann (Versorgung über USB). Problem: Ich möchte auf dem Host via SW den Controller zurücksetzen können ohne das Kabel abzuziehen und wieder anzustecken. Der FTDI bietet SUSPEND und PWREN Signale. PWREN wird gesetzt sobald der Rechner das USB-Gerät erkannt hat. Den USB-Suspend Mode habe ich nicht gänzlich verstanden, er wird offenbar eingenommen wenn eine gewisse Zeit Ruhe auf dem Bus ist. Die FTDI Lib bietet spärlich dokumentierte Funktionen wie ResetDevice() und ResetPort(). Hat eine dieser Funktionen Auswirkungen auf die beiden genannten Pins? Gibt es einen anderen (eleganten) Weg beim Öffnen der Kommunikationsverbindung für einen Reset zu sorgen? Besten Dank, Alex
Vielleicht über die Handshake-Pins (CTL, DTR, etc..). Da bietet die D2XX-Lib auch Funktionen für zum setzen und löschen an.
Hab mich vertan, sorry. CTL gibts überhaupt nicht. Was ich meine sind die Pins DTR und RTS. Schau mal dort: http://www.ftdichip.com/Documents/ProgramGuides/D2XX_Programmer%27s_Guide%28FT_000071%29.pdf auf Seite 25-28 nach. Vielleicht gehts ja damit
Danke, der Hinweis passt. Bin durch Zufall dann doch noch auf eine Lösung gestoßen (http://www.sparkfun.com/commerce/product_info.php?products_id=9115). Dort wird am Rande erwähnt, dass DTR für solche Zwecke missbraucht werden kann. Das klappt auch soweit mit der Lib (SetDTR(true/false)). Grüße, Alex
Nein, SUSPEND wird nur gesetzt wenn der Rechner in einen Ruhezustand uebergeht. Der soll das gesamte USB-Geraet abschalten. Die Handshake-Leitungen wuerde ich fuer sowas nicht nehmen, die braucht man ja fuer eine stabile Datenuebertragung. Du kannst im BitBang-Modus die Bus-Leitungen benutzen, um zusaetzliche Dinge zu steuern. Allerdings habe ich das anders gemacht: Ich habe den watchdog des Controlers benutzt, um diesen mit einem Befehl zu resetten, indem man in dann einfach in eine Endlosschleife schickt. Michael
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.