¿Cómo sé si debo usar la detección VBUS en STM32?

Tengo un esquema que se ve así.

ingrese la descripción de la imagen aquí

Y me pregunto si necesito detección VBUS en mi STM32. Porque planeo usar los +5V del USB para alimentar el STM32 y también tener comunicación (D+, D-) con la computadora y el STM32. ¿Es eso posible incluso si enciendo el STM32 con alimentación USB?

De acuerdo con la hoja de datos de detección de detección VBUS de ST. Dicen que si el dispositivo USB está alimentado por bus, entonces no necesito detección VBUS. ¿Es mi STM32 el dispositivo USB o qué?

Supongamos que estoy usando la detección VBUS, ¿ para qué debería servir?

¿Debo conectar VBUS directamente a PA9 (con un divisor de voltaje) y dejarlo flotar? ¿Sin conexión y sin configuración de CubeMX?

Mi STM32 es de la serie STM32F373.

ingrese la descripción de la imagen aquí

Necesita detección de Vbus si su dispositivo es capaz de continuar funcionando sin un USB conectado (por lo que tiene su propia fuente de alimentación separada de la entrada USB) Y su dispositivo necesita saber cuándo se ha desconectado el cable USB. Si su dispositivo solo está alimentado por USB, o no le importa si el cable está desenchufado, entonces probablemente no necesite la detección Vbus.
@brhans ¡Gracias! Entonces, el STM32 tiene un pin especial, llamado PA9. Y cuando eso llegó a 3.3-4.0V, ¿entonces el STM32 sabe que "Ahora el USB está conectado"? ¿Sin configuración en CubeMX? ¿Simplemente dejar que PA9 se conecte a VBUS?
SIEMPRE debe usar la detección VBUS en cualquier dispositivo USB. Si el dispositivo está alimentado por bus, este requisito se cumple automáticamente. De lo contrario, DEBE usar algún tipo de sentido VBUS para activar la activación prematura en D +.
@Ale..chenski Tengo una resistencia de 1,5 kOhm en D+ y mi dispositivo USB funciona con bus. En otras palabras, estoy usando VBUS para alimentar mi STM32.
Todavía puede haber problemas si su dispositivo tarda mucho en arrancar y USB SIE no está listo para la comunicación por un tiempo. Si su pull-up proviene de VBUS de inmediato, el host podría intentar enumerar su dispositivo y fallará, luego marque el puerto como "muerto".
Okej. No sé. No he hecho esto antes. Acabo de seguir el propio manual AN4879 de ST con un ejemplo en el que VBUS alimenta el dispositivo STM32 y el dispositivo STM32 tiene comunicación con la computadora.

Respuestas (1)

Debe realizar una detección VBUS si tiene otra fuente de alimentación.

Si su dispositivo solo está alimentado por bus, todo lo que podría decirle es que no tiene energía, pero la MCU tampoco está funcionando en este punto, porque no tiene energía.

Si tiene una fuente de alimentación separada, debe restablecer las máquinas de estado USB (y posiblemente alguna otra lógica) cuando VBUS desaparece, porque para una expulsión sorpresa, no se envía ningún cambio de configuración, pero en la reconexión, su dispositivo debe estar inactivo antes está enumerado y configurado.

¿Y PA9 es el pin para restablecer la lógica USB? ¿Sin configuración en CubeMX?
La detección VBUS está fijada a este pin y siempre conectada. Debe tener cuidado de no asignarle ninguna otra función, especialmente una que use enrutamiento de función alternativa, y necesita un divisor de voltaje para mantenerse dentro de las clasificaciones máximas si la MCU no tiene alimentación, pero VBUS es +5V.
¿PA9 tiene algún tipo de secuencia de inicio? Cuando tiene alto voltaje (3.3V), le dice al STM32 que se puede usar el USB. En este caso, mi periférico USB es FS en mi STM32.