Electronic – Circuit to disconnect USB

microcontrollerusb

I have a microcontroller with USB Host, and I need to be able to programmatically power-down the USB peripheral. The reason is that I need to power cycle the USB peripheral to reset it (a necessary evil unfortunately).

The microcontroller simply has D+D- lines for the USB, and power is expected to be supplied by me, which I take from the 5V rail.

I thought I would use some variation of a TIP NPN to simply switch the 5V going to the USB peripheral, and control that with a GPIO from the micro – however, given that USB is designed to never have the data lines connected when the power lines are not – I no longer think this is such a good idea.

Can anyone suggest a simple circuit which would achieve what I'm trying to do? Or if my transistor approach is actually OK.

Thanks!

[EDIT]
This is the Microcontroller http://www.acmesystems.it/arietta
The connected peripheral is a CDC_ACM serial device.

Best Answer

The Transistor approch is OK, but I recommend using a P-channel MOSFET to switch the +5 Volt.

USB data lines are pulled low on the host side anyway, so switching just the power line is safe. But don't try to switch GND.