🛠 Alimenter et flasher la Blue Pill : BOOT0, port série, ST-Link et DFU

STM32F103 "Blue Pill" (STM32F103C8T6) · debutant · Les trois méthodes de programmation (ROM série, SWD, DFU USB), le rôle des jumpers BOOT0/BOOT1 et les précautions d'alimentation.

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:

  1. Colocar BOOT0 en la posición «download» (1), conectar un adaptador FTDI a PA9 (TX) / PA10 (RX) de USART1.
  2. Flashear a 115200 8n1 con stm32flash: stm32flash -w blink.bin -v -g 0x0 /dev/ttyUSB0.
  3. 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

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales