usa los teléfonos usb para controlar y alimentar directamente algo

0

Soy nuevo en este tema e hice mucha investigación pero no pude encontrar una solución a mi pregunta.

Lo que quiero hacer: Quiero conectar algo directamente (no quiero agregar un microcontrolador) a la ranura micro usb de mi teléfono para encenderlo y controlarlo (quiero usar la energía de mi teléfono para alimentar otra cosa). Usaré el voltaje de 5V que usb me puede dar (por lo que sé, tendré que usar un dispositivo compatible con USB OTG, pero ese no es el problema). Hasta ahora tan bueno. Lo que además quiero hacer son las siguientes dos cosas:

  1. Quiero controlar el poder.

1.a) ¿Hay alguna manera (para escribir una aplicación o ...) para que mi teléfono salga usb pwm?

1.b) No necesariamente necesito la velocidad rápida de pwm. Entonces, ¿hay alguna forma (para escribir una aplicación o ...) para encender y apagar la salida USB?

  1. ¿Puedo leer los datos entrantes mientras se encienden y pueden estar fuera del protocolo USB? Se supone que esto significa que: una vez que mi teléfono haya hecho su trabajo, quiero enviar una señal a la D y / o D + del cable USB para avisar al teléfono que debe dejar de suministrar energía. Esa señal no estará en el protocolo USB, sino que simplemente será un poco de voltaje. Para eso necesitaría poder leer directamente los ingresos de usb y controlar mi teléfono en base a eso. ¿Es eso posible? En pocas palabras: cuando quiero terminar de alimentar, puse un voltaje de, por ejemplo. 3.3 V en D- / D + y el teléfono se da cuenta de esto y apaga la alimentación. Así que las preguntas son:

2.a) ¿Puedo alimentar algo y leer datos a través del mismo usb al mismo tiempo?

2.b) ¿Puedo leer directamente los pines D-y D + y usarlos para controlar mi programa?

Muchas gracias.

    
pregunta Armin

2 respuestas

0

Es completamente posible. Simplemente muy, muy poco probable. La potencia de OTG a veces se maneja a través de una Unidad de administración de energía, o un controlador de potencia de OTG independiente. Algunos son accesibles a través de I2c u otros protocolos de bus, mientras que otros están integrados en el procesador principal. De cualquier manera, son manejados por el sistema operativo subyacente.

Podrías modificar su funcionamiento, pero requeriría hackeo y codificación en profundidad del sistema operativo, kernel, módulos, etc. Por ejemplo, algunos teléfonos Android tenían hardware compatible con OTG pero no estaban habilitados en el software. Algunos admiten OTG pero no se cargan mientras OTG. Algunos tenían hardware de radio FM pero no estaban habilitados en Estados Unidos. Todo lo que se necesitaba era cambios en el código. Una subestimación completa, por supuesto, El control de PWM puede ser factible, pero tendrá que trabajar mucho para resolverlo.

Un intermediario de microcontroladores sería más simple.

    
respondido por el Passerby
5
  

Quiero controlar el poder.

     

1.a) ¿Hay alguna forma (para escribir una aplicación o ...) para que mi teléfono salga usb pwm?

No.

  

1.b) No necesariamente necesito la velocidad rápida de pwm. Entonces, ¿hay alguna forma (para escribir una aplicación o ...) para encender y apagar la salida USB?

Muy poco probable.

  

¿Puedo leer los datos entrantes mientras se encienden y pueden estar fuera del protocolo USB? Se supone que esto significa que: una vez que mi teléfono haya hecho su trabajo, quiero enviar una señal a la D y / o D + del cable USB para avisar al teléfono que debe dejar de suministrar energía. Esa señal no estará en el protocolo USB, sino que simplemente será un poco de voltaje. Para eso necesitaría poder leer directamente los ingresos de usb y controlar mi teléfono en base a eso. ¿Es eso posible? En pocas palabras: cuando quiero terminar de alimentar, puse un voltaje de, por ejemplo. 3.3 V en D- / D + y el teléfono se da cuenta de esto y apaga la alimentación. Así que las preguntas son:

No.

  

2.a) ¿Puedo alimentar algo y leer datos a través del mismo usb al mismo tiempo?

No en la forma en que hablas, no.

  

2.b) ¿Puedo leer directamente los pines D y D + y usarlos para controlar mi programa?

No.

USB es USB. No puedes usarlo para nada excepto para USB.

Configura el tipo de dispositivo (HOST o DISPOSITIVO) configurando el pin USBID (pin 4) de la toma USB a la tensión correcta (GND o 5V [No recuerdo cuál es cuál está a la mano]). Luego, el teléfono habilita o deshabilita la alimentación desde el pin VBUS (pin 1).

Cualquier señalización se realiza luego utilizando LVDS en el par D + y D de acuerdo con la especificación del protocolo USB.

La única excepción a esto es cuando el teléfono está conectado a un puerto de solo carga donde el estado estático de los voltajes en D + y D- indica la corriente que puede proporcionar el cargador. Esto se hace (generalmente) en hardware.

Si desea hacer cualquier otra cosa a través del USB que no sea simplemente apagar la alimentación de su teléfono, deberá agregar un elemento activo que habla USB. Eso podría ser un microcontrolador o un chip USB discreto, como un FT232 o un dispositivo similar (hay muchas opciones diferentes sobre qué protocolos de IO e instalaciones se proporcionan en los diferentes chips, desde UART hasta SPI / I2C, en paralelo) .

    
respondido por el Majenko

Lea otras preguntas en las etiquetas