Intento flashear nuevo FW a un stm32 (tinySA classic), pero en un ordenador Windows 10 no responde, mientras que flashea correctamente el stm32 de tinySA ultra.. En otro ordenador con Windows7 flashea correctamente los dos. Chatgpt después de hacerme desinstalar controladores y diferentes pruebas, ha dado el siguiente diagnóstico reflejado en el informe técnico. Es cierto lo que dice o ha omitido comprobaciones?:
Limitación del flasheo DFU del TinySA Classic en Windows 10 Pro (versión 22H2)
El presente informe tiene como objetivo documentar el diagnóstico técnico realizado sobre la imposibilidad de flashear el dispositivo TinySA Classic mediante el mecanismo DFU (Device Firmware Upgrade) en sistemas Windows 10 Pro versión 22H2, aun disponiendo de los controladores y herramientas oficiales correctamente instalados.
2. Alcance
Este documento cubre:
La verificación del entorno del sistema operativo
El estado de los controladores USB y DFU
Las herramientas de programación utilizadas
Las pruebas cruzadas con otros equipos y dispositivos
El análisis de compatibilidad entre Windows 10 22H2 y el bootloader DFU del TinySA Classic
Quedan fuera de alcance los defectos de hardware, ya que han sido descartados durante el proceso de diagnóstico.
3. Entorno técnico verificado
Sistema operativo: Windows 10 Pro, versión 22H2
Arquitectura: x64
Dispositivo: TinySA Classic
Microcontrolador: STM32F103
Bootloader: DFU residente en ROM (DFU 1.1a – legacy)
Controlador DFU: STTub30 (STMicroelectronics)
Identificación en el sistema: “STM in DFU mode”
Herramientas utilizadas:
DfuSE Demo
dfu-util
4. Metodología de diagnóstico
El diagnóstico se ha llevado a cabo siguiendo una metodología estructurada que incluye:
Verificación de la correcta entrada del dispositivo en modo DFU
Confirmación de la instalación del controlador STTub30
Comprobación de la ausencia de filtros USB de terceros
Verificación de la inexistencia de software de virtualización o captura USB
Ejecución de pruebas DFU controladas con diferentes herramientas
Realización de pruebas cruzadas con otros equipos y dispositivos
5. Resultados observados
Durante los intentos de flasheo DFU del TinySA Classic se han observado de forma consistente los siguientes comportamientos:
Bloqueo persistente en el estado DFU_DNBUSY
Mensajes de error del tipo “Bad state machine in firmware”
Retorno de valores inválidos como 0xFFFFFFFF
Fallos sistemáticos durante las operaciones ERASE_PAGE y MASS_ERASE
Comportamiento idéntico independientemente de la herramienta DFU utilizada
6. Pruebas cruzadas
Las pruebas cruzadas han permitido descartar un problema de dispositivo o hardware:
El mismo TinySA Classic se ha flasheado correctamente en otro ordenador
En el sistema Windows 10 22H2 afectado, el TinySA Ultra se flashea sin incidencias
Esto confirma que el cableado, el puerto USB y el dispositivo son funcionales
7. Análisis técnico
El TinySA Classic utiliza un microcontrolador STM32F103, que incorpora un bootloader DFU legacy (DFU 1.1a) residente en ROM. Esta implementación utiliza comandos DFU extendidos que dependen de un comportamiento específico de la pila USB del sistema anfitrión.
Se ha identificado que Windows 10 Pro versión 22H2 presenta regresiones en su implementación de la pila USB que afectan a la comunicación con bootloaders DFU legacy, provocando errores de estado, bloqueos y fallos durante las operaciones de borrado y programación de la memoria flash.
Este comportamiento no se manifiesta con dispositivos que utilizan DFU moderno, como el TinySA Ultra, lo que explica la diferencia de resultados observada.
8. Conclusión
El sistema Windows 10 Pro versión 22H2 no es compatible de forma fiable con el proceso de flasheo DFU del TinySA Classic. El problema no es atribuible al dispositivo, a su firmware ni a una instalación incorrecta de controladores, y no puede resolverse mediante reinstalación de drivers, herramientas o limpieza adicional del sistema.
9. Recomendaciones
Se recomienda adoptar una de las siguientes soluciones:
Utilizar un ordenador en el que el flasheo del TinySA Classic ya se haya verificado como funcional
Utilizar sistemas Windows anteriores a la versión 21H2
Utilizar sistemas Linux para las operaciones DFU
Alternativamente, programar el dispositivo mediante la interfaz SWD utilizando un ST-Link
ANEXO A – DFU legacy vs DFU moderno
El DFU legacy corresponde al bootloader DFU residente en ROM en microcontroladores STM32 de primera generación, como el STM32F1. Esta implementación sigue la especificación DFU 1.1a y utiliza comandos extendidos que no siempre son compatibles con pilas USB modernas.
El DFU moderno, presente en familias STM32 más recientes, está diseñado para funcionar conjuntamente con herramientas actuales y pilas USB actualizadas, ofreciendo mayor robustez y compatibilidad con sistemas operativos modernos.
Las regresiones detectadas en Windows 10 22H2 afectan exclusivamente al DFU legacy, lo que explica por qué el TinySA Ultra no presenta este problema mientras que el TinySA Classic sí.