¿Cuál es el mecanismo de detección de hardware y software de los dispositivos Micro USB del teléfono celular conectados y desconectados?

0

¿Cuál es el mecanismo de detección de hardware y software del dispositivo móvil Android con dispositivos Micro USB conectados y desconectados?

simular este circuito : esquema creado usando CircuitLab

  • Esquema de hardware

Fig1esmiborradordesolicitud,ymásdetallessonlossiguientes:

  1. MiteléfonoescompatibleconlafunciónOTGyestáhabilitado
  2. Comoseveenlaimagen,midispositivohaconectadoelpindeidentificaciónalsueloparaobtenerlapotenciade5V.
  3. ConectoelpinDa5Vparaqueledigaalteléfonoqueesteesundispositivodebajavelocidad.
  4. Tengounaaplicacióninstaladaenmiteléfonoparasupervisarsihayundispositivoconectado.

      

    MidispositivonoesundispositivoUSBestándar,nousoelpinD+/Dparacomunicarmeconelteléfono

Enmipuntodevista,tanprontocomoeldispositivoseenchufó,enprimerlugar,elpindeidentificacióndelreceptáculomicroUSBsecaey,porlotanto,ledicealteléfonoquehayuncomplementodeldispositivoyqueeldispositivofuncionacomoHOST./p>

entonces,¿alguienqueestéfamiliarizadoconelprocesodedetección?

SubolafotodelaplacaPCBparaquepuedaverclaramentemisituación.

  

actualización: he medido la salida de VBUS cuando inserto el dispositivo, y el VBUS = 5V, también como indicador de alimentación hay un LED montado en la PCB, funciona bien.

Última pregunta: ¿si mi conexión de hardware es correcta? y luego, ¿alguien puede darme algunas instrucciones sobre el código del software?

    
pregunta lukeluck

2 respuestas

1

El OTG heredado simplificado funciona de la siguiente manera.

Estado inicial: El dispositivo / host OTG (en este caso, el teléfono) tiene el pin de ID levantado, esto es correcto. VBUS está inactivo, sin suministro de tensión. ID = ALTO, VBUS = bajo.

CASO 1: hay un cable enchufado en el extremo u-B; el otro extremo es el conector tipo A, que se conecta al host USB (PC, por ejemplo). En el conector u-B, el pin de ID está flotando. El teléfono detecta dos condiciones: ID = ALTA, VBUS = ALTA (el host de PC normal suministra VBUS). El teléfono convierte su pila de software en modo de dispositivo , lleva D + hasta 3.3V con una resistencia de 1.5k, y el host de la PC ve el teléfono como un dispositivo de almacenamiento masivo (a la antigua) o MTP - dispositivo de protocolo de transferencia de medios.

CASO 2: hay un cable con el pin ID conectado a tierra. El teléfono detecta ID = LOW, y VBUS = no importa, normalmente también está bajo. Esto hace que el teléfono cargue la pila de software del host USB, que activará el VBUS y actuará como un host USB normal. Si el otro extremo de un cable está conectado a un dispositivo, levantará el cable D que corresponde a la velocidad básica del dispositivo.

En teoría, el receptáculo del teléfono se supone que es de estilo micro-AB, y el cable en el caso 2 debe tener una carcasa tipo micro-A (rectangular). Pero esto es confuso para los clientes, y la mayoría de los fabricantes recurren al uso del receptáculo u-B. El intercambio OTG se realiza mediante un conector micro-B ilegal, con un pin de identificación con conexión a tierra ilegal.

En realidad, en CASE1 hay un paso para identificar la firma del cargador antes de que ocurra la conexión de datos, pero este es un tema diferente.

Así que, básicamente, lo hiciste bien.

    
respondido por el Ale..chenski
0
  

Conecto el pin D a 5 V para que le diga al teléfono que este es un dispositivo de baja velocidad.

Mala idea. Los pines de datos en realidad solo pueden alcanzar un máximo de 3,6 voltios. Se supone que debes conectar el resistor 1k5 a una fuente de 3.3V.

  

tan pronto como el dispositivo se haya enchufado, en primer lugar, el pin de identificación del receptáculo micro USB se cae y, por lo tanto, le dice al teléfono que hay un dispositivo

Correcto.

  

y el dispositivo funciona como HOST.

No. La resistencia en D + o D- está en el lado del DISPOSITIVO. Se supone que el lado del host debe bajar ambas líneas de datos con aproximadamente 15kOhms.

  

Tengo una aplicación instalada en mi teléfono para supervisar si hay un dispositivo conectado

Esa aplicación no recibirá nada a menos que me esté perdiendo algo.

Se puede observar una conexión de dispositivo no conforme en la salida dmesg del kernel de Linux, pero la aplicación solo sería notificada cuando el dispositivo se identificara a través de USB (descriptores de envío).

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas