Encender / apagar una unidad USB sin desconectarla

0

Tengo una cámara que utiliza una unidad flash USB para almacenar imágenes. La secuencia de inicio de la cámara requiere que las unidades USB NO estén conectadas durante el inicio ... solo después de que las placas de la cámara se hayan inicializado. Estoy activando la cámara con un arduino, pero también me gustaría poder apagar y encender la cámara a través del arduino en caso de que algo salga mal durante la operación (estaré monitoreando la cámara de forma remota).

La situación de energía es manejable a través de un relé y pirateando el interruptor de apagado de la cámara; donde me quedo atascado es las unidades USB. Necesito poder "desconectar" las unidades flash USB mientras la cámara realiza su secuencia de inicio. Mi idea actual es colocar un cable USB corto de macho a hembra entre la unidad flash y el puerto de la cámara, luego conectar el cable de alimentación en ese cable. Si lo ejecuto a través de un transistor u opto-aislador y rompo el circuito de alimentación, ¿pensará la cámara que el USB está desconectado?

¡Me encantaría cualquier idea sobre cómo hacer esto bien!

    
pregunta Mark J.

2 respuestas

1

He abordado un problema similar en el que una unidad de memoria USB tenía que ser "desconectada" de una computadora portátil durante un procedimiento de prueba. Hubo un problema con la computadora que siempre intentaba asignar una nueva letra de unidad a la unidad USB que hizo que las secuencias de prueba se rompieran. (Tenga en cuenta que la unidad USB era parte de la unidad que se estaba probando y se parecía a una nueva unidad con cada UUT. El problema era que los scripts de la secuencia de prueba tenían una comprensión fija de la letra de la unidad USB. Y además de eso la computadora portátil de prueba se quedaría sin letras de unidad luego de probar un par de docenas de unidades.

Resolver el problema tomó varios pasos. El primero fue desconectar la unidad USB. En la electrónica de la estación de prueba usé un IC de interruptor de alimentación USB del tipo que se usa en los concentradores USB. Esto dio una señal de nivel lógico para encender y apagar la alimentación USB. Para las líneas D y D +, utilicé un interruptor de línea de señal USB IC de Fairchild Semiconductor. (No es que los componentes como estos estén disponibles en una amplia selección en el mercado). El interruptor también ofrecía una señal de nivel lógico para activar / desactivar las líneas D + y D-.

La segunda parte de la solución fue que la secuencia de comandos de prueba en la computadora portátil tenía que eliminar la letra de unidad asignada del sistema operativo Windows. Se necesitó una investigación profunda para aprender a hacerlo mediante programación a través de la API de Windows. Tenga en cuenta que la unidad USB se tuvo que desconectar antes de eliminar la asignación de letras de unidad.

Detalles adicionales interesantes

Tenga en cuenta que en otro momento tuve un caso casi similar a un chip serie USB incorporado dentro de un dispositivo que se está probando. Cada vez que se presentara una nueva UUT en la computadora de prueba, se intentaría asignar un nuevo número de puerto COMM virtual al puerto serie USB. La solución a eso fue casi idéntica a la descrita anteriormente.

    
respondido por el Michael Karas
0
  

Si ejecuto eso a través de un transistor u opto-aislador y rompo el   circuito de alimentación, ¿pensará la cámara que el USB está desconectado?

Sí, si incluye una administración activa de la alimentación VBUS (entre su "cámara" y su dispositivo USB conectado), la unidad USB será "invisible" para el puerto USB hasta que VBUS esté encendido. Si no hay VBUS, la unidad USB alimentada por bus no podrá extraer D + (no indicará el evento "conectar").

Puede mantener el VBUS apagado usando cualquier medio, un relé, un transistor, lo que sea. Una forma de ingeniería es usar el llamado "interruptor de lado alto", como este .

Hablando técnicamente, su cámara debe tener este interruptor incluido en el hardware si su firmware / hardware no puede manejar el estado de conexión USB antes de la inicialización, y su firmware debería activar este interruptor VBUS solo cuando esté listo para dar servicio al puerto USB.

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas