6 votos

STM32 USB: detección de conexión y desconexión

Utilizando el ejemplo del controlador de almacenamiento masivo USB STM32F4 en modo dispositivo, ¿cómo se detectan las conexiones y desconexiones con un controlador host?

Traté de sondear el estado del pin VBUS sin embargo, podría ser alta de un adaptador de pared o de alta sin ningún tipo de comunicación con el host.

¿Hay algún registro para comprobarlo? Me fijé en DSTS (status supongo) en los structs de la librería USB pero no pude encontrar su documentación ni ningún comentario útil en el código.

0 votos

Lleve esta pregunta al foro de STM, envíe un correo electrónico a su servicio técnico. ¿Se trata de un PCB personalizado con STM32 en él, o un descubrimiento / otra tarjeta de desarrollo?

0 votos

Ver la actividad del bus USB sería una pista fuerte.

0voto

Buğra Varol Puntos 23

En mi proyecto, estoy usando los callbacks que se inicializan / registrados en la siguiente estructura:

typedef struct _USBD_CDC_Itf
{
  int8_t (* Init)(void);   // <- triggered on connection
  int8_t (* DeInit)(void); // <- triggered on disconnection

  int8_t (* Control)(uint8_t cmd, uint8_t *pbuf, uint16_t length);
  int8_t (* Receive)(uint8_t *Buf, uint32_t *Len);
  int8_t (* TransmitCplt)(uint8_t *Buf, uint32_t *Len, uint8_t epnum);
} USBD_CDC_ItfTypeDef;

-2voto

Martin R-L Puntos 2300

La respuesta es muy sencilla. Igual que has probado con VBUS, prueba con DSTS, ¡y a ver qué pasa! Buena suerte.

4 votos

Esto apenas es una respuesta. La pregunta afirma que el DSTS no está claramente documentado. ¿Tiene alguna idea que añadir? ¿O está sugiriendo simplemente registrar el valor para ver qué ocurre, sin molestarse en entender lo que representa?

0 votos

Es de suponer que @Guill se refiere a esto: "Bit0 SUSPSTS:Suspendstatus En modo dispositivo, este bit se activa mientras se detecta una condición de Suspender en el USB. El núcleo entra en estado Suspendido cuando no hay actividad en las líneas de datos USB durante un periodo de 3 ms. El núcleo sale de la suspensión: - Cuando hay una actividad en las líneas de datos USB".

0 votos

Estoy de acuerdo, sin embargo, como profesional luchando con este horrible núcleo USB y la documentación asociada, esto es innecesariamente burlón.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X