- De hulpmiddelen voor hardware- en softwareontwikkeling selecteren
- STM8S103F3P6 Ontwikkeling
- STM8S103F3P6 Programmeur
- STM8S103F3P6 IDE en compiler
- STM8S met Arduino met behulp van Sduino
- Vereiste software downloaden
- Opzetten van de STVD en Cosmic C Compiler
- Standard Peripheral Library voor STM8S103F3P6
- Het eerste programma samenstellen
- Upload de code van STVD naar STM8S Development board met ST-Link V2
De STM8 is een serie 8-bit Microcontrollers van STMicroelectronics die een veelgebruikte keuze van Microcontrollers is geworden voor kostengevoelige productontwikkeling. Ik heb eerder met AVR, PIC en een paar andere ARM Cortex Microcontrollers gewerkt, maar in sommige toepassingen worden ze zeker overdreven en verhogen ze de BOM-kosten aanzienlijk. Onlangs, na het afbreken van een paar goedkope Chinese producten, ontdekte ik dat de meeste ervan een STM8-microcontroller bevatten. Het IC is niet alleen goedkoop, maar zit ook boordevol functies en opties waardoor het geschikt is voor gebruik in veel verschillende toepassingen. Bijvoorbeeld de STM8S serie controllers (die we in deze tutorialserie zullen leren) is een controller voor algemeen gebruik, maar er zijn andere series zoals de STM8A voor Automotive Designs en STM8L voor Low Power batterijgevoede ontwerpen die de toepassing van deze controllers uitbreiden.
In deze reeks tutorials zullen we leren hoe we de STM8S-microcontrollers moeten programmeren, meer specifiek de STM8S103F3P6. De reden om aan de slag te gaan met dit specifieke onderdeelnummer is alleen vanwege de prijs / prestatiefactor. Leuk vinden!! Kijk er maar naar voor 0,25 $ (ongeveer 20 roepies) en we krijgen een 8-bit microcontroller met 16 MHz interne oscillator, 8 kB Flash, 10-bit ADC, UART, SPI en I2C. Wie zou er niet geïntrigeerd zijn? Ook is de STM8S103F3P6 erg populair, en daarom zul je als beginner voldoende ondersteuning vinden als je hulp nodig hebt buiten de tutorials om. Hieruit beginnen we een reeks tutorials, vergelijkbaar met de PIC Programming Tutorials, waar we zullen leren hoe deze controller te programmeren van een basisknipperlicht naar verschillende display- en sensorinterfaces. U kunt ook de STM32F103C8-zelfstudie en -projecten bekijken als u geïnteresseerd bent in 32-bits STM-microcontrollers.
De hulpmiddelen voor hardware- en softwareontwikkeling selecteren
Nu we de microcontroller deicide hebben, zullen we hardware- en softwareontwikkelingstools moeten selecteren om aan ons leerproces te beginnen. Er zijn veel opties, hier heb ik degene geselecteerd die gratis te gebruiken zijn en gemakkelijk voor iedereen beschikbaar zijn.
STM8S103F3P6 Ontwikkeling
Het officiële ontwikkelbord voor ST's 8-bit Microcontroller heet de STM8 Discovery-kit, maar we zullen een ander goedkoop ontwikkelbord gebruiken dat je gemakkelijk kunt vinden bij een lokale leverancier of in een online winkel. De afbeelding van het STM8S103F3P6-ontwikkelbord dat we in deze tutorial zullen gebruiken, wordt hieronder weergegeven.
Het bord bestaat alleen uit de minimale componenten die nodig zijn om met de ontwikkeling te beginnen. Het is breadboard-vriendelijk en geschikt voor compacte toepassingen. Het interne schakelschema voor het ontwikkelbord wordt hieronder weergegeven.
Als je goed kijkt, zul je merken dat we, afgezien van de STM8S103F3p6-controller, een resetknop hebben om de controller te resetten. Een power led en een test led aangesloten op PB5 (poort B pin 5) en een AMS1117 spanningsregelaar die de 5V van een USB poort omzet naar 3.3V voor de controller. De controller kan desgewenst ook op 5V worden gebruikt. De verschillende onderdelen van de controller zijn hieronder gemarkeerd. We hebben ook 4 programmeerpinnen, namelijk 3.3V, GND, SWIM en NRST die kunnen worden gebruikt om eenvoudig onze microcontroller te programmeren en debuggen.
STM8S103F3P6 Programmeur
Voor het programmeren van onze controller zullen we de ST-LINK v2 gebruiken, die goedkoop en gemakkelijk online beschikbaar is. Er zijn veel varianten (metaal, plastic, goud, roze, kaal bord) van dit ST-LINK v2-bord en ze hebben allemaal hetzelfde doel. De mijne wordt hieronder getoond, maar je kunt elk type ST-LINK-programmeur gebruiken, de pinout zal verschillen, dus zorg ervoor dat je de pinouts op de behuizing correct leest. Er is ook ST-LINK V3 van ST-Microelectronics zelf die kan worden gebruikt voor serieuze foutopsporing. We zullen dat voorlopig niet gebruiken omdat het een beetje duur is, we zullen het bewaren voor de toekomst.
STM8S103F3P6 IDE en compiler
Het selecteren van de juiste IDE en compiler voor STM8S103F3P6 is verwarrend, simpelweg omdat er veel opties zijn om uit te kiezen. De officiële tools die beschikbaar zijn voor de STM8 Microcontroller worden weergegeven in de onderstaande afbeelding.
Aan de configuratiekant hebben we de STM8CubeMx, ik heb de software geprobeerd en het was een complete teleurstelling voor mij. In tegenstelling tot de STM32Cube kan de STM8Cube niet automatisch code genereren. Het kan alleen pin-mapping genereren voor visualisatiedoeleinden en kan van pas komen als u uw code van de ene controller naar de andere porteert. Anders dan dat, zou ik het niet gebruiken. Dus in deze tutorialserie zullen we dit niet gebruiken.
Voor de IDE en Compiler hebben we veel opties om uit te kiezen. De twee beste opties voor IDE zijn IAR workbench en ST Visual Develop (STVD), beide software voelt alsof ze uit de jaren 90 komen, maar na enige tijd ermee te hebben gespeeld, vond ik dat de STVD alleen een goede keuze is omdat hij helemaal gratis is. Evenzo zullen we voor de compiler de Cosmic C-compiler gebruiken, opnieuw alleen omdat deze volledig gratis is. Een andere reden om voor deze IDE en Compiler te kiezen, is dat, als we eenmaal vertrouwd zijn met de omgeving, het gemakkelijk zou moeten zijn om zonder veel moeite een andere 8-bit Microcontroller van ST te gebruiken. We zullen later in dit artikel ingaan op het installeren en instellen van STVD met Cosmic C-compiler.
Voor Flashing zullen we ST Visual Programmer (STVP) gebruiken, deze tool wordt automatisch geïnstalleerd wanneer we STVD installeren. Het wordt in de IDE zelf geïntegreerd, waardoor we snel kunnen programmeren en debuggen. De uiteindelijke software is STMStudio, een STM8 Monitoring-software. De software kan helpen met real-time debuggen van STM8 en heeft een aantal coole features zoals het monitoren van variabele waarde, plotten van grafieken, etc. Ik heb niet genoeg geëxperimenteerd met deze software. En, in ieder geval voor de eerste paar tutorials, zullen we deze software niet gebruiken omdat we geen grote debug-vereisten nodig hebben.
STM8S Standard Peripheral Library: ST Microelectronics biedt een reeks bibliotheken om de ontwikkeling van code gemakkelijker te maken voor de STM8S Microcontrollers, deze bibliotheek wordt de " Standard Peripheral Library " of kortweg SPL genoemd. De bibliotheek is cool, behalve dat het is geschreven door rekening te houden met alle mogelijke controllers in de STM8S / A 8-bit-familie en niet alleen de STM8S103F3P6-controller die we zullen gebruiken. Daarom moeten we hier en daar wat aanpassingen maken om het te laten werken (die ik later zal delen). Maar toch, ik denk dat het de moeite waard is om het eens te proberen, omdat het de ontwikkeling erg snel kan maken, en daarom zullen we het in onze tutorial gebruiken.
Als u de bibliotheek niet wilt gebruiken, moet u rechtstreeks toegang krijgen tot de registers van de controller of programmeren voor bare metal-montage. Beide zijn leuk, mits je de tijd hebt om het te leren en te gebruiken. Mijn idee is om de SPL-bibliotheek overal te gebruiken waar deze goed werkt en dan indien nodig ook op register- en assembly-niveau te werken. Laten we proberen het wiel niet opnieuw uit te vinden!
STM8S met Arduino met behulp van Sduino
Het bespreken van de software-opties is nooit compleet als ik de Arduino IDE- ondersteuning STM8S niet noem. Ja, hetzelfde STM8S103F3P6-bord kan rechtstreeks vanuit Arduino IDE worden geprogrammeerd met behulp van Sduino, dankzij Michael Mayer. Maar het project bevindt zich nog in de ontwikkelingsfase en zou waarschijnlijk enige tijd en gemeenschapsondersteuning vergen voor Sduino om volledige platformondersteuning te bieden. Echter, binnen een paar minuten spelen met Sduino, begon ik het leuk te vinden en daarom besloot ik ook een apart artikel te doen over het programmeren van STM8S Microcontroller met Arduino. Ik zal het artikel hier linken als het klaar is. In dat artikel wordt besproken waarom en waarom u de Arduino IDE niet zou moeten gebruiken voor het programmeren van uw STM8S Microcontrollers.
Dit zijn dus mijn keuzes voor software en hardware, laat het me weten in het commentaargedeelte als je denkt dat andere software een betere keuze zou zijn geweest en waarom. Ik zou ook graag andere opties willen verkennen.
Vereiste software downloaden
Nu we hebben besloten welke software we voor deze tutorial zullen gebruiken, gaan we door en downloaden ze via de volgende link. Alle software is gratis te downloaden en te gebruiken, je zou gewoon een gratis account op ST en Cosmic moeten registreren als je dat nog niet had gedaan.
- ST Visual Develop (STVD)
- Cosmic C-compiler
- Standaard perifere bibliotheek
- STM8Cube Mx (optioneel)
- STMStudio voor STM8 (optioneel)
Opzetten van de STVD en Cosmic C Compiler
Nadat u beide software heeft gedownload, volgt u de instructies op het scherm om ze te installeren. Ik zou aanraden om ze in de standaardmappen te laten staan om verwarring achteraf te voorkomen. De STVD IDE zal zonder enige moeite worden geïnstalleerd. Voor de Cosmic C-compiler moet u tijdens de installatieprocessen een gratis licentiesleutel krijgen. U hoeft alleen maar bedrijfsinformatie met e-mail-ID op te geven, als u een student bent, vermeld dat dan gewoon. De processen voor het verkrijgen van de licentiesleutel zijn ogenblikkelijk en automatisch, hoewel de installatie-instructies zeggen dat het een dag of twee kan duren, ik heb de licentiesleutel automatisch op mijn e-mail-ID ontvangen zodra ik deze heb verzonden. controleer de SPAM. Mijn bevestigingsmail wordt hieronder weergegeven.
Zoals aangegeven in de e-mailinstructie, kopieert u gewoon het bestand license.lic en plakt u het in de submap "licentie" in uw installatiemap. Voor mij was het pad “C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License” . Plak het bestand gewoon op de locatie zoals hieronder wordt weergegeven.
Standard Peripheral Library voor STM8S103F3P6
Zoals eerder verteld, biedt ST Microelectronics bibliotheken genaamd SPL die kunnen worden gebruikt voor alle 8-bits STM8S / A-microcontrollers. U kunt ofwel de originele SPL downloaden van ST Microelectronics en de vereiste wijzigingen aanbrengen of mijn STM8S103F3P6 SPL-bibliotheken downloaden en ze als zodanig gebruiken. Ik zou het later aanbevelen.
Originele SPL van ST Microelectronics
STM8S103F3P6 SPL
Terwijl je daar bent, zorg er ook voor dat je de SPL-gebruikershandleiding downloadt, wat erg handig zal zijn bij het programmeren van de controller.
Het eerste programma samenstellen
Nu alles klaar is, gaan we proberen ons eerste programma te compileren om te controleren of de IDE, Compiler en Library allemaal naar behoren werken. Je kunt ook de video onderaan de pagina bekijken voor gedetailleerde instructies.
Begin met het openen van STVD en selecteer Bestand -> WorkSpace, selecteer in de pop-up "Nieuwe werkruimte" en voer de projectnaam en het pad in waar het programma moet worden opgeslagen. Ik noem mijn programma BareMinimum en sla het op in een map op het bureaublad. Klik op OK en u krijgt het dialoogvenster Nieuw project zoals hieronder weergegeven.
Ik noem het project opnieuw als bareminimum en onder toolchain moeten we de toolchain-root specificeren naar het pad waar de STM8 Cosmic-compiler is geïnstalleerd. Het standaardpadadres is “C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8” . Klik daarna op OK om het venster "MCU-selectie" te openen.
Zoek naar STM8S103F3P, selecteer het en klik op OK. Dit opent een nieuw project voor STM8S103F3P op STVD, de vensters zouden er als volgt uit moeten zien.
Klik met de rechtermuisknop op "bronbestand" en selecteer "Bestanden toevoegen aan map" om alle c-bestanden uit onze SPL-bibliotheek op te nemen, klik op dezelfde manier met de rechtermuisknop op Bestanden opnemen om alle headerbestanden op te nemen. Als je vragen hebt, kun je de onderstaande video raadplegen. Zodra alle bestanden zijn toegevoegd, klikt u op Build -> rebuil d all en vervolgens op Compile om te controleren of de compiler en SPL werken zoals verwacht. Als alles goed gaat, zou u het volgende scherm moeten zien met build-resultaat 0-fout en 0-waarschuwing.
Nu dit is gebeurd, kunnen we er zeker van zijn dat al onze SPL-bibliotheken werken met Cosmic-compiler en STVD. Dit is de standaardprocedure die we bij elk nieuw project zullen volgen. U kunt ook alleen de benodigde header- en bronbestanden opnemen die nodig zijn voor het project om indien nodig de bouwtijd te verkorten.
Upload de code van STVD naar STM8S Development board met ST-Link V2
Verbind de ST-Link V2 met het ontwikkelbord zoals hieronder getoond.
De aansluitingen zijn redelijk rechttoe rechtaan en het beste is dat je geen externe componenten nodig hebt. Mijn hardware setup voor programmeren wordt hieronder getoond, ik heb zojuist de vrouwelijke header-draden gebruikt om mijn verbinding te maken. Houd er echter rekening mee dat de pinout van uw ST-Link kan verschillen van de mijne, volg de pinout op het apparaat voordat u de aansluitingen maakt.
Maak de verbinding en sluit het apparaat aan op uw computer, de installatie van het stuurprogramma zou automatisch moeten beginnen. U kunt Apparaatbeheer gebruiken om ervoor te zorgen dat uw computer ST-LINK V2 correct heeft ontdekt. U zult ook zien dat de test-LED op het bord knippert als dit de eerste keer is dat het bord wordt ingeschakeld. Zodra we de code met succes hebben gecompileerd op STVD, zullen we een "S19" Extentiebestand krijgen onder de debug-directory van de projectmap. Mijn S19-bestand wordt hieronder weergegeven.
Deze S19 is net als het Hex-bestand dat naar de controller moet worden geüpload. Om het programma te uploaden, open ST Visual Programmer (STVP) die samen met STVD geïnstalleerd had moeten zijn. Selecteer vervolgens in het configuratievenster zoals weergegeven in de onderstaande afbeelding en klik op OK.
Klik vervolgens op Bestand-> Openen en navigeer naar het S19-bestand dat we eerder hebben laten zien. Om het apparaat te laten knipperen, volgt u Programma -> Huidig tabblad. Als het knipperen is gelukt, zou u de volgende uitvoer moeten zien.
Als u de STM8S koopt, heeft deze standaard een blin-programma dat de test-LED laat knipperen. Nu na het uploaden van deze lege code, zal de LED niet meer knipperen.
Belangrijk: ik ontdekte dat mijn ST-Link het bord niet automatisch reset na het programmeren. Ik moest het loskoppelen en opnieuw aansluiten om de uitvoer van mijn programma te controleren. Ik weet niet zeker of dit voor iedereen een probleem is, laat het me weten in het commentaargedeelte. Bekijk ook de video onderaan waarin de oplossing hiervoor wordt uitgelegd.
Laten we hiermee deze tutorial afronden, we hebben de basisprincipes van hardware geleerd, de ontwikkelomgeving opgezet en geleerd hoe we code moeten compileren en uploaden. We zijn nu klaar om vooruitgang te boeken en we zullen dit gebruiken in al onze komende tutorials. Als je vragen hebt, plaats ze dan op onze forums en blijf op de hoogte voor meer !!