¿Usando D + y D- de USB como fuente de alimentación?

0

Estoy trabajando en un proyecto en el que necesito poder cambiar la alimentación a un dispositivo USB conectado a mi computadora portátil. Mi intención original era reducir la alimentación USB de 5V a 3V, y luego encender y apagar el USB con un programa que escribiría. Sin embargo, después de algunas investigaciones, parece que no es posible encender y apagar los USB con código.

Teniendo eso en cuenta, me pregunto si sería posible utilizar las líneas D + / D como una "fuente de energía" para mi dispositivo. He leído en varios lugares que las líneas de datos en USB son 3.3V? ¿Es eso cierto para todos los USB de datos, o estoy malentendido? Si es verdad, entonces, en teoría, podría reducir esos 3.3V a 3V y resolvería mi problema (ya que podría enviar / no enviar datos).

También me gustaría destacar que digo "fuente de alimentación" porque no tiene que ser constante, solo un breve impulso de encendido / apagado con un voltaje suficientemente alto.

También me doy cuenta de que hay productos que existen en el mercado que podría comprar para simplificar mi problema, pero la idea de mi proyecto es usar cosas que ya tengo disponibles (solo el dispositivo USB, resistencias y cables) .

También debería haber notado exactamente cuál es mi proyecto: es un proyecto de mosaico. He secuestrado los mandos a distancia de dos cadenas de luces de Navidad. He cableado uno para estar permanentemente encendido y otro permanentemente apagado. Cada control remoto contenía originalmente una batería de litio de 3 V (CR2025). En lugar de secuestrar el sistema IR, decidí que sería más fácil secuestrar el poder. Así que decidí reemplazar la batería con alimentación USB, que es donde encontré el problema que mencioné anteriormente.

Pulsar la alimentación USB al control remoto ENCENDIDO me simulará presionando el botón ENCENDIDO, y también para el control remoto APAGADO.

    
pregunta thearchitector

3 respuestas

4

Lo más probable es que no ...

La impedancia de salida del USB es alta. Está diseñado para adaptarse a una impedancia diferencial de 90 ohmios en el cable. Eso significa que hay (el efecto de) una resistencia en serie para igualar esta impedancia del cable. Conducir a través de esa "impedancia de la fuente" da como resultado una caída de voltaje que aumenta con el consumo de corriente. Solo tendrás la apariencia de ~ 3V cuando tu dibujo actual sea casi nada. Después de eso caerá rápidamente.

Esta es una curva de salida del microcontrolador. Este microcontrolador es mucho más fuerte (el voltaje cae menos para una corriente dada) que la mayoría de las salidas USB dedicadas, pero ilustra el problema que enfrentará.

Tienescontrollimitado

NotienecontrolcompletosobreelestadodelaslíneasdedatosenunpuertoUSB.Elprotocolorequierecambiosdeestadoperiódicosenesaslíneas,paracosascomoverificarsieldispositivoestáconectado,enumerar(enumerar)todoslosdispositivosenelbus,etc.Entonces,sitieneundispositivodecorrientemuybajaconectadoy,delocontrario,funciona.sucicloseactivaráydesactivaráinesperadamentedesdesuperspectiva,yaquesucomputadorafuncionanormalmente.

Lasresistenciaspull-upinterfierenconelcontrol

ElUSBrequierequelalíneadedatossecoloqueenunnivelalto,porloqueesposiblequenoseaposibleoperar(dependiendodesucargayconfiguración)deunamaneraenlaquepuedeapagareldispositivo,yaquehacerloindicaríaalcontroladordepuertoquealgoestámal,oqueningúndispositivoestáconectado.

El control se basa en paquetes

Los dispositivos en un bus USB deben anunciarse cuando se les pregunte (parte de la enumeración del bus) y, si no responde correctamente, los datos enviados al puerto no cambiarán realmente las patillas (el controlador simplemente enviará a su programa un código de error). ). Las clavijas USB se encuentran detrás de un controlador de bus / puerto y siguen un protocolo bastante elaborado. No es como un pin GPIO en un microcontrolador.

Además, si se comunica con éxito con el controlador de host USB, no podrá mantener la línea en un estado dedicado. Los datos se transmiten en paquetes (secuencias definidas) y el protocolo utiliza un esquema de codificación sin retorno a cero, que no es intrínsecamente automático. Para corregir esta limitación, los controladores USB imponen un esquema de limitación de longitud de ejecución (RLL) que limita el número de 0 o 1 'que pueden venir en una cadena ininterrumpida. Eso significa que incluso si envía todos los 1 al controlador USB, la línea no se mantendrá en ese estado ininterrumpido.

    
respondido por el DrFriedParts
1

En su descripción, el "transmisor de infrarrojos" secuestrado no califica para "el dispositivo USB" por una milla larga. Como entiendo el problema, usted desea encender y apagar la alimentación de este transmisor de infrarrojos usando una PC con puertos USB. Desafortunadamente, tu forma de pensar no es implementable. Si bien existen medios para controlar la alimentación del puerto VBUS en ciertos hosts y concentradores, el control está profundamente integrado en el controlador del controlador del host en el nivel del kernel y no es accesible desde el espacio del usuario. El uso de D + / D- enfrentará las mismas dificultades (hay modos de prueba USB que pueden activar y desactivar las líneas permanentemente, pero necesitan una pila de pruebas USB especial, que no tiene una interfaz de usuario programable).

Suponiendo que ha secuestrado el transmisor correctamente y funciona simplemente mediante el encendido y apagado, necesita un dispositivo USB real que tenga control sobre una señal GPIO, que se puede usar para controlar un transistor, o incluso directamente su dongle IR si el GPIO tiene suficiente potencia (20-30 mA supongo que será suficiente para simular la batería de la moneda encendido-apagado, pero necesita ser investigado).

Como ejemplo, esta placa de demostración ( MCP2221 ) tiene cuatro GPIOs disponibles (en Además de I2C y / o UART. (Incluso puede ser un pequeño DAC y ADC). La placa viene con un software de configuración y un controlador de host USB que permite alternar estos GPIO. El GPIO puede hundir o generar 25 mA de corriente a 3.3 V cuesta $ 20, es difícil superar este precio. Estoy seguro de que hay otros dispositivos de demostración que pueden hacer la misma función.

CORRECCIÓN: MCP2221A no puede conducir 25 mA a 3V, lo siento. Es probable que necesite un interruptor de transistor para controlar su dispositivo IR.

    
respondido por el Ale..chenski
0

He leído en varios lugares que las líneas de datos en USB son 3.3V?

Sí y no. Sí, se supone que tienen una señal entre 0 y 3.3V en ellos.

No, no pueden utilizarse como fuente de alimentación. Las líneas están ambas conectadas a tierra en el lado del host a través de una resistencia de 15 kOhm cada una. El host detectará un dispositivo conectado una vez que una línea de datos llegue a 3.3V con una resistencia de 1.5k.

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas