STM32F4 Black Pill: pinout, specifiche e configurazione IDE Arduino – 4

Spread the love

Questo articolo spiegherà come programmare i microcontrollori STM32F4 Black Pill. Può essere considerato il fratello maggiore della serie STM32F1, più potente e con tutte le caratteristiche della versione F1.

Black Pill STM32F4: pinout, specs, and Arduino IDE configuration
Black Pill STM32F4: pinout, specs, and Arduino IDE configuration

Una delle caratteristiche più interessanti della variante Black Pill di STM32 ha un bootloader ROM integrato che non può essere disabilitato o cancellato, e questo lo rende un modo infallibile per essere sempre in grado di recuperare il codice del tuo microcontrollore.

Ma ora iniziamo a esaminare la famiglia di microcontrollori STM32, quindi approfondiremo la serie STM32F4 e impareremo come utilizzarli/programmarli.

Dettagli SMT32

La famiglia STM32 di microcontrollori a 32 bit si basa sul processore Arm®  Cortex®-M.

Questi prodotti combinano prestazioni molto elevate, capacità in tempo reale, elaborazione del segnale digitale, funzionamento a bassa potenza/bassa tensione e connettività, pur mantenendo la piena integrazione e la facilità di sviluppo.

La gamma di microcontrollori STM32, basati su un core standard del settore, include un’ampia scelta di strumenti e software per supportare lo sviluppo dei progetti, rendendo questa famiglia di prodotti ideale per piccoli progetti e piattaforme end-to-end.

Qui la mia selezione di STM32 STM32F103C8T6 STM32F401 STM32F411 ST-Link v2 ST-Link v2 official

Specifiche

C’è un’ampia varietà di stm32; ecco una schematizzazione delle categorie principali.

STM32 family of 32bit microcontrollers categories
STM32 family of 32bit microcontrollers categories

Una classificazione più dettagliata può essere fatta con la decodifica del numero identificativo:

STM32F051R8
STM32xxwwyz

  • xx – Famiglia
  • ww – sottotipo: differisce nell’equipaggiamento delle periferiche e questo dipende da determinate famiglie
  • y – Numero pins
  • z – Dimensione memoria FLASH

Famiglia: [xx]

CodeCoreMax freq [MHz]Max FLASH [KB]Max SRAM [KB]Target
F0Cortex-M04825632Mainstream
F1Cortex-M372102496Mainstream
F2Cortex-M31201024128High performance
F3Cortex-M4F7251280Mainstream
F4Cortex-M4F1802048384High performance
G0Cortex-M0+6412836Mainstream
G4Cortex-M4F170512128Mainstream
F7Cortex-M7F2162048512High performance
H7Cortex-M7F48020481024High performance
WBCortex-M4F641024256Wireless
WLCortex-M44825664Wireless
L0Cortex-M0+3219220Ultra-low-power
L1Cortex-M33251280Ultra-low-power
L4Cortex-M4F801024320Ultra-low-power
L4+Cortex-M4F1202048640Ultra-low-power
L5Cortex-M33F110512256Ultra-low-power
U5Cortex-M33F1602048786Ultra-low-power

Numero pin [y]

CodeNumber of pins
A169
B208
C48
F20
G28
H40
I176
J8/72
K32
M81
N216
Q132
R64
T36
U63
V100
Z144

Dimensione memoria FLASH [z]

CodeFLASH size [KB]
416
632
864
B128
Z192
C256
D384
E512
F768
G1024
H1536
I2048

STM32F4 details

Serie STM32F4 di MCU ad alte prestazioni con istruzioni DSP e FPU

La serie di MCU STM32F4 basati su ARM®  Cortex®-M4 sfrutta la tecnologia NVM di ST e ART Accelerator™ per raggiungere i punteggi di benchmark più alti del settore per i microcontrollori basati su Cortex-M con un massimo di 225 DMIPS/608 CoreMark in esecuzione da memoria Flash con frequenza operativa fino a 180 MHz.
Con la scalabilità dinamica della potenza, il consumo di corrente in esecuzione da Flash varia da 89 µA/MHz sull’STM32F410 fino a 260 µA/MHz sull’STM32F439.
La serie STM32F4 è composta da otto linee di prodotti compatibili di controller di segnale digitale (DSC), una perfetta simbiosi tra le capacità di controllo in tempo reale di un MCU e le prestazioni di elaborazione del segnale di un processore di segnale digitale (DSP):

  • Advanced lines : 
    • CPU da 180 MHz/225 DMIPS, fino a 2 Mbyte di memoria flash dual-bank con SDRAM e Chrom-ART Accelerator™
      • STM32F469/479  – Interfaccia Quad-SPI, controller LCD-TFT e interfaccia MPI-DSI
      • STM32F429/439  – Controller LCD-TFT
      • STM32F427/437  – interfaccia audio seriale, maggiori prestazioni e minor consumo di energia statica
  • Foundation lines:
    • STM32F446  – 180 MHz/225 DMIPS, fino a 512 Kbyte di memoria Flash con doppia interfaccia Quad-SPI e SDRAM
    • STM32F407/417  – CPU da 168 MHz/210 DMIPS, fino a 1 Mbyte di memoria Flash aggiungendo MAC Ethernet e interfaccia della fotocamera
    • STM32F405/415  – CPU 168 MHz/210 DMIPS, fino a 1 Mbyte di memoria Flash con connettività e crittografia avanzate
  • Access lines:  I microcontrollori entry-level della  serie STM32F4 !
    • CPU a 84 MHz/105 DMIPS, la soluzione più piccola ed economica con un’eccezionale efficienza energetica (Dynamic Efficiency™)
      • STM32F401 –  Meno di 3 x 3 mm con interfacce USB 2.0FS OTG e SDIO
    • CPU da 100 MHz/125 DMIPS, eccezionale efficienza energetica (Dynamic Efficiency™) e Batch Acquisition Mode (BAM), un nuovo consumo energetico intelligente per l’ottimizzazione DMA per il batching dei dati
      • STM32F410 –  Nuova pietra miliare nell’eccezionale efficienza energetica (89 µA/MHz e 6 µA in modalità Stop), generatore di numeri casuali reali, timer a bassa potenza e DAC. 
      • STM32F411 –  Alta densità di RAM e set di periferiche avanzate come USB 2.0FS OTG e fino a 5 interfacce SPI.
      • STM32F412  – Elevata densità di memoria RAM e Flash, interfaccia USB e set di periferiche avanzato che include un controller di memoria statica esterna flessibile con bus dati fino a 16 bit per LCD e controllo della memoria esterna, Quad-SPI dual-mode, CAN, DFSDM e TRNG.
      • STM32F413/F423  – Estende le funzionalità dell’STM32F412 con una maggiore densità di memoria RAM e Flash e un set di periferiche migliorato che include 10 UART, 3 CAN, interfaccia SAI, un timer a bassa potenza, 2 DAC, 2 DFSDM con un massimo di 6 filtri. L’STM32F423 include la crittografia AES.
STM32F4xx comparison table
STM32F4xx comparison table

Piedinatura

Il modello F401 è uno tra I più diffusi, considerando anche il costo molto accessibile.

STM32 STM32F401 STM32F401CCU6 pinout low resolution
STM32 STM32F401 STM32F401CCU6 pinout low resolution

WeAct STM32F401CCU6 Black-Pill: piedinatura ad alta risoluzione e specifiche

Sicuramente più performante la versione 411, che dispone anche di un SPI, timer e I2S in più.

STM32 STM32F411 STM32F411CEU6 pinout low resolution
STM32 STM32F411 STM32F411CEU6 pinout low resolution

È importante notare i pin 10 e 41 che F411 non è tollerante a 5V (controlla il colore rosso del quadrato).

WeAct STM32F411CEU6 Black-Pill: piedinatura ad alta risoluzione e specifiche

La tolleranza a 5V è una delle caratteristiche più importanti di queste serie F4xx.

Arduino STM32 di STMicroelectronics

Dobbiamo aggiungere il descrittore URL al nostro IDE Arduino.

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

Vai su File -> Preferenze e aggiungi l’URL su “Additional Boards Manager URLs”.

Arduino IDE add Arduino STM32 URL descriptor
Arduino IDE adds Arduino STM32 URL descriptor.


Quindi devi aggiungere una nuova scheda al Boards Manager

Select board manager

Le schede da selezionare sono schede basate su MCU STM32.

Arduino IDE select STM32 MCU official based boards
Arduino IDE selects STM32 MCU official-based boards

Ora puoi scegliere il dispositivo specifico:

Arduino IDE Arduino SMT official select stm32f4 board series
Arduino IDE Arduino SMT official select stm32f4 board series

Ora selezioneremo la scheda specifica.

Arduino IDE: Arduino SMT official, select specified stm32f401cc board
Arduino IDE: Arduino SMT official, select specified stm32f401cc board

Come già detto, questi dispositivi hanno già caricato un bootloader DFU, quindi puoi usare l’USB per programmare e devi selezionare il bootloader DFU.

STM32 Arduino IDE select Upload with DFU Bootloader
STM32 Arduino IDE select Upload with DFU Bootloader

Per utilizzare Serial per eseguire il debug del codice, è necessario selezionare"USB support (if It's available): "CDC (generic 'Serial' supersede U(S)ART)"

STM32 Arduino IDE select: CDC generic 'Serial' supersede U(S)ART
STM32 Arduino IDE select: CDC generic ‘Serial’ supersede U(S)ART

Installare l’STM32CubeProgrammer

Per funzionare, è inoltre necessario installare l’STM32CubeProgrammer rilasciato da STMicroelectronics.

Puoi scaricarlo da qui .

Seleziona la modalità di avvio

Metti questo dispositivo in modalità di avvio:

  • tenere premuto il pulsante BOOT0;
  • premere il pulsante NRST;
  • rilascio NRST;
  • rilasciare BOOT0.

Ora hai solo il led rosso PWR.

Il mio dispositivo ha un led LED su PA13.

/*
  Blink for STM32F4

  Turns an LED on for one second, then off for one second, repeatedly.

  http://www.mischianti.org
*/

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(115200);

//  while (!Serial) {
//    ; // wait for serial port to connect. Needed for native USB port only
//  }
  Serial.println(F("Serial OK!"));

  pinMode(PC13, OUTPUT);
}

void loop() {
  digitalWrite(PC13, HIGH);
  Serial.println(F("HIGH!"));
  delay(1000);
  digitalWrite(PC13, LOW);
  Serial.println(F("LOW!"));
  delay(1000);
}

Ora avvia il caricamento.

      -------------------------------------------------------------------
                       STM32CubeProgrammer v2.9.0                  
      -------------------------------------------------------------------



USB speed   : Full Speed (12MBit/s)
Manuf. ID   : STMicroelectronics
Product ID  : STM32  BOOTLOADER
SN          : 31A035713237
FW version  : 0x011a
Board       : --
Device ID   : 0x0433
Device name : STM32F401xD/E
Flash size  : 8 MBytes (default)
Device type : MCU
Revision ID : --  
Device CPU  : Cortex-M4



Memory Programming ...
Opening and parsing file: sketch_feb22a.ino.bin
  File          : sketch_feb22a.ino.bin
  Size          : 24296 Bytes
  Address       : 0x08000000 


Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 1]
erasing sector 0000 @: 0x08000000 done
erasing sector 0001 @: 0x08004000 done
Download in Progress:


File download complete
Time elapsed during download operation: 00:00:01.101

RUNNING Program ... 
  Address:      : 0x8000000
Start operation achieved successfully


Se tutto è ok, il tuo LED C13 inizia a lampeggiare e come per magia è apparsa una nuova porta seriale, per me è COM12.

STM32 STM Serial DFU bootloader with Serial declaration
STM32 STM Serial DFU bootloader with Serial declaration

Al collegamento del monitor seriale alla porta COM, ottieni questo risultato:

Serial OK!
HIGH!
LOW!
HIGH!
LOW!
HIGH!
LOW!
HIGH!
LOW!
HIGH!

Grazie

  1. STM32F1 Blue Pill: piedinatura, specifiche e configurazione IDE Arduino (STM32duino e STMicroelectronics)
  2. STM32: programmazione (STM32F1) via USB con bootloader STM32duino
  3. STM32: programmazione (STM32F1 STM32F4) tramite USB con bootloader HID
  4. STM32F4 Black Pill: pinout, specifiche e configurazione IDE Arduino
  5. STM32: ethernet w5500 standard (HTTP) e SSL (HTTPS)
  6. STM32: ethernet enc28j60 standard (HTTP) e SSL (HTTPS)
  7. STM32: WiFiNINA con un ESP32 come WiFi Co-Processor
    1. STM32F1 Blue-pill: shield WiFi (WiFiNINA)
    2. STM32F4 Black-pill: shield WiFi (WiFiNINA)
  8. Come utilizzare la scheda SD con l’stm32 e la libreria SdFat
  9. STM32: memoria flash SPI FAT FS
  10. STM32: RTC interno, sistema orario e backup batteria (VBAT)
  11. STM32 LoRa
  1. STM32 Risparmio energetico
    1. STM32F1 Blue-Pill gestione clock e frequenza
    2. STM32F4 Black-Pill gestione clock e frequenza
    3. Introduzione e framework Arduino vs STM
    4. Libreria LowPower, cablaggio e Idle (STM Sleep).
    5. Sleep, deep sleep, shutdown e consumo energetico
    6. Sveglia da allarme RTC e Seriale
    7. Sveglia da sorgente esterna
    8. Introduzione al dominio di backup e conservazione delle variabili durante il RESET
    9. Registro di backup RTC e conservazione della SRAM
  1. STM32 invia email con allegati e SSL (come Gmail): w5500, enc28j60, SD e SPI Flash
  2. Server FTP su STM32 con W5500, ENC28J60, scheda SD e memoria flash SPI
  3. Collegamento dell’EByte E70 ai dispositivi STM32 (black/blue pill) e un semplice sketch di esempio

Spread the love

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *