Andiamo a esaminare in questo articolo una dev-board molto potente, economica e compatibile con la IDE di Arduino. La STM32F103C8T6 fa parte della famiglia delle STM32, microcontrollori prodotti dalla STMicroelectronics che utilizzano un chip Arm® Cortex®-M.

Specifiche

La STM32F103C8T6 è un microcontrollore che possiamo acquistare ad un prezzo irrisorio, circa 2,20€ a questo link, pur essendo ricco di caratteristiche tecniche.

Dal punto di vista puramente estetico è molto simile all’Arduino Nano, sebbene sia altamente competitivo con il NODEMCU V3 come vediamo in tabella.

STM32F103C8T6Arduino NANONODEMCU V3
CHIPARM®Cortex®-M3ATmega328PTensilica 32-bit RISC CPU Xtensa LX106
ARCHITETTURA32 BIT8 BIT32 bit
CORE111
CPU72MHz16MHz80MHz
WiFi//IEEE 802.11 b/g/n
RTC//
RAM20KB2KB24KB
MEMORIA FLASH64KB32KB4MB
PIN GPIO371416
INTERFACCIACAN, I2C, SPI, UARTI2C, SPI, UARTI2C, SPI, UART
TENSIONE OPERATIVA3,3V5V3,3V
COSTO (€)±2,20±2,50±2,60



La dev-board è dotata di un chip ARM®Cortex®-M3 con architettura a 32bit, un monocore in grado di lavorare a 72MHz, esattamente 4,5 volte più veloce di Arduino UNO. Troviamo anche una memoria flash da 64KB, 20KB di RAM, 37 pin GPIO e un ricco comparto Interfaccia, tutto con una tensione operativa di 3,3V, senza scordare che i 5V sono tollerabili. A parte il chip ARM, troviamo anche un chip per la gestione RTC (Real Time Clock).

Possiamo dare corrente alla STM32F103C8T6 tramite i pin di alimentazione (3,3V o 5V) presenti sulla scheda o tramite il connettore Micro-USB da cui possiamo fornire 5V. Questo connettore non servirà, però, per caricare il nostro sketch.



Collegamenti

Per collegare la STM32F103C8T6 ci servirà un modulo adattatore FTDI, acquistabile per circa 1,50€ a questo link, che dispone di una porta Mini-USB per la connessione a PC e caricamento tramite seriale del codice.

Basterà seguire i collegamenti riportati in tabella, assicurandosi prima di aver posto il jumper presente sul FTDI sui 5V.

STM32F103C8T6 FTDI
5VVCC
GNDGND
A9RX
A10TX

Una volta collegata la STM32F103C8T6  al modulo FTDI, dobbiamo, con attenzione, spostare uno dei jumper della STM32 dalla posizione 0 a 1 per predisporlo in Program Mode e premere il pulsante RESET.

Non ci resta che settare la IDE di Arduino in modo che la scheda venga riconosciuta e gestita. Per far ciò, entriamo nelle Impostazioni della IDE, presente nel menu FILE, e aggiungiamo alla voce URL aggiuntive per il gestore schede questo link:

http://dan.drown.org/stm32duino/package_STM32duino_index.json

Diamo OK e muoviamoci sul menu Strumenti->Schede->Gestore schede.



Quando la finestra sarà aperta, cerchiamo STM32F1 e installiamo il pacchetto che ci appare.

Codice

Per testare la STM32F103C8T6 carichiamo il codice di prova per far accendere e spegnere il led interno alla scheda. Usiamo il codice come appare qui, utilizzando il pin PC13 al quale è connesso il led:


void setup() {

pinMode(PC13, OUTPUT);
}

void loop() {
digitalWrite(PC13, HIGH);
delay(1000);
digitalWrite(PC13, LOW);
delay(1000);
}

Per caricare lo sketch mentre la STM32F103C8T6 è ancora in Program Mode dobbiamo andare su Strumenti->Schede e selezionare la voce Generic STM32F103C series, poi selezionare dal menu Upload method la voce Serial ed infine scegliere la porta. Siamo pronti per caricare lo sketch.

Una volta caricato, se non dobbiamo fare modifiche o caricare uno sketch differente, premiamo nuovamente il tasto Reset sulla scheda e riportiamo il jumper alla sua posizione iniziale. Per verificare che tutto sia andato bene, scolleghiamo la FTDI e alimentiamo la STM32F103C8T6 con la porta Micro-USB.