Cosa sono le schede STM8 Nucleo?
Le schede STM8 Nucleo si riferiscono a una gamma di schede di sviluppo progettate da STMicroelectronics specificamente per i loro microcontrollori STM8. Queste schede fungono da piattaforma conveniente e flessibile per la creazione e il test di applicazioni basate sulla famiglia di microcontrollori STM8. Con una varietà di funzionalità e opzioni di connettività, le schede STM8 Nucleo forniscono agli sviluppatori un ambiente adatto per prototipare i loro progetti e valutare le prestazioni dei microcontrollori STM8. Queste schede sono in genere dotate di un debugger/programmatore, pin GPIO, UART, I2C e interfacce SPI, consentendo agli sviluppatori di connettersi e interfacciarsi facilmente con vari dispositivi periferici e sensori. Le schede STM8 Nucleo sono ampiamente utilizzate nel settore dell’elettronica per la loro facilità d’uso e compatibilità con l’ecosistema STM8.
NUCLEO-8L152R8 e NUCLEO-8S208RB
NUCLEO-8L152R8 e NUCLEO-8S208RB sono le prime schede Nucleo-64 a integrare microcontrollori STM8 (MCU), consentendo progetti di prototipi flessibili attraverso configurazioni MCU compatte. La differenza significativa tra questi due modelli risiede nella loro capacità di memoria flash. Il primo integra un MCU STM8L152R8T6 con 64 kB di memoria flash, mentre il secondo utilizza un STM8S208RBT6 con 128 kB di spazio di archiviazione. Sono anche le prime schede di sviluppo STM8 con un connettore Arduino™ Uno V3, che consente agli sviluppatori di utilizzare shield familiari, plugin gratuiti ed esempi di programmazione popolari. Inoltre, in collaborazione con Cosmic, forniamo compilatori gratuiti con STVD-STM8 IDE o Arduino IDE, consentendo agli sviluppatori di sviluppare software per i nostri MCU STM8 in C++ per la prima volta senza acquistare una toolchain.

Abbiamo scoperto che le schede STM32 Nucleo sono particolarmente popolari per la progettazione e lo sviluppo di prototipi. Offrono anche un’ampia selezione di schede di espansione ora compatibili con NUCLEO-8L152R8 e NUCLEO-8S208RB poiché tutti i modelli Nucleo forniscono connettori Arduino. Ciò significa che i team di ingegneria possono riutilizzare lo stesso hardware, risparmiando sui costi e, soprattutto, riducendo i tempi di sviluppo poiché hanno già familiarità con l’impilamento di estensioni sulle nuove schede STM8 Nucleo. Pertanto, è ora più facile aggiungere funzionalità ai nostri sistemi a 8 bit, consentendo progetti più complessi e intelligenti in pacchetti sempre più piccoli.
Specifiche STM8 Nucleo
- Scheda con tipi di MCU:
NUCLEO-8L152R8 – Basato su MCU STM8L152R8T6 a 8 bit di STMicroelectronics, che opera a una frequenza di 16 MHz, con 64 kB di flash, 2 kB di EEPROM e 4 kB di SRAM.
NUCLEO-8S208RB – Basato su MCU STM8S208RBT6 a 8 bit di STMicroelectronics, che opera a una frequenza di 24 MHz, con 128 kB di flash, 2 kB di EEPROM e 6 kB di SRAM.
4x LED – Indicatore di connessione USB (LD4), indicatore STLINK 5V (LD3), LED utente (LD2) e indicatore di alimentazione (LD1).
2 x pulsanti – Pulsanti utente e un pulsante RESET.
Oscillatore a cristallo esterno da 32,768 kHz, esclusivo della scheda di sviluppo NUCLEO-8L152R8.
USB – Interfaccia microUSB a 1 canale come porta COM virtuale, interfaccia di memoria on-chip e interfaccia di debug.
- Connettori di espansione:
Interfaccia Arduino UNO V3.
Interfaccia di espansione ST morpho, inclusi tutti gli I/O per STM8.
Debug – Debugger e programmatore ST-LINK/V2-1 integrati con connettore SWIM e porta microUSB.
Alimentazione – Alimentato da USB VBUS o alimentazione esterna (3,3V, 5V, 7 – 12V).
Punti di accesso alla gestione dell’alimentazione.
Progetto scheda di sviluppo STM8 Nucleo-64
Questo progetto descrive come controllare una scheda di sviluppo STM8 Nucleo-64 da una finestra del terminale in esecuzione su un PC. Il terminale è collegato alla UART di STM8S208RBT6 (per NUCLEO-8S208RB) o STM8L152R8T6 (per NUCLEO-8L152R8) utilizzando un cavo RS232.
Dopo aver aggiunto i componenti necessari alla scheda di sviluppo e aver scaricato il software applicativo, gli utenti possono gestire i GPIO e i timer TIM3 delle serie STM8S o STM8L e configurare l’uscita del cicalino utilizzando un software di terminale.

Componenti richiesti
I seguenti componenti sono necessari per eseguire l’applicazione demo del terminale della scheda di sviluppo STM8 Nucleo-64:
- Finestra del terminale in esecuzione su un PC: è possibile utilizzare un software di emulazione del terminale come Windows HyperTerminal, TeraTerm Pro o altri software di terminale.
- Cavo null modem RS232 (con linee di trasmissione e ricezione incrociate).
Configurazione della scheda di sviluppo NUCLEO-8S208RB
Prima di eseguire l’applicazione, la scheda di sviluppo NUCLEO-8S208RB (basata su dispositivo STM8S208RBT6) deve essere configurata per abilitare l’uscita del cicalino. L’uscita del cicalino è una funzione multiplexata di STM8S208RBT6. Questa funzione è abilitata impostando il bit di opzione remap AFR7 nell’option byte OPT2 su “1.”
Nota: la scheda di sviluppo NUCLEO-8L152R8 (basata su dispositivo STM8L152R8T6) non richiede agli utenti di controllare o attivare la funzione remap o il cicalino.
Istruzioni per l'applicazione
Requisiti hardware
Questa applicazione utilizza il LED integrato (LD2) e la resistenza collegata (R1) sulla scheda STM8 Nucleo-64. I componenti passivi esterni richiesti dall’applicazione sono elencati nella tabella sottostante:
| Component | Value |
|---|---|
| Buzzer B1 | - |
| Capacitors C1, C2, C3, C4, C5 | 100 nF |
| DB9 Connector | - |
L’applicazione utilizza anche un driver/ricevitore RS232 alimentato a 5V ST232B (per maggiori dettagli, vedere la tabella sottostante). Questo componente aggiuntivo è essenziale perché la porta COM del PC funziona con un alimentatore standard da 12V. Questo è incompatibile con gli ingressi/uscite UART dei dispositivi delle serie STM8S o STM8L, che operano a 5V. Il dispositivo è in un package SO16, corrispondente al package della scheda di sviluppo STM8 Nucleo-64. Per maggiori informazioni su ST232B, fare riferimento al datasheet ST232B.
| Model | Component Description | Package |
|---|---|---|
| ST232B | Ultra-Fast, Ultra-Low-Power 5V RS232 Driver/Receiver for UART 5/12V Level Conversion | SO16 |
Schema applicativo
Il seguente diagramma illustra lo schema elettrico dell’applicazione. Se il cavo RS232 non è un cavo null modem (le linee di trasmissione e ricezione non sono incrociate), collegare il pin 14 di U1 al pin 2 di DB9 e il pin 13 di U1 al pin 3 di DB9.
Regole applicative
Questa applicazione stabilisce una comunicazione standard tra il microcontroller STM8S208RBT6 o STM8L152R8T6 e la finestra del terminale in esecuzione su un PC. La comunicazione avviene utilizzando il protocollo RS232 tramite la UART del dispositivo STM8. Sia la finestra del terminale che la UART devono essere configurate allo stesso modo.
Esecuzione dell'applicazione
Per eseguire questa applicazione, seguire questi passaggi:
- Avviare e configurare una finestra del terminale sul PC (fare riferimento alla sezione B: Configurare la finestra del terminale, in questo caso, utilizzando Windows HyperTerminal).
- Compilare ed eseguire il firmware dell’applicazione utilizzando ST Visual Develop (STVD) o un altro toolchain.
- Collegare il PC alla scheda di sviluppo STM8 Nucleo-64 utilizzando un cavo RS232.
- Dopo l’avvio dell’applicazione, verrà visualizzato un menu in Windows HyperTerminal. Questo menu consente agli utenti di:
- Accendere o spegnere il LED LD2.
- Impostare LD2 in modalità lampeggiante.
- Abilitare/disabilitare il cicalino e selezionare la frequenza del suono del cicalino.
Tutte le informazioni visualizzate in questo menu sono inviate dal microcontroller delle serie STM8S o STM8L. Quando viene premuto un tasto in HyperTerminal, il valore ASCII corrispondente viene inviato al microcontroller, che lo decodifica.
Sequenza di comunicazione tra la scheda di sviluppo STM8 Nucleo-64 e il terminale
- Il microcontrollore della serie STM8S o STM8L invia la stringa “Inserisci la tua scelta” al software emulatore di terminale del PC.
- Il terminale visualizza la stringa “Inserisci la tua scelta.”
- L’utente preme il tasto “2” sulla tastiera.
- Il software emulatore di terminale invia il codice ASCII corrispondente (0x52) al microcontrollore (vedere l’Appendice A: codici caratteri ASCII standard).
- Il microcontrollore decodifica i dati ricevuti e invia nuovamente il codice 0x52 da visualizzare sul terminale e memorizza il valore “2” in memoria.
- Il software emulatore di terminale riceve il codice 0x52 e visualizza “2”.
- L’utente preme il tasto “Invio”.
- Il software emulatore di terminale invia il codice 0x0D corrispondente al ritorno a capo (vedere l’Appendice A: codici caratteri ASCII standard).
- Il microcontrollore della serie STM8S o STM8L decodifica i dati ricevuti, invia il codice 0x0D da visualizzare sul terminale ed esegue l’operazione associata all’opzione 2.
HyperTerminal di Windows
Periferiche STM8S e STM8L
Questo esempio di applicazione utilizza le librerie firmware standard STM8S e STM8L per controllare le funzioni generali. Le seguenti periferiche sono utilizzate in questa applicazione:
- Timer3 (TIM3): il timer TIM3 è configurato come base temporale, con interruzioni abilitate per controllare la velocità di lampeggio di LD2.
- GPIO: i GPIO sono utilizzati per collegare il MCU all’hardware esterno. La porta PC5 per la serie STM8 o PB5 per la serie STM8L è configurata come uscita push-pull per pilotare LD2.
- BEEPER: per pilotare il cicalino, la periferica BEEPER emette un segnale di 1, 2 o 4 kHz sul pin di uscita BEEP.
- ART3 per la serie STM8S o USART3 per la serie STM8L: utilizzato per la comunicazione con la finestra del terminale in esecuzione sul PC.
ART3 o USART3 devono essere configurati come segue:
- Baud rate = 960
- Lunghezza dati = 8 bit
- 1 stop bit
- Nessuna parità
- Abilita ricezione e trasmissione
(Nota: se si utilizza la serie STM8L, è necessario disabilitare l’orologio USART3.)
La comunicazione è gestita tramite polling per ogni operazione di ricezione e trasmissione.
(Nota: la finestra del terminale e la periferica UART del dispositivo STM8 devono essere configurate con lo stesso baud rate, lunghezza dati, stop bit e parità.)
Configurazione della libreria firmware standard STM8
Libreria firmware standard della serie STM8S
Il file stm8s_conf.h della libreria firmware standard della serie STM8S consente di abilitare le funzioni periferiche per l’uso nell’applicazione configurando la libreria. Le seguenti istruzioni define devono essere dichiarate:
- #define _GPIO 1 per abilitare GPIO
- #define _TIM3 1 per abilitare TIM3
- #define _BEEPER 1 per abilitare BEEPER
- #define _UART3 1 per abilitare UART3
Libreria firmware standard della serie STM8L
Il file stm8l_conf.h della libreria firmware standard della serie STM8L consente di abilitare le funzioni periferiche per l’uso nell’applicazione configurando la libreria. Le seguenti istruzioni include devono essere dichiarate:
- #include “stm8l15x_gpio.h”
- #include “stm8l15x_tim2.h”
- #include “stm8l15x_tim3.h”
- #include “stm8l15x_beep.h”
- #include “stm8l15x_usart.h”
Diagramma di flusso del software applicativo
Questa sezione spiega il ciclo principale del software applicativo e le funzioni che controllano la ricezione/invio di dati da/verso il terminale:
- App_Menu: Questa funzione viene utilizzata per visualizzare un menu sul terminale e gestire l’input dell’utente.
- SerialPutString: Questa funzione viene utilizzata per inviare stringhe al terminale.
- SerialPutChar: Questa funzione viene utilizzata per inviare singoli caratteri al terminale.
- GetInputString: Questa funzione viene utilizzata per ricevere e memorizzare stringhe inviate dal terminale.
- GetIntegerInput: Questa funzione viene utilizzata per ricevere numeri interi dal terminale.
- Get_Key: Questa funzione restituisce il codice esadecimale corrispondente quando viene premuto un tasto.
Funzione principale dell'applicazione
La funzione principale dell’applicazione configura le periferiche della serie STM8S o STM8L e abilita le interruzioni standard per tutte le periferiche utilizzate dall’applicazione. Dopo l’inizializzazione, il programma principale visualizza il menu dell’applicazione nella finestra del terminale.

Funzione App_Menu
La funzione App_Menu è il cuore dell’applicazione. Visualizza un menu sul terminale, consentendo la configurazione di GPIO, TIM3 e del cicalino. App_Menu chiama GetInputString, GetIntegerInput e SerialPutString per inviare e ricevere dati tramite l’interfaccia RS232.

Funzione GetInputString
La funzione GetInputString viene utilizzata per ricevere e memorizzare stringhe inviate dalla finestra del terminale. Questa funzione si basa sulla funzione Get_Key per ottenere e decodificare ogni carattere (vedere l’Appendice per i dettagli). Vengono intraprese azioni diverse in base al valore ASCII del carattere:
Se il codice ASCII = ‘\\b’ (backspace): il terminale ha inviato un backspace. Se la stringa non è vuota, elimina l’ultimo carattere dalla stringa.
Se il codice ASCII è compreso tra {0…9} o {A…Z}: il carattere viene memorizzato nella stringa.
Se il codice ASCII = ‘\\r’ (carriage return): la funzione GetInputString memorizza un valore “fine stringa” ‘\\0’ alla fine della stringa. Il numero massimo di codici ASCII memorizzati nel buffer buffP[bytes_read] è stato raggiunto. Il software cancella la stringa registrata e attende un altro input dal terminale.
Funzione Get_Key
La funzione Get_Key viene utilizzata per rilevare l’input della tastiera sul terminale tramite il polling del flag UART RXNE. Restituisce il valore ricevuto.

Funzioni SerialPutString e SerialPutChar
SerialPutString viene utilizzato per inviare stringhe al terminale tramite UART. I caratteri della stringa vengono inviati uno per uno utilizzando la funzione SerialPutChar, come descritto nel diagramma di flusso.
Funzione GetIntegerInput
La funzione GetIntegerInput verifica se i dati in arrivo corrispondono a un numero intero. In caso affermativo, i dati vengono memorizzati in memoria; in caso contrario, viene richiesto all’utente di inserire nuovi dati.




