Ein USB-Laufwerk ein-/ausschalten, ohne es zu trennen

Ich habe eine Kamera, die ein USB-Flash-Laufwerk zum Speichern von Bildern verwendet. Die Startsequenz für die Kamera erfordert, dass die USB-Laufwerke beim Start NICHT angeschlossen werden ... erst nachdem die Kameraplatinen initialisiert wurden. Ich löse die Kamera mit einem Arduino aus, möchte aber auch die Kamera über das Arduino aus- und wieder einschalten können, falls während des Betriebs etwas schief geht (ich werde die Kamera aus der Ferne überwachen).

Die Stromsituation ist über ein Relais und das Hacken des Abschaltschalters an der Kamera beherrschbar; Wo ich hängen bleibe, sind die USB-Laufwerke. Ich muss in der Lage sein, die USB-Flash-Laufwerke zu "trennen", während die Kamera ihre Startsequenz durchläuft. Meine aktuelle Idee ist, ein kurzes USB-Kabel von Stecker zu Buchse zwischen dem Flash-Laufwerk und dem Anschluss an der Kamera zu platzieren und dann das Stromkabel in diesem Kabel anzuzapfen. Wenn ich das durch einen Transistor oder Optokoppler führe und den Stromkreis unterbreche, denkt die Kamera dann, dass der USB-Anschluss nicht angeschlossen ist?

Ich würde mich über Ideen freuen, wie man das richtig macht!

Das wird ziemlich sicher funktionieren. Eine andere Lösung wäre, einen autarken Hub in die Mitte zu stellen und ihn ein- und auszuschalten.

Antworten (2)

Ich habe mich mit einem ähnlichen Problem beschäftigt, bei dem ein USB-Stick während eines Testvorgangs von einem Laptop "getrennt" werden musste. Es gab ein Problem mit dem Computer, der immer versuchte, dem USB-Laufwerk einen neuen Laufwerksbuchstaben zuzuweisen, wodurch die Testsequenzen unterbrochen wurden. (Beachten Sie, dass das USB-Laufwerk Teil des zu testenden Geräts war und bei jedem Prüfling wie ein neues Laufwerk aussah. Das Problem war die Tatsache, dass die Skripte der Testsequenz ein festes Verständnis des USB-Laufwerksbuchstabens hatten. Und obendrein Dem Laptop-Testcomputer gingen schnell die Laufwerksbuchstaben aus, nachdem er ein paar Dutzend Einheiten getestet hatte.

Die Lösung des Problems erforderte mehrere Schritte. Der erste war das Trennen des USB-Laufwerks. In der Elektronik der Teststation habe ich einen USB-Leistungsschalter-IC verwendet, wie er in USB-Hubs verwendet wird. Dies gab ein Logikpegelsignal, um die USB-Stromversorgung ein- und auszuschalten. Für die D- und D+-Leitungen habe ich einen USB-Signalleitungs-Schalt-IC von Fairchild Semiconductor verwendet. (Nicht, dass Komponenten wie diese in einer großen Auswahl auf dem Markt erhältlich sind). Der Schalter bot auch ein Logikpegelsignal zum Ein-/Ausschalten der Leitungen D+ und D-.

Der zweite Teil der Lösung bestand darin, dass das Testskript auf dem Laptop den zugewiesenen Laufwerksbuchstaben aus dem Windows-Betriebssystem entfernen musste. Es bedurfte einiger gründlicher Recherche, um zu lernen, wie dies programmgesteuert über die Windows-API möglich ist. Beachten Sie, dass das USB-Laufwerk getrennt werden musste, bevor die Laufwerksbuchstabenzuweisung gelöscht werden konnte.

Interessantes zusätzliches Detail

Beachten Sie, dass ich zu einem anderen Zeitpunkt einen fast ähnlichen Fall hatte, in dem ein serieller USB-Chip in ein zu testendes Gerät eingebettet war. Jedes Mal, wenn ein neuer Prüfling auftauchte, versuchte der Testcomputer, dem seriellen USB-Anschluss eine neue virtuelle COMM-Anschlussnummer zuzuweisen. Die Lösung dazu war fast identisch mit der oben beschriebenen.

Wenn ich das durch einen Transistor oder Optokoppler führe und den Stromkreis unterbreche, denkt die Kamera dann, dass der USB-Anschluss nicht angeschlossen ist?

Ja, wenn Sie eine aktive Verwaltung der VBUS-Stromversorgung (zwischen Ihrer "Kamera" und dem über USB angeschlossenen Gerät) einschließen, ist das USB-Laufwerk für den USB-Anschluss "unsichtbar", bis VBUS eingeschaltet ist. Wenn kein VBUS vorhanden ist, kann das über den Bus mit Strom versorgte USB-Laufwerk D+ nicht hochziehen (es signalisiert kein "Verbinden"-Ereignis).

Sie können den VBUS mit jedem Mittel, einem Relais, einem Transistor oder was auch immer, abschalten. Ein technischer Weg besteht darin, sogenannte "High-Side-Schalter" wie diesen zu verwenden .

Technisch gesehen sollte Ihre Kamera diesen Schalter in der Hardware enthalten haben, wenn ihre Firmware/Hardware den USB-Verbindungsstatus vor der Initialisierung nicht verarbeiten kann, und ihre Firmware sollte diesen VBUS-Schalter nur aktivieren, wenn sie bereit ist, den USB-Anschluss zu bedienen.