- Selecció de les eines de desenvolupament de maquinari i programari
- Desenvolupament STM8S103F3P6
- Programador STM8S103F3P6
- STM8S103F3P6 IDE i compilador
- STM8S amb Arduino amb Sduino
- Baixant el programari requerit
- Configuració del compilador STVD i Cosmic C.
- Biblioteca perifèrica estàndard per a STM8S103F3P6
- Recopilació del primer programa
- Càrrega del codi de STVD a la placa de desenvolupament STM8S mitjançant ST-Link V2
El STM8 és una sèrie de microcontroladors de 8 bits de STMicroelectronics que s’ha convertit en una opció habitual de microcontroladors per al desenvolupament de productes sensibles als costos. Anteriorment he treballat amb AVR, PIC i alguns microcontroladors ARM Cortex més, però segur que en algunes aplicacions es tornen excessius i augmenten considerablement el cost de la llista de materials. Recentment, després d’enderrocar alguns productes xinesos barats, vaig trobar que la majoria tenien un microcontrolador STM8 al seu interior. El CI no només és barat, sinó que també el compta amb moltes funcions i opcions, cosa que el fa adequat per utilitzar-lo en moltes aplicacions diferents. Per exemple, el STM8S La sèrie de controladors (que aprendrem en aquesta sèrie de tutorials) és un controlador d’ús general, però hi ha altres sèries com el STM8A per a dissenys d’automoció i STM8L per a dissenys amb bateria de baixa potència que amplia l’aplicació d’aquests controladors.
En aquesta sèrie de tutorials, aprendrem a programar els microcontroladors STM8S, més concretament el STM8S103F3P6. La raó per començar a utilitzar aquest número de peça específic és només pel seu preu al factor de rendiment. M'agrada!! mireu-lo només per 0,25 $ (aproximadament 20 rupies) obtenim un microcontrolador de 8 bits amb oscil·lador intern de 16 MHz, Flash de 8 kB, ADC de 10 bits, UART, SPI i I2C. Qui no estaria intrigat? A més, el STM8S103F3P6 és molt popular i, per tant, com a principiant, trobareu prou assistència si necessiteu ajuda fora dels tutorials. A partir d’això, tindrem una seqüència de tutorials, similar als Tutorials de programació de PIC, on aprendrem a programar aquest controlador des d’un parpelleig bàsic fins a diverses interfícies de pantalla i sensor. També podeu consultar el tutorial i els projectes STM32F103C8 si esteu interessats en els microcontroladors STM de 32 bits.
Selecció de les eines de desenvolupament de maquinari i programari
Ara que hem desicidat el microcontrolador, haurem de seleccionar eines de desenvolupament de maquinari i programari per començar el nostre procés d'aprenentatge. Hi ha moltes opcions, aquí he seleccionat les que són d’ús gratuït i fàcilment disponibles per a tothom.
Desenvolupament STM8S103F3P6
La placa de desenvolupament oficial del microcontrolador de 8 bits de ST s’anomena kit STM8 Discovery, però utilitzarem una altra placa de desenvolupament de baix cost que podeu trobar fàcilment amb un proveïdor local o a la botiga en línia. A continuació es mostra la imatge de la placa de desenvolupament STM8S103F3P6 que utilitzarem en aquest tutorial.

El tauler només consta dels components mínims necessaris per començar el desenvolupament. És ideal per a taulers de pa i és adequat per a aplicacions compactes. A continuació es mostra el diagrama de circuits interns de la placa de desenvolupament.

Fent una ullada més de prop, notareu que, a part del controlador STM8S103F3p6, tenim un botó de reinici per reiniciar el controlador. Un led d’alimentació i un de prova connectats a PB5 (port B pin 5) i un regulador de tensió AMS1117 que converteix el 5V d’un port USB a 3,3V per al controlador. El controlador també es pot fer funcionar a 5V si és necessari. A continuació es marquen les diferents parts del controlador. També tenim 4 pins de programador, és a dir, 3.3V, GND, SWIM i NRST que es poden utilitzar per programar i depurar fàcilment el nostre microcontrolador.

Programador STM8S103F3P6
Per programar el nostre controlador, utilitzarem el ST-LINK v2, que és barat i està fàcilment disponible en línia. Hi ha moltes variants (metall, plàstic, daurat, rosa, tauler nu) d’aquest tauler ST-LINK v2 i tots tenen el mateix propòsit. A continuació es mostra la meva, però podeu fer servir qualsevol tipus de programador ST-LINK; el pinout serà diferent, així que només cal que assegureu-vos de llegir correctament els pinouts de la carcassa. També hi ha ST-LINK V3 de la mateixa ST-Microelectronics que es pot utilitzar per a algunes depuracions greus. No ho farem servir de moment, ja que és una mica car, el guardarem per al futur.

STM8S103F3P6 IDE i compilador
Seleccionar l'IDE i el compilador adequats per a STM8S103F3P6 és desconcertant, simplement perquè hi ha moltes opcions per triar. A la imatge següent es mostren les eines oficials disponibles per al microcontrolador STM8.

Pel que fa a la configuració, tenim el STM8CubeMx, he provat el programari i ha estat una decepció completa per a mi. A diferència del STM32Cube, el STM8Cube no pot generar codi automàticament. Només pot generar mapatge de pins amb finalitats de visualització i pot ser útil si porteu el codi d'un controlador a un altre. A part d’això, no l’utilitzaria. Per tant, en aquesta sèrie de tutorials, no utilitzarem això.
Per a l’IDE i el compilador, tenim moltes opcions per triar. Les dues opcions principals per a IDE són el banc de treball IAR i ST Visual Develop (STVD), ambdós programes semblen ser dels anys 90, però després d’haver jugat un temps amb ell, vaig trobar que el STVD és una bona opció només perquè és totalment gratuït. De la mateixa manera, per al compilador, farem servir el compilador Cosmic C, només perquè és totalment gratuït. Una altra raó per triar aquest IDE i aquest compilador és que, un cop ens familiaritzem amb l’entorn, hauria de ser fàcil utilitzar qualsevol altre microcontrolador de 8 bits de ST sense massa esforç. Més endavant en aquest article veurem com instal·lar i configurar STVD amb el compilador Cosmic C.
Per a Flashing, utilitzarem ST Visual Programmer (STVP), aquesta eina s'instal·larà automàticament quan instal·leu STVD. S'integrarà al propi IDE, cosa que ens ajudarà a programar i depurar ràpidament. El programari final serà STMStudio, que és un programari de monitorització STM8. El programari pot ajudar-vos amb la depuració de STM8 en temps real i té algunes funcions interessants com el control de valor variable, la representació de gràfics, etc. No he experimentat prou amb aquest programari. I, almenys per als primers tutorials, no utilitzarem aquest programari, ja que no necessitarem grans requisits de depuració.
Biblioteca perifèrica estàndard STM8S: ST Microelectronics proporciona un conjunt de biblioteques per facilitar el desenvolupament de codi per als microcontroladors STM8S, en breu aquesta biblioteca s’anomena “ Biblioteca perifèrica estàndard ” o SPL. La biblioteca és fantàstica, tret que s’escriu tenint en compte tots els controladors possibles de la família de 8 bits STM8S / A i no només el controlador STM8S103F3P6 que utilitzarem. Per tant, hem de fer alguns ajustaments aquí i allà perquè funcioni (que compartiré més endavant). Però, tot i així, crec que val la pena provar-ho perquè pot fer que el desenvolupament sigui molt ràpid i, per tant, l’utilitzarem al nostre tutorial.
Si no voleu utilitzar la biblioteca, heu d’accedir directament als registres del controlador o fer programació de muntatge de metall nu. Tots dos són divertits, sempre que tingueu temps per aprendre-lo i utilitzar-lo. La meva idea és utilitzar la biblioteca SPL allà on funcioni bé i després treballar també a nivell de registre i muntatge, si cal. Intentem no reinventar la roda!
STM8S amb Arduino amb Sduino
La discussió sobre les opcions de programari mai no estarà completa si no mencio el suport STM8S d' Arduino IDE. Sí, la mateixa placa STM8S103F3P6 es pot programar directament des d’Arduino IDE mitjançant Sduino, gràcies a Michael Mayer. Però, el projecte encara està en fase de desenvolupament i és probable que trigui una mica de temps i suport a la comunitat a Sduino per proporcionar suport complet a la plataforma. No obstant això, pocs minuts després de jugar amb Sduino, em va començar a agradar i, per tant, vaig decidir fer un article a part sobre com programar el microcontrolador STM8S amb Arduino. Enllaçaré l'article aquí quan estigui llest. Aquest article discutirà per què i per què no heu d’utilitzar l’IDE Arduino per programar els microcontroladors STM8S.
Per tant, aquestes són les meves opcions per al programari i el maquinari. Feu-me saber a la secció de comentaris si creieu que algun altre programari hauria estat una opció millor i per què. També m'agradaria explorar altres opcions.
Baixant el programari requerit
Ara que hem decidit pel programari que farem servir per a aquest tutorial, anem a continuació i descarreguem-los mitjançant el següent enllaç. Tot el programari es pot descarregar i utilitzar de manera gratuïta, només hauríeu de registrar un compte gratuït a ST i Cosmic si encara no ho hagueu fet.
- ST Visual Develop (STVD)
- Compilador de Cosmic C.
- Biblioteca perifèrica estàndard
- STM8Cube Mx (opcional)
- STMStudio per a STM8 (opcional)
Configuració del compilador STVD i Cosmic C.
Després de descarregar el programari, seguiu les instruccions que apareixen a la pantalla per instal·lar-los. Recomanaria deixar-los als directoris predeterminats per evitar confusions posteriors. L'IDE STVD s'instal·larà sense cap esforç. Per al compilador Cosmic C, heu d’obtenir una clau de llicència gratuïta durant els processos d’instal·lació. Només heu de proporcionar informació de l'empresa amb un identificador de correu electrònic, si sou estudiant, només heu d'esmentar-ho. Els processos per obtenir la clau de llicència són instantanis i automàtics, tot i que a les instruccions de configuració es pot dir que pot trigar un o dos dies, he rebut la clau de llicència automàticament al meu identificador de correu electrònic tan bon punt l’he enviat, només cal que comproveu el SPAM. A continuació es mostra el meu correu electrònic de confirmació.

Segons la instrucció de correu electrònic, només cal que copieu el fitxer license.lic i enganxeu-lo a la subcarpeta "license" de la vostra carpeta d'instal·lació. Per a mi, el camí era "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License" . Simplement enganxeu el fitxer a la ubicació tal com es mostra a continuació.

Biblioteca perifèrica estàndard per a STM8S103F3P6
Com s’ha dit anteriorment, ST Microelectronics proporciona biblioteques anomenades SPL que es poden utilitzar per a tots els microcontroladors STM8S / A de 8 bits. Podeu descarregar l’SPL original des de ST Microelectronics i fer els canvis necessaris o descarregar les meves biblioteques SPL STM8S103F3P6 i utilitzar-les com a tals. Recomanaria la posterior.
SPL original de ST Microelectronics
STM8S103F3P6 SPL
Mentre esteu allà, assegureu-vos de descarregar el manual d’usuari de SPL, que serà molt útil a l’hora de programar el controlador.
Recopilació del primer programa
Ara que tot està a punt, provem de compilar el nostre primer programa per comprovar si l'IDE, el compilador i la biblioteca funcionen com haurien de fer-ho. També podeu consultar el vídeo a la part inferior de la pàgina per obtenir instruccions detallades.
Comenceu obrint STVD i seleccioneu Fitxer -> Espai de treball; a la finestra emergent, seleccioneu "Nova àrea de treball" i introduïu el nom i la ruta del projecte on s'hauria de desar el programa. Estic anomenant el meu programa BareMinimum i el deso en una carpeta de l’escriptori. Feu clic a D'acord i obtindreu el quadre de diàleg Projecte nou com es mostra a continuació.

Torno a anomenar el projecte com a bareminimum i sota la cadena d’eines hem d’especificar l’arrel de la cadena d’eines al camí on s’instal·la el compilador còsmic STM8. L'adreça de camí per defecte és "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8" . Després, feu clic a D'acord per obtenir la finestra "Selecció MCU".

Cerqueu STM8S103F3P i seleccioneu-lo i feu clic a D'acord. Això obrirà un nou projecte per a STM8S103F3P a STVD, les finestres haurien de tenir aquest aspecte quan acabi.

Feu clic amb el botó dret a "fitxer font" i seleccioneu "Afegeix fitxers a la carpeta" per incloure tots els fitxers c de la nostra biblioteca SPL, de manera similar feu clic amb el botó dret a Inclou fitxers per incloure tots els fitxers de capçalera. Si teniu cap pregunta, podeu consultar el vídeo següent. Un cop s'hagin afegit tots els fitxers, feu clic a Compila -> torna a construir tots i, a continuació, Compila per comprovar si el compilador i l'SPL funcionen com s'esperava. Si tot va bé, hauríeu de veure la pantalla següent amb un resultat de compilació 0 d'error i 0 d'advertència.

Fet això, ara podem estar segurs que totes les nostres biblioteques SPL funcionen amb el compilador Còsmic i STVD. Aquest és el procediment estàndard que seguirem per a cada nou projecte. També podeu incloure només els fitxers de capçalera i font necessaris per al projecte per reduir el temps de construcció, si cal.
Càrrega del codi de STVD a la placa de desenvolupament STM8S mitjançant ST-Link V2
Connecteu el ST-Link V2 amb la placa de desenvolupament com es mostra a continuació.

Les connexions són força senzilles i el millor és que no necessiteu components externs. La configuració del maquinari per a la programació es mostra a continuació, acabo d’utilitzar els cables de capçalera femenina per establir la meva connexió. Tanmateix, tingueu en compte que el pinout del vostre ST-Link pot diferir del meu. Assegureu-vos de seguir el pinout del dispositiu abans de fer les connexions.

Feu la connexió i connecteu el dispositiu a l'ordinador; la instal·lació del controlador hauria de començar automàticament. Podeu utilitzar el gestor de dispositius per assegurar-vos que l’ordinador ha descobert correctament ST-LINK V2. També notareu que el LED de prova de la placa parpelleja si és la primera vegada que enceneu la placa. Tan bon punt hàgim compilat correctament el codi a STVD, obtindrem un fitxer d'extensió "S19" al directori de depuració de la carpeta del projecte. El meu fitxer S19 es mostra a continuació.

Aquest S19 és com el fitxer Hex que s’ha de carregar al controlador. Per carregar el programa, obriu ST Visual Programmer (STVP) que hauria d’haver instal·lat juntament amb STVD. A continuació, a la finestra de configuració, seleccioneu com es mostra a la imatge següent i feu clic a D'acord.

A continuació, feu clic a Fitxer-> Obre i aneu al fitxer S19 que hem mostrat anteriorment. A continuació, per fer flaixar el dispositiu, seguiu Programa -> Pestanya actual . Si el parpelleig ha funcionat correctament, hauríeu de veure la següent sortida.

Per defecte, quan compreu el STM8S, tindrà un programa blin que parpelleja el LED de prova. Ara, després de penjar aquest codi en blanc, el LED deixarà de parpellejar.
Important: Vaig trobar que el meu ST-Link no va restablir la placa automàticament després de la programació. Vaig haver de desconnectar-lo i tornar-lo a connectar per comprovar la sortida del meu programa. No estic segur de si això és un problema per a tothom, feu-m'ho saber a la secció de comentaris. A més, mireu el vídeo a la part inferior que explica la solució.
Amb això, acabem aquest tutorial, hem après els conceptes bàsics del maquinari, hem configurat l’entorn de desenvolupament i hem après a compilar i penjar codi. Ara estem preparats per avançar i ho farem servir en tots els nostres propers tutorials. Si teniu alguna pregunta, envieu-les als nostres fòrums i estigueu atents a més.
