🛠 Alimenter et flasher la Blue Pill : BOOT0, port série, ST-Link et DFU
Alimenter sans casser
La carte se nourrit de 5 V par le micro-USB ou la broche +5V, et embarque un LDO 3,3 V (TX6211B, entrée 3,6–5,5 V, sortie 3,3 V sous 300 mA). Point critique confirmé par deux sources : « les broches +5V sont connectées directement à la broche +5V du connecteur USB. Il n'y a aucune protection. Ne pas alimenter cette carte par USB et par une alimentation externe en même temps. »
Méthode 1 — Le bootloader ROM par port série (zéro matériel payant)
Tous les STM32 contiennent un bootloader ROM capable de flasher la puce via USART, à condition de pouvoir forcer le boot depuis la mémoire système — c'est le rôle du jumper BOOT0. Le mode boot est défini par la table du manuel de référence ST RM0008 : BOOT0=0 → flash principal ; BOOT0=1, BOOT1=0 → mémoire système (ROM) ; BOOT0=1, BOOT1=1 → SRAM.
Recette pratique :
- Placer BOOT0 sur la position « download » (1), brancher un adaptateur FTDI sur PA9 (TX) / PA10 (RX) de USART1.
- Flasher à 115200 8n1 avec
stm32flash:stm32flash -w blink.bin -v -g 0x0 /dev/ttyUSB0. - Remettre BOOT0 à 0 et réinitialiser. Le 921600 ne fonctionne que sur les vraies puces ST (les contrefaçons échouent — voir le tuto diagnostic).
Méthode 2 — SWD avec un ST-Link
Le connecteur 4 broches (3V3/PA13/PA14/GND) accepte ST-Link, J-Link, Black-Magic ou DAPLink. Exemple : st-flash --reset write blink.bin 0x8000000. C'est la méthode de secours quand tout le reste échoue — gardez toujours un moyen SWD sous la main avant de toucher au bootloader.
Méthode 3 — DFU USB avec le bootloader communautaire
Le bootloader STM32duino (dérivé de maple-bootloader) ajoute le téléversement USB DFU/série, au prix de 8 Ko de flash ; les sketches démarrent donc à 0x8002000 : dfu-util -a 1 -D sketch.bin -s 0x8002000:leave. Attention au piège documenté : changer le bootloader peut rendre la carte inutilisable si vous ne pouvez pas re-flasher par un autre moyen (ST-Link, ou mode bootloader série via UART1 — pas l'USB série). La renumérotation USB se fait en plaissant brièvement D+ (PA12) à la masse, ce qui repose sur une résistance de pull-up d'environ 1,5 kΩ — souvent absente ou mal calibrée sur les cartes bon marché.
Autres tutoriels pour cette carte
- 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