🛠 Série, ADC et chasse aux contrefaçons : diagnostiquer sa Blue Pill
Le port série utile : USART1
Sur la Blue Pill, la prise micro-USB n'est reliée à aucun convertisseur USB-série : Serial (USB) n'existe pas sans stack USB. Le chemin le plus simple est USART1 sur PA9 (TX) / PA10 (RX), le même port que le bootloader ROM. Un adaptateur FTDI 3,3 V dessus donne une console 115200 8n1 gratuite. Le F103 dispose de trois USART (USART1–USART3), de deux SPI, de deux I2C et d'un contrôleur CAN, selon la table de brochage de la variante officielle du core Arduino.
Les ADC 12 bits (et l'absence de DAC)
Le chip embarque ADC1 + ADC2, deux convertisseurs 12 bits (entrées PA0..PA7 entre autres), pilotés côté Arduino par analogRead ; la variante officielle mentionne explicitement « No DAC » : pour une sortie analogique, il faudra un PWM + filtre RC ou un circuit externe (type MCP4725 sur I2C). Le F103 possède aussi un contrôleur DMA 7 canaux et 7 timers (revendiqués par le wiki land-boards).
Votre puce est-elle vraie ?
Wikipedia est catégorique : « malheureusement, la plupart des cartes blue pill contiennent désormais un faux STM32 chinois ». Le wiki Greaseweazle entretient une « Rogues' Gallery » des contrefaçons vendues comme STM32F103C8, avec des signatures de panne très concrètes :
- programmation impossible au débit 921600 (mais 115200 passe) ;
- impossible de démarrer le firmware depuis le System Bootloader ;
- l'I2C refuse d'accepter CR1_ACK dans la même écriture que CR1_PE ;
- le DMA génère des interruptions de fin parasites et se bloque ;
- couper l'horloge du domaine sauvegardé plante la puce ;
- certaines clones corrigent l'Erratum 2.3 des vraies puces (lecture des registres de debug) — ce qui devient en soi une astuce de détection.
Le projet Greaseweazle fournit un firmware de diagnostic « Blinky » qui tourne sur des cartes classe Blue Pill et fait le tri en quelques secondes.
Pourquoi ça compte
Un clone GD32F103 légitime (GigaDevice, ligne Cortex-M3 introduite en 2013) fonctionnera souvent bien ; une contrefaçon marquée ST se comportera mal aux marges (débits élevés, DMA, domaines de configuration). Testez chaque carte neuve avant de l'intégrer dans un projet, et gardez le 115200 comme débit série par défaut.
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)
- Alimenter et flasher la Blue Pill : BOOT0, port série, ST-Link et DFU
- 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