STM32F4 tomando 2 minutos para ingresar a DFU

1

En este momento estamos teniendo problemas para que nuestro dispositivo (STM32F405ZGT6) ingrese al modo DFU, o más bien, podemos ingresarlo, pero siempre tardan un poco más de 2 minutos en aparecer.

Tenemos un interruptor de botón en la placa para ingresar a DFU. Si suelta el interruptor en cualquier momento antes de los 2 minutos, se iniciará en la memoria de la aplicación.

Cuando finalmente ingresa al modo DFU, se comporta como se espera.

Curiosamente, esto solo funcionará en Mac.

Intentando lo mismo en Windows, manteniendo presionado el botón mientras reinicia la alimentación, Windows detectará de inmediato un 'dispositivo desconocido' incluso después de instalar los controladores incluidos en la carpeta de la aplicación de demostración Dfuse. Intentar instalar manualmente el controlador en este 'dispositivo desconocido' y luego devolverá 'el dispositivo no puede iniciarse'.

También hemos implementado una rutina de "saltar al cargador de arranque" dentro de nuestra aplicación principal, que apaga varias cosas antes de saltar al cargador de arranque interno. El uso de este método en Windows traerá el mensaje 'dispositivo desconocido conectado' en Windows. Usando este método en Mac, nunca se detecta nada.

¿Cómo puedo hacer que los controladores del dispositivo ingresen al modo DFU de manera oportuna en nuestro STM32F4?

    
pregunta Brad Holland

1 respuesta

4

Asegúrese de que no esté usando el mismo par VID: PID que el cargador de arranque. Esto confundiría a los sistemas operativos dando como resultado una asignación de controlador incorrecta.

  

También hemos implementado una rutina de 'saltar al cargador de arranque' dentro de nuestra aplicación principal, que apaga varias cosas antes de saltar al cargador de arranque interno

Desea desconectar el bus USB correctamente antes de saltar al cargador de arranque. El método más sencillo es reconfigurar los pines USB en modo GPIO y conducirlos con una salida baja durante un segundo, luego iniciar el cargador de arranque.

Ahora el sistema operativo verá un dispositivo nuevo una vez que el cargador de arranque vuelva a activar el USB, ya que un segundo con ambas líneas de datos del bus inactivas se detectó como eliminación del dispositivo.

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas