Programmare Nucleo STM32L152RE con Arduino IDE: guida completa passo passo

L’articolo, pubblicato sul numero 287 di Elettronica In, illustra come programmare la scheda Nucleo STM32L152RE utilizzando l’IDE di Arduino, sfruttando i pacchetti STM32duino e il programmatore ST-Link integrato. Vengono descritti i passaggi per aggiungere il supporto alle MCU STM32L1 nell’IDE, la configurazione del driver via USB e la scelta del metodo di caricamento più adatto, con l’obiettivo di unire la semplicità dell’ambiente Arduino ai punti di forza hardware delle schede Nucleo.

La Nucleo L152RE offre consumi ridotti, un elevato numero di I/O, 512 kB di FLASH, 80 kB di RAM, clock a 32 MHz e il programmatore ST-Link V2 a bordo. La presenza del programmatore consente una programmazione rapida e automatica, con la possibilità di separare fisicamente il modulo ST-Link se necessario. Una volta collegata al PC tramite USB, la board viene vista come unità rimovibile “NUCLEO” contenente i file DETAILS.TXT e MBED.HTM.

Sono riportati i passaggi operativi: aggiunta del pacchetto STM32 nell’IDE tramite Gestore Schede, installazione del pacchetto “STM32 MCU based boards” di STMicroelectronics, selezione della voce “Generic STM32L1 series” con part number “Generic L152RETx” e scelta dell’upload via STM32CubeProgrammer in modalità USB DFU o SWD. La compilazione risulta più lenta rispetto ad altre piattaforme per la maggiore complessità della toolchain, mentre la programmazione è semplice e immediata.

La sezione dedicata ai GPIO evidenzia i connettori Morpho CN7 e CN10 (19×2 pin) e la compatibilità con le shield Arduino Uno. Molti pin sono “5 volts tolerant”. Il LED_BUILTIN LD2 è su PA5 (anche clock della SD), il pulsante blu è su PC13 con pull-up e il nero è il reset. La USART2 (PA2/PA3) è impiegata dallo ST-Link come porta seriale verso PC; per i progetti si possono usare altre USART, ad esempio la USART1 su PA9/PA10. È presente l’oscillatore RTC a 32.768 Hz gestibile con apposita libreria; non è prevista una batteria dedicata sulla MCU per il mantenimento dell’orologio a bordo scheda.

Sul fronte alimentazione, la Nucleo può essere alimentata via USB (U5V), con +5 V regolati esterni (E5V) o tramite VIN da 7 a 12 V; nel progetto descritto è stata utilizzata l’alimentazione USB. Per l’interfaccia grafica si è adottato un display OLED da 1,3” 128×64 basato su controllore SH1106, compatibile con SSD1306, collegato in I2C (solo quattro fili). Il modulo integra un LDO e può essere alimentato tra 3 e 5 V; con STM32 è consigliato VCC = 3,3 V per via delle resistenze di pull-up integrate. In Arduino IDE è stata utilizzata la libreria u8glib, con font che consentono cinque righe da 18 caratteri; per il bus I2C sono stati impiegati PB7 (SDA) e PB6 (SCL).

Viene presentato un semplice programma di esempio: inizializza display e microSD, scrive un file “prova.txt” se la scheda è presente, quindi visualizza su OLED un’intestazione e il conteggio dei secondi, ottimizzando il refresh cancellando solo una porzione dello schermo. Il listato indica i pin usati per SD (CS su PB0, SCLK su PA5, MOSI su PA7, MISO su PA6) e per I2C (PB7/PB6), oltre al pulsante su PC13.

In chiusura, l’integrazione tra Arduino e Nucleo consente di realizzare prototipi completi e versatili sfruttando interfacce UART, I2C, SPI, ADC e DAC, con applicazioni in sensoristica, data logging, automazione e controllo embedded. È riportata anche una breve lista materiali con codici e prezzi indicativi per board, OLED I2C e modulo microSD.

Lascia un commento

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

Menu