STM 32 Nucleo – Supporto Arduino Core

E da tempo che mi ero ripromesso di utilizzare le schede STM32 Nucleo, desideravo svilupparne alcuni moduli didattici, ma la mia attenzione era rivolta verso altre tecnologie, fortunatamente lincontro dellamico Giuseppe Treccarichi e la chiacchierata con gli ingegneri di ST (molto gentili e disponibili) durante la recente MakerFaire di Roma mi hanno convinto che spiegare anche l’uso di STM 32 Nucleo pu essere un valore aggiunto per i miei allievi, pertanto mi sto dedicando da qualche giorno alla realizzazione di lezioni sull’uso di queste schede.

La linea ST32 Nucleo ormai sul mercato da lungo tempo, venne presentata nel 2014, per recentemente ST ha reso disponibile lArduino Core ST32 che permette la programmazione di diverse schede ST32 Nucleo mediante lIDE di Arduino, inoltre il processore a 32 bit, le velocit elevate (nella versione da me posseduta un Cortex-M4 a 85 MHz), il basso costo (circa 10 Euro) la rendono una piattaforma estremamente interessante per i miei studenti.
Le varie schede disponibili, di cui trovate una grafica nellimmagine che segue, supportano comunicazioni di tipo: SPI, I2C, USB-OTG, CAN, UART.

Come si evince dall’immagine possiamo distinguere 3 serie:

  • Serie L: Ultra low power a 32 pin
  • Serie F fino a F3: Mainstream da 32 a 64 pin
  • Serie F4 fino a F7: High performance con processore che va dagli 85 Mhz ai 216 Mhzda 64 a 144 pin

ST mette a disposizione diverse shield con molte funzionalit: controllo motori, WiFi, Bluetooth LE, RFID, GPS, sensori di prossimit e molto altro. Di seguito link alla pagina di riferimento delle ST Exspansion Board

La scheda compatibile con gli shield disponibili per Arduino, con possibilit di aggiungerne di nuovi autocostruiti.

Come probabilmente molti sapranno le schede ST32 Nucleo sono compatibili mbed la piattaforma software open source che ne permette la programmazione, ma certamente avere a disposizione lIDE Arduino probabilmente amplia la diffusione della scheda tra quanti conoscono gi lutilizzo di Arduino e vogliono avvicinarsi al mondo ST, lidea, a livello didattico e quella di partire dallIDE Arduino per giungere ad IDE pi evoluti come mbed.

La scheda costituita da due parti:

  1. un programmatore ST-Link, utilizzato per caricare il firmware sul microcontrollore della scheda o su altri microcontrollori esterni e permette il debugging;
  2. una scheda di sviluppo su cui collocato il microcontrollore.

Come possibile vedere nell’immagine che segue, l’ST-Link si presenta come scheda separata che pu essere staccata da quella del microcontrollore, vi consiglio comunque di non staccare l’ST-Link altrimenti non riuscirete a comunicare con il PC.

Il Microcontrollori costituito da connettori compatibili con la piedinatura dellArduino UNO R3 e connettori per le schede ST chiamate Morpho da cui potete accedere a tutti i pin del microcontrollore.

Caratteristiche del microcontrollore

  • STM32F411RET6 in LQFP64 package
  • ARM32-bit Cortex-M4 CPU con FPU
  • 100 MHz massima frequenza della CPU
  • VDD da 1.7 V a 3.6 V
  • 512 KB Flash
  • 128 KB SRAM
  • GPIO (50) con possibilit di interrupt esterno
  • 12-bit ADC con 16 canali
  • RTC
  • Timers (8)
  • I2C (3)
  • USART (3)
  • SPI (5)
  • USB OTG piena velocit
  • SDIO

Caratteristiche Nucleo

  • Due tipi di estensioni
    • Connettivit Arduino Uno Revision 3
    • Connettivit STMicroelectronics Morpho per un accesso pieno a tutti gli I/O dell’ STM32
  • On-board ST-LINK/V2-1 debugger/programmer con connettore SWD
    • Possibilit di selezione solo il funzionamento dell’ST-LINK/V2-1
  • Alimentazione “flessibile”
    • USB VBUS o sorgente esterna (3.3 V, 5 V, 7 – 12 V)
    • Power management access point
  • LED utente (LD2)
  • Due pulsanti: USER e RESET
  • USB re-enumeration capability: tre differenti funzioni supportate dalla USB:
    • COM port virtuale
    • Mass storage (USB Disk drive) per la programmazione drag’n’drop
    • Debugging

Pin out

Compatibilit Arduino

Collegamenti Morpho

Supporto Arduino core per per schede STM32

Laggiunta di nuove schede allinterno dellIDE di Arduino richiede pochi e semplici passi, la procedura dettagliata di seguito pu essere usata anche per altre tipologie di schede elettroniche.

Sul sito Arduino trovate una pagina specifica che spiega come usare il Boards Manager, seguite il link per maggiori informazioni. Installing additional Arduino Cores

I pacchetti di installazione per STM32 sono reperibili al seguente link

Installazione Arduino Core per STM 32 Nucleo

Passo 1

Avviate lIDE Arduino e dal men File > Preferences

Individuate allinterno del pannello Additional Boards Manager URLs

Aggiungete allinterno del campo Additional Boards Manager URLs lURL corrispondente ai pacchetti per lstm32duino

https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json

Potrebbe capitare che allinterno del campo Additional Boards Manager URLs sia presente un link che fa riferimento ad altra scheda, cos come appare nellimmagine che segue

Se foste in questa condizione effettuate un click sullicona rappresentata nell’immagine che segue, si aprir un pannello in cui compaiono tutti i link inserite allinterno gli ulteriori link che rimandano ai pacchetti aggiuntivi che verranno aggiunti al vostro IDE.

Fate click su OK per confermare

Passo 2

Click su “Tools” menu e “Boards > Boards Manager

Si aprir la finestra Board Manager

Individuate il men a discesa in alto: Type e selezionate: Contribute

Selezionate “STM32 Cores” e fate click su install.

Si noti che possibile selezionare per il pacchetto scelto la versione che si desidera, lultima versione quella che viene selezionata per default e che dovrete installare.

Durante la fase di installazione, che durer qualche minuto, noterete il messaggio Installing e la barra di avanzamento download e installing tools in avanzamento

Al termine dellinstallazione comparir a fianco del pacchetto STM32 la voce: INSTALLED

Selezionate la famiglia della scheda Nucleo che disponete dal men come indicato nellimmagine che segue

Poich posseggo una scheda della famiglia Nucleo-64 seleziono questa scheda

Il passo successivo consiste nella selezione del tipo di scheda all’interno della famigliaNucleo-64, nel mio caso una Nucleo F401RE

Selezionate ora il metodo di trasferimento del programma, utilizzate il metodo STLink cos come indicato nell’immagine che segue:

Alla prima accensione dovreste notare i LED LD1 e LD3 rossi accesi (indicano che la scheda alimentata) e il LED LD2 lampeggiante, ci indica che sta funzionando il programma di test precaricato (un Blink). Sulla scheda presente un pulsante blu nominato USER, alla pressione cambier la modalit di lampeggio secondo quanto indicato nel programma precariato, impareremo in lezioni successive come utilizzare questo pulsante.

Come primo test utilizzo lo sketch Blink variandone la velocit di accensione ed effettuate l’upload sulla scheda dovreste notare che il LED LD1 diventa per un istante verde e successivamente il LED LD2 lampeggia alla frequenza che avete impostato.

Buon Coding a tutti 🙂

Articoli simili:

Questa voce è stata pubblicata in elettronica, i miei allievi, programmazione e contrassegnata con , , , , , , , , , . Contrassegna il permalink.

Lascia un commento

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.