🛠 Alimenter et flasher la Blue Pill : BOOT0, port série, ST-Link et DFU
Alimentar sin dañar
La placa se alimenta con 5 V a través del micro-USB o del pin +5V, e incluye un LDO de 3,3 V (TX6211B, entrada 3,6–5,5 V, salida 3,3 V a 300 mA). Punto crítico confirmado por dos fuentes: «los pines +5V están conectados directamente al pin +5V del conector USB. No hay ninguna protección. No alimentar esta placa por USB y por una fuente de alimentación externa al mismo tiempo.»
Método 1 — El bootloader ROM por puerto serie (sin hardware de pago)
Todos los STM32 contienen un bootloader ROM capaz de flashear el chip vía USART, siempre que se pueda forzar el arranque desde la memoria del sistema — esta es la función del jumper BOOT0. El modo de arranque está definido por la tabla del manual de referencia de ST RM0008: BOOT0=0 → flash principal; BOOT0=1, BOOT1=0 → memoria del sistema (ROM); BOOT0=1, BOOT1=1 → SRAM.
Receta práctica:
- Colocar BOOT0 en la posición «download» (1), conectar un adaptador FTDI a PA9 (TX) / PA10 (RX) de USART1.
- Flashear a 115200 8n1 con
stm32flash:stm32flash -w blink.bin -v -g 0x0 /dev/ttyUSB0. - Volver a poner BOOT0 a 0 y reiniciar. La velocidad 921600 solo funciona en chips ST auténticos (las falsificaciones fallan — ver el tutorial de diagnóstico).
Método 2 — SWD con un ST-Link
El conector de 4 pines (3V3/PA13/PA14/GND) acepta ST-Link, J-Link, Black-Magic o DAPLink. Ejemplo: st-flash --reset write blink.bin 0x8000000. Es el método de respaldo cuando todo lo demás falla — mantenga siempre un medio SWD a mano antes de tocar el bootloader.
Método 3 — DFU USB con el bootloader comunitario
El bootloader STM32duino (derivado de maple-bootloader) añade la carga por USB DFU/serie, a cambio de 8 KB de flash; por lo tanto, los sketches arrancan en 0x8002000: dfu-util -a 1 -D sketch.bin -s 0x8002000:leave. Tenga cuidado con la trampa documentada: cambiar el bootloader puede inutilizar la placa si no puede volver a flashearla por otro medio (ST-Link, o modo bootloader serie vía UART1 — no el USB serie). La renumeración USB se realiza conectando brevemente D+ (PA12) a masa, lo cual depende de una resistencia de pull-up de aproximadamente 1,5 kΩ — a menudo ausente o mal calibrada en las placas baratas.
Otros tutoriales para esta placa
- Découvrir la Blue Pill : que trouve-t-on dans la boîte ?
- Premier programme Arduino sur la Blue Pill (core officiel stm32duino)
- Série, ADC et chasse aux contrefaçons : diagnostiquer sa Blue Pill
- Dompter l'USB natif de la Blue Pill : CDC, DFU et la résistance rebelle
- Passer au niveau supérieur : STM32CubeIDE, HAL et LL sur F103
- Firmware libre sur Blue Pill avec libopencm3 et OpenOCD