- Selezione degli strumenti di sviluppo hardware e software
- Sviluppo STM8S103F3P6
- Programmatore STM8S103F3P6
- IDE e compilatore STM8S103F3P6
- STM8S con Arduino utilizzando Sduino
- Download del software richiesto
- Configurazione del compilatore STVD e Cosmic C.
- Libreria periferica standard per STM8S103F3P6
- Compilazione del primo programma
- Caricamento del codice da STVD alla scheda di sviluppo STM8S utilizzando ST-Link V2
L' STM8 è una serie di microcontrollori a 8 bit di STMicroelectronics che è diventata una scelta comune di microcontrollori per lo sviluppo di prodotti sensibili ai costi. In precedenza ho lavorato con AVR, PIC e alcuni altri microcontrollori ARM Cortex, ma sicuramente in alcune applicazioni diventano eccessivi e aumentano notevolmente il costo della distinta base. Recentemente, dopo aver smontato alcuni prodotti cinesi economici, ho scoperto che la maggior parte di essi aveva un microcontrollore STM8 al suo interno. L'IC non è solo economico, ma è anche ricco di molte caratteristiche e opzioni che lo rendono adatto per essere utilizzato in molte applicazioni diverse. Ad esempio, l' STM8S La serie di controller (che impareremo in questa serie di tutorial) è un controller per uso generico, ma ci sono altre serie come STM8A per progetti automobilistici e STM8L per progetti alimentati a batteria a bassa potenza che estende l'applicazione di questi controller.
In questa serie di tutorial, impareremo come programmare i microcontrollori STM8S, in particolare l' STM8S103F3P6. Il motivo per iniziare con questo numero di parte specifico è solo per il suo rapporto prezzo / prestazioni. Piace!! basta guardarlo solo per 0,25 $ (circa 20 Rupie) otteniamo un microcontrollore a 8 bit con oscillatore interno da 16 Mhz, 8kB Flash, ADC a 10 bit, UART, SPI e I2C. Chi non sarebbe incuriosito? Inoltre, STM8S103F3P6 è molto popolare e, quindi, come principiante, troverai abbastanza supporto se hai bisogno di aiuto al di fuori dei tutorial. Partendo da questo, avremo una sequenza di tutorial, simile ai tutorial di programmazione PIC in cui impareremo come programmare questo controller da un lampeggio di base a vari display e interfacciamento dei sensori. Puoi anche consultare il tutorial ei progetti STM32F103C8 se sei interessato ai microcontrollori STM a 32 bit.
Selezione degli strumenti di sviluppo hardware e software
Ora che abbiamo deicide il microcontrollore, dovremo selezionare strumenti di sviluppo hardware e software per iniziare il nostro processo di apprendimento. Ci sono molte opzioni, qui ho selezionato quelle che sono gratuite e facilmente disponibili per tutti.
Sviluppo STM8S103F3P6
La scheda di sviluppo ufficiale per il microcontrollore a 8 bit della ST si chiama kit STM8 Discovery, ma useremo un'altra scheda di sviluppo a basso costo che puoi trovare facilmente presso un fornitore locale o nel negozio online. L'immagine della scheda di sviluppo STM8S103F3P6 che useremo in questo tutorial è mostrata di seguito.
La scheda è composta solo dai componenti minimi necessari per iniziare lo sviluppo. È breadboard friendly e adatto per applicazioni compatte. Di seguito è mostrato lo schema del circuito interno per la scheda di sviluppo.
Guardando più da vicino, noterai che, a parte il controller STM8S103F3p6, abbiamo un pulsante di ripristino per ripristinare il controller. Un led di alimentazione e un led di test collegati a PB5 (Porta B pin 5) e un regolatore di tensione AMS1117 che converte i 5V da una porta USB a 3,3V per il controller. Il controller può anche essere fatto funzionare a 5V, se necessario. Le diverse parti del controller sono contrassegnate di seguito. Abbiamo anche 4 pin del programmatore, ovvero 3,3 V, GND, SWIM e NRST che possono essere utilizzati per programmare ed eseguire facilmente il debug del nostro microcontrollore.
Programmatore STM8S103F3P6
Per programmare il nostro controller, utilizzeremo ST-LINK v2, che è economico e facilmente disponibile online. Ci sono molte varianti (metallo, plastica, oro, rosa, tavola nuda) di questa tavola ST-LINK v2 e tutte hanno lo stesso scopo. Il mio è mostrato di seguito ma puoi usare qualsiasi tipo di programmatore ST-LINK, il pinout sarà diverso, quindi assicurati di leggere correttamente i pinout sull'involucro. C'è anche ST-LINK V3 della stessa ST-Microelectronics che può essere utilizzato per un serio debugging. Non lo useremo per ora poiché è un po 'costoso, lo salveremo per il futuro.
IDE e compilatore STM8S103F3P6
La selezione dell'IDE e del compilatore corretti per STM8S103F3P6 lascia perplessi, semplicemente perché ci sono molte opzioni tra cui scegliere. Gli strumenti ufficiali disponibili per il microcontrollore STM8 sono mostrati nell'immagine sottostante.
Per quanto riguarda la configurazione, abbiamo l' STM8CubeMx, ho provato il software ed è stata una delusione completa per me. A differenza di STM32Cube, STM8Cube non può generare automaticamente codice. Può generare la mappatura dei pin solo per scopi di visualizzazione e potrebbe tornare utile se stai portando il tuo codice da un controller a un altro. A parte questo, non lo userei. Quindi in questa serie di tutorial, non lo useremo.
Per l'IDE e il compilatore, abbiamo molte opzioni tra cui scegliere. Le prime due opzioni per IDE sono IAR workbench e ST Visual Develop (STVD), entrambi i software sembrano degli anni '90 ma dopo un po 'di tempo a giocarci, ho scoperto che STVD è una buona scelta solo perché è totalmente gratuito. Allo stesso modo, per il compilatore, utilizzeremo il compilatore Cosmic C, ancora una volta solo perché è totalmente gratuito. Un altro motivo per scegliere questo IDE e compilatore è che, una volta acquisita familiarità con l'ambiente, dovrebbe essere facile usare qualsiasi altro microcontrollore a 8 bit di ST senza troppi sforzi. Più avanti in questo articolo spiegheremo come installare e configurare STVD con il compilatore Cosmic C.
Per Flashing, utilizzeremo ST Visual Programmer (STVP), questo strumento verrà installato automaticamente quando installeremo STVD. Sarà integrato nell'IDE stesso, aiutandoci a programmare e eseguire il debug rapidamente. Il software finale sarà STMStudio, che è un software di monitoraggio STM8. Il software può aiutare con il debug in tempo reale di STM8 e ha alcune caratteristiche interessanti come il monitoraggio del valore della variabile, il tracciamento del grafico, ecc. Non ho sperimentato abbastanza con questo software. E, almeno per i primi tutorial, non useremo questo software poiché non avremo bisogno di grandi requisiti di debug.
STM8S Standard Peripheral Library: ST Microelectronics fornisce una serie di librerie per semplificare lo sviluppo del codice per i microcontrollori STM8S, questa libreria è chiamata " Standard Peripheral Library " o SPL in breve. La libreria è interessante tranne per il fatto che è scritta tenendo presente tutti i possibili controller della famiglia STM8S / A a 8 bit e non solo il controller STM8S103F3P6 che useremo. Quindi, dobbiamo apportare alcune modifiche qua e là per farlo funzionare (che condividerò più tardi). Tuttavia, credo che valga la pena provarlo perché può rendere lo sviluppo molto veloce e quindi lo useremo nel nostro tutorial.
Se non si desidera utilizzare la libreria, è necessario accedere direttamente ai Registri del controller o eseguire la programmazione in assembly bare metal. Entrambi sono divertenti, a condizione che tu abbia il tempo di impararli e usarli. La mia idea è quella di utilizzare la libreria SPL ovunque funzioni bene e poi lavorare anche a livello di registro e assembly, se necessario. Cerchiamo di non reinventare la ruota!
STM8S con Arduino utilizzando Sduino
La discussione delle opzioni software non sarà mai completa se non menziono il supporto per l' IDE di Arduino STM8S. Sì, la stessa scheda STM8S103F3P6 può essere programmata direttamente da Arduino IDE utilizzando Sduino, grazie a Michael Mayer. Tuttavia, il progetto è ancora in fase di sviluppo e probabilmente richiederà un po 'di tempo e il supporto della comunità per Sduino per fornire il supporto completo della piattaforma. Tuttavia, solo pochi minuti dopo aver giocato con Sduino, ho iniziato a piacermi e quindi ho deciso di fare anche un articolo separato su come programmare il microcontrollore STM8S con Arduino. Collegherò l'articolo qui quando sarà pronto. Questo articolo discuterà perché e perché no dovresti usare l'IDE di Arduino per programmare i tuoi microcontrollori STM8S.
Quindi, queste sono le mie scelte per Software e Hardware, fammi sapere nella sezione commenti se pensi che qualche altro software sarebbe stato una scelta migliore e perché. Vorrei esplorare anche altre opzioni.
Download del software richiesto
Ora che abbiamo deciso il software che useremo per questo tutorial, andiamo avanti e scarichiamolo utilizzando il seguente link. Tutto il software è scaricabile e utilizzabile gratuitamente, ti basterà registrare un account gratuito su ST e Cosmic se non lo avessi già fatto.
- ST Visual Develop (STVD)
- Compilatore Cosmic C.
- Libreria periferica standard
- STM8Cube Mx (opzionale)
- STMStudio per STM8 (opzionale)
Configurazione del compilatore STVD e Cosmic C.
Dopo aver scaricato entrambi i software, segui semplicemente le istruzioni sullo schermo per installarli. Consiglierei di lasciarli nelle directory predefinite per evitare confusione in seguito. L'IDE STVD verrà installato senza alcuno sforzo. Per il compilatore Cosmic C, è necessario ottenere una chiave di licenza gratuita durante i processi di installazione. Devi solo fornire le informazioni sulla società con l'ID e-mail, se sei uno studente, menzionalo. I processi per ottenere la chiave di licenza sono istantanei e automatici, sebbene le istruzioni di configurazione dicano che potrebbero volerci uno o due giorni, ho ricevuto automaticamente la chiave di licenza sul mio ID e-mail non appena l'ho inviata, assicurati solo di te controlla lo SPAM. La mia e-mail di conferma è mostrata di seguito.
Secondo le istruzioni e-mail, copia il file license.lic e incollalo nella sottocartella "license" nella cartella di installazione. Per me il percorso era "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License" . Basta incollare il file nella posizione come mostrato di seguito.
Libreria periferica standard per STM8S103F3P6
Come detto in precedenza, ST Microelectronics fornisce librerie chiamate SPL che possono essere utilizzate per tutti i microcontrollori STM8S / A a 8 bit. È possibile scaricare l'SPL originale da ST Microelectronics e apportare le modifiche richieste oppure scaricare le mie librerie SPL STM8S103F3P6 e utilizzarle come tali. Consiglierei il dopo.
SPL originale di ST Microelectronics
STM8S103F3P6 SPL
Mentre sei lì assicurati anche di scaricare il manuale utente SPL, che sarà molto utile durante la programmazione del controller.
Compilazione del primo programma
Ora che tutto è pronto, proviamo a compilare il nostro primo programma per verificare se l'IDE, il compilatore e la libreria funzionano tutti come dovrebbero. Puoi anche controllare il video in fondo alla pagina per istruzioni dettagliate.
Inizia aprendo STVD e seleziona File -> WorkSpace, nel pop-up, seleziona "New Workspace" e inserisci il nome del progetto e il percorso in cui salvare il programma. Sto nominando il mio programma BareMinimum e salvandolo in una cartella sul desktop. Fare clic su OK e verrà visualizzata la finestra di dialogo Nuovo progetto come mostrato di seguito.
Sto denominando di nuovo il progetto come minimo e sotto toolchain dobbiamo specificare la radice della toolchain nel percorso in cui è installato il compilatore STM8 Cosmic. L'indirizzo del percorso predefinito è "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8" . Dopodiché, fai clic su OK per visualizzare la finestra "Selezione MCU".
Cerca STM8S103F3P e selezionalo e fai clic su OK. Questo aprirà un nuovo progetto per STM8S103F3P su STVD, le finestre dovrebbero apparire così al termine.
Fare clic con il pulsante destro del mouse su "file sorgente" e selezionare "Aggiungi file alla cartella" per includere tutti i file c dalla nostra libreria SPL, allo stesso modo fare clic con il pulsante destro del mouse su Includi file per includere tutti i file di intestazione. Se hai domande, puoi fare riferimento al video qui sotto. Una volta aggiunti tutti i file, fare clic su Build -> rebuil d all e quindi su Compile per verificare se il compilatore e SPL funzionano come previsto. Se tutto va bene, dovresti vedere la seguente schermata con il risultato di build 0 errore e 0 avviso.
Fatto ciò, ora possiamo essere sicuri che tutte le nostre librerie SPL funzionino con il compilatore Cosmic e STVD. Questa è la procedura standard che seguiremo per ogni nuovo progetto. È inoltre possibile includere solo l'intestazione e i file di origine necessari affinché il progetto riduca il tempo di compilazione, se necessario.
Caricamento del codice da STVD alla scheda di sviluppo STM8S utilizzando ST-Link V2
Collegare l'ST-Link V2 alla scheda di sviluppo come mostrato di seguito.
Le connessioni sono piuttosto semplici e la parte migliore è che non hai bisogno di componenti esterni. La mia configurazione hardware per la programmazione è mostrata di seguito, ho appena usato i cavi di intestazione femmina per effettuare la connessione. Tuttavia, tieni presente che il pinout del tuo ST-Link potrebbe differire dal mio, assicurati di seguire il pinout sul dispositivo prima di effettuare i collegamenti.
Effettua la connessione e collega il dispositivo al tuo computer, l'installazione del driver dovrebbe iniziare automaticamente. È possibile utilizzare Gestione dispositivi per assicurarsi che il computer abbia rilevato correttamente ST-LINK V2. Noterai anche che il LED di test sulla scheda lampeggia se è la prima volta che la scheda viene alimentata. Non appena abbiamo compilato con successo il codice su STVD, otterremo un file di estensione "S19" nella directory di debug della cartella del progetto. Il mio file S19 è mostrato di seguito.
Questo S19 è come il file Hex che dovrebbe essere caricato sul controller. Per caricare il programma, apri ST Visual Programmer (STVP) che dovrebbe essere installato insieme a STVD. Quindi nella finestra di configurazione, selezionare come mostrato nell'immagine sottostante e fare clic su OK.
Quindi fai clic su File-> Apri e vai al file S19 che abbiamo mostrato in precedenza. Quindi per eseguire il flashing del dispositivo, seguire Programma -> Scheda corrente . Se il lampeggiamento ha avuto successo, dovresti vedere il seguente output.
Per impostazione predefinita, quando acquisti l'STM8S, avrà un programma blin che fa lampeggiare il LED di prova. Ora, dopo aver caricato questo codice vuoto, il LED non lampeggerà più.
Importante: ho scoperto che il mio ST-Link non ha ripristinato automaticamente la scheda dopo la programmazione. Ho dovuto scollegarlo e ricollegarlo per controllare l'output del mio programma. Non sono sicuro che questo sia un problema per tutti, fammelo sapere nella sezione commenti. Inoltre, guarda il video in basso che spiega la soluzione a questo.
Con questo, concludiamo questo tutorial, abbiamo imparato le basi dell'hardware, abbiamo impostato l'ambiente di sviluppo e imparato come compilare e caricare il codice. Ora siamo pronti per progredire e lo utilizzeremo in tutti i nostri prossimi tutorial. Se hai domande, pubblicale sui nostri forum e resta sintonizzato per ulteriori informazioni !!