Circuito para desconectar el USB

4

Tengo un microcontrolador con USB Host y necesito poder apagar programáticamente el periférico USB. La razón es que necesito apagar y encender el periférico USB para reiniciarlo (un mal necesario, lamentablemente).

El microcontrolador simplemente tiene líneas D + D para el USB, y se espera que yo suministre energía, que tomo del riel de 5V.

Pensé que usaría alguna variación de un TIP NPN para simplemente cambiar los 5V al periférico USB, y controlarlo con un GPIO desde el micro, sin embargo, dado que el USB está diseñado para nunca tener las líneas de datos conectadas cuando las líneas eléctricas no lo son, ya no creo que sea una buena idea.

¿Puede alguien sugerir un circuito simple que logre lo que estoy tratando de hacer? O si mi enfoque de transistor está realmente bien.

¡Gracias!

[EDITAR] Este es el enlace del microcontrolador El periférico conectado es un dispositivo serie CDC_ACM.

    
pregunta Adam

2 respuestas

2

El enfoque de transistor está bien, pero recomiendo usar un MOSFET de canal P para cambiar los +5 voltios.

De todos modos, las líneas de datos USB están bajas en el lado del host, por lo que cambiar solo la línea de alimentación es seguro. Pero no intentes cambiar la GND.

    
respondido por el Turbo J
2
  

"sin embargo, dado que el USB está diseñado para nunca tener las líneas de datos   Conectado cuando las líneas eléctricas no están - ya no creo que esto sea   una buena idea ".

¿Quiere decir que el estándar USB está diseñado para no tener ... o su diseño necesita desconectar las líneas de datos cuando se desconecta la alimentación?

Parece que estás trabajando como host USB, ¿verdad? El estándar USB recomienda una resistencia desplegable en los transceptores orientados hacia abajo. Y por la ficha técnica pág. 1562:

  

Los dispositivos autoalimentados pueden detectar 5V VBUS utilizando un PIO. Cuando el dispositivo   no está conectado a un host, el consumo de energía del dispositivo se puede reducir   el bit DETACH en UDPHS_C TRL. Desactivar el transceptor es   hecho automáticamente Las líneas HSDM, HSDP, FSDP y FSDP están vinculadas a GND   desplegables integrados en los puertos downstream del hub.

Y en la p. 1566, muestra registros para controlar los menús desplegables, puede habilitar / deshabilitar los menús desplegables. Por lo tanto, cuando quita la alimentación a sus dispositivos esclavos USB, solo puede controlar los estados de la línea de datos mediante registros, los conmutadores externos pueden no ser necesarios.

    
respondido por el diverger

Lea otras preguntas en las etiquetas