- Valg af hardware- og softwareudviklingsværktøjer
- STM8S103F3P6 Udvikling
- STM8S103F3P6 Programmering
- STM8S103F3P6 IDE og Compiler
- STM8S med Arduino ved hjælp af Sduino
- Download af påkrævet software
- Opsætning af STVD og Cosmic C Compiler
- Standard perifert bibliotek til STM8S103F3P6
- Kompilering af det første program
- Uploade koden fra STVD til STM8S Development board ved hjælp af ST-Link V2
Den STM8 er en serie af 8-bit mikrocontrollere fra STMicroelectronics, der er blevet en fælles valg af Microcontroller til cost-følsomme produktudvikling. Jeg har tidligere arbejdet med AVR, PIC og et par andre ARM Cortex Microcontrollers, men helt sikkert i nogle applikationer bliver de overkillede og øger BOM-prisen betydeligt. For nylig, efter at have nedrevet et par billige kinesiske produkter, fandt jeg ud af, at de fleste af dem havde en STM8-mikrocontroller inde i den. IC'en er ikke kun billig, men også pakket med mange funktioner og muligheder, der gør den velegnet til brug i mange forskellige applikationer. For eksempel STM8S serien af controllere (som vi lærer i denne tutorial-serie) er en controller til generelle formål, men der er andre serier som STM8A til bildesign og STM8L til batteridrevne designs med lavt strømforbrug, der udvider anvendelsen af disse controllere.
I denne serie af selvstudier lærer vi, hvordan man programmerer STM8S mikrokontrollere, mere specifikt STM8S103F3P6. Årsagen til at komme i gang med dette specifikke varenummer er kun for pris til ydeevne faktor. Synes godt om!! bare se på det bare for 0,25 $ (ca. 20 rupees), vi får en 8-bit mikrocontroller med 16 MHz intern oscillator, 8 kB Flash, 10-bit ADC, UART, SPI og I2C. Hvem ville ikke blive fascineret? STM8S103F3P6 er også meget populær, og derfor vil du som nybegynder finde nok støtte, hvis du har brug for hjælp uden for tutorials. Fra dette vil vi have en sekvens af tutorials, der ligner PIC Programmering Tutorials, hvor vi lærer at programmere denne controller fra et grundlæggende blink til forskellige display- og sensorgrænseflader. Du kan også tjekke STM32F103C8 Tutorial og projekter, hvis du er interesseret i 32-bit STM Microcontrollers.
Valg af hardware- og softwareudviklingsværktøjer
Nu hvor vi har deicideret mikrokontrolleren, bliver vi nødt til at vælge hardware- og softwareudviklingsværktøjer for at begynde vores læringsproces. Der er mange muligheder, her har jeg valgt dem, der er gratis at bruge og let tilgængelige for alle.
STM8S103F3P6 Udvikling
Det officielle udviklingskort til ST's 8-bit Microcontroller hedder STM8 Discovery-kit, men vi bruger et andet billigt udviklingskort, som du nemt kan finde hos en lokal leverandør eller i onlinebutik. Billedet af STM8S103F3P6-udviklingskortet, som vi vil bruge i denne vejledning, er vist nedenfor.
Brættet består kun af de absolutte minimumskomponenter, der kræves for at starte udviklingen. Det er brødbrætvenligt og velegnet til kompakte applikationer. Det interne kredsløbsdiagram for udviklingskortet er vist nedenfor.
Når vi ser nærmere på, vil du bemærke, bortset fra STM8S103F3p6-controlleren, har vi en nulstillingsknap til at nulstille controlleren. En strømledning og en testled tilsluttet til PB5 (Port B pin 5) og en AMS1117 spændingsregulator, der konverterer 5V fra en USB-port til 3,3V til controlleren. Controlleren kan også fås til at fungere på 5V, hvis det kræves. De forskellige dele på controlleren er markeret nedenfor. Vi har også 4 programmeringsstifter, nemlig 3.3V, GND, SWIM og NRST, som kan bruges til nemt at programmere og debugge vores mikrocontroller.
STM8S103F3P6 Programmering
Til programmering af vores controller bruger vi ST-LINK v2, som er billig og let tilgængelig online. Der er mange varianter (metal, plastik, guld, lyserød, blottet bord) af dette ST-LINK v2-kort, og alle tjener det samme formål. Mine er vist nedenfor, men du kan bruge enhver type ST-LINK programmør, pinout vil variere, så bare sørg for at læse pinouts på kabinettet korrekt. Der er også ST-LINK V3 fra selve ST-Microelectronics, som kan bruges til seriøs fejlretning. Vi bruger ikke det indtil videre, da det er lidt dyrt, vi gemmer det til fremtiden.
STM8S103F3P6 IDE og Compiler
At vælge den rigtige IDE og Compiler til STM8S103F3P6 er forvirrende, simpelthen fordi der er mange muligheder at vælge imellem. De officielle værktøjer, der er tilgængelige til STM8 Microcontroller, vises i nedenstående billede.
På konfigurationssiden har vi STM8CubeMx, jeg prøvede softwaren, og det var en komplet svigt for mig. I modsætning til STM32Cube kan STM8Cube ikke automatisk generere kode. Det kan kun generere pin-kortlægning til visualiseringsformål og kan være nyttigt, hvis du porterer din kode fra en controller til en anden. Bortset fra det ville jeg ikke bruge det. Så i denne tutorial-serie bruger vi ikke dette.
For IDE og Compiler har vi mange muligheder at vælge imellem. De to øverste muligheder for IDE er IAR workbench og ST Visual Develop (STVD), begge softwaren føles som om de er fra 90'erne, men efter et stykke tid at lege med det fandt jeg, at STVD kun er et godt valg, fordi det er helt gratis. På samme måde bruger vi Cosmic C Compiler til Compileren, kun igen fordi den er helt gratis. En anden grund til at vælge denne IDE og Compiler er, at når vi bliver fortrolige med miljøet, skal det være let at bruge enhver anden 8-bit Microcontroller fra ST uden megen anstrengelse. Vi vil se nærmere på, hvordan du installerer og opsætter STVD med Cosmic C-compiler senere i denne artikel.
Til blinkning bruger vi ST Visual Programmer (STVP), dette værktøj installeres automatisk, når vi installerer STVD. Det vil blive integreret i selve IDE, hvilket hjælper os med hurtigt at programmere og debugge. Den endelige software bliver STMStudio, som er en STM8-overvågningssoftware. Softwaren kan hjælpe med real-time debugging af STM8 og har nogle seje funktioner som overvågning af variabel værdi, plotte graf osv. Jeg har ikke eksperimenteret nok med denne software. Og i det mindste for de første par tutorials bruger vi ikke denne software, da vi ikke har brug for store fejlretningskrav.
STM8S standard perifert bibliotek: ST Microelectronics leverer et sæt biblioteker for at gøre kodeudvikling lettere for STM8S Microcontrollers, dette bibliotek kaldes “ Standard Peripheral Library ” eller kort sagt SPL. Biblioteket er sejt bortset fra at det er skrevet ved at huske på alle de mulige controllere i STM8S / A 8-bit-familien og ikke kun STM8S103F3P6-controlleren, som vi vil bruge. Derfor er vi nødt til at foretage nogle justeringer her og der for at få det til at fungere (som jeg vil dele senere). Men alligevel tror jeg, det er værd at prøve det, fordi det kan gøre udviklingen meget hurtigt, og derfor bruger vi det i vores vejledning.
Hvis du ikke ønsker at bruge biblioteket, skal du direkte få adgang til controllerenes registre eller udføre programmering af bare metal-samling. Begge disse er sjove, forudsat at du har tid til at lære og bruge det. Min idé er at bruge SPL-biblioteket, hvor det fungerer godt, og derefter også arbejde på register- og forsamlingsniveau, hvis det kræves. Lad os prøve ikke at genopfinde hjulet!
STM8S med Arduino ved hjælp af Sduino
At diskutere softwareindstillingerne vil aldrig være komplet, hvis jeg ikke nævner Arduino IDE- support STM8S. Ja, det samme STM8S103F3P6-kort kan programmeres direkte fra Arduino IDE ved hjælp af Sduino takket være Michael Mayer. Men projektet er stadig i udviklingsfasen og vil sandsynligvis tage noget tid og samfundsstøtte til Sduino for at levere komplet platformsupport. Imidlertid, lige inden for få minutter efter at have spillet med Sduino, begyndte jeg at kunne lide det og besluttede derfor også at lave en separat artikel om, hvordan man programmerer STM8S Microcontroller med Arduino. Jeg vil linke artiklen her, når den er klar. Denne artikel vil diskutere hvorfor og hvorfor ikke du skal bruge Arduino IDE til programmering af dine STM8S Microcontrollers.
Så dette er mine valg til software og hardware, lad mig det vide i kommentarsektionen, hvis du tror, at anden software ville have været et bedre valg, og hvorfor. Jeg vil også gerne undersøge andre muligheder.
Download af påkrævet software
Nu hvor vi har besluttet den software, vi bruger til denne vejledning, lad os fortsætte og downloade dem ved hjælp af følgende link. Al softwaren er gratis at downloade og bruge, du skulle bare registrere en gratis konto på ST og Cosmic, hvis du ikke allerede havde gjort det.
- ST Visual Develop (STVD)
- Cosmic C Compiler
- Standard perifert bibliotek
- STM8Cube Mx (valgfri)
- STMStudio til STM8 (valgfri)
Opsætning af STVD og Cosmic C Compiler
Når du har downloadet begge softwaren, skal du blot følge instruktionerne på skærmen for at installere dem. Jeg vil anbefale at lade dem være i standardmapperne for at undgå senere forvirring. STVD IDE installeres uden nogen anstrengelse. For Cosmic C-kompilatoren skal du få en gratis licensnøgle under installationsprocesserne. Du skal bare give firmaoplysninger med e-mail-id, hvis du er studerende, skal du bare nævne det. Processerne med at få licensnøglen er øjeblikkelige og automatiske, selvom installationsvejledningen siger, at det kan tage en dag eller to, modtog jeg licensnøglen automatisk på mit e-mail-id, så snart jeg sendte den, bare sørg for at du tjek SPAM. Min bekræftelses-e-mail vises nedenfor.
I henhold til e-mail-instruktionen skal du bare kopiere filen licens.lic og indsætte i undermappen “licens” i din installationsmappe. For mig var stien "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License" . Indsæt blot filen som vist nedenfor.
Standard perifert bibliotek til STM8S103F3P6
Som tidligere fortalt leverer ST Microelectronics biblioteker kaldet SPL, som kan bruges til alle 8-bit STM8S / A mikrokontrollere. Du kan enten downloade den originale SPL fra ST Microelectronics og foretage de nødvendige ændringer eller downloade mine STM8S103F3P6 SPL-biblioteker og bruge dem som sådan. Jeg vil anbefale det senere.
Original SPL fra ST Microelectronics
STM8S103F3P6 SPL
Mens du er der, skal du også downloade SPL-brugervejledningen, hvilket vil være meget praktisk, når du programmerer controlleren.
Kompilering af det første program
Nu hvor alt er klar, lad os prøve at kompilere vores første program for at kontrollere, om IDE, Compiler og Library alle fungerer som de skal. Du kan også tjekke videoen nederst på siden for detaljerede instruktioner.
Start med at åbne STVD, og vælg Filer -> Arbejdsområde, i pop op-vinduet skal du vælge "Nyt arbejdsområde" og indtaste projektnavnet og stien, hvor programmet skal gemmes. Jeg navngiver mit program BareMinimum og gemmer det i en mappe på skrivebordet. Klik på OK, og du får dialogboksen Nyt projekt som vist nedenfor.
Jeg navngiver projektet som bareminimum igen, og under værktøjskæde skal vi specificere værktøjskædens rod til stien, hvor STM8 Cosmic-kompilatoren er installeret. Standardsti-adressen er “C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8” . Derefter skal du bare klikke på OK for at få vinduet "MCU Selection".
Søg efter STM8S103F3P, vælg den, og klik på OK. Dette åbner et nyt projekt til STM8S103F3P på STVD, vinduerne skal se sådan ud, når de er færdige.
Højreklik på "kildefil", og vælg "Føj filer til mappe" for at inkludere alle c-filer fra vores SPL-bibliotek, ligeledes højreklik på Inkluder filer for at inkludere alle headerfiler. Hvis du har spørgsmål, kan du henvise til videoen nedenfor. Når alle filerne er tilføjet, skal du klikke på Byg -> genopbyg d alle og derefter Kompilere for at kontrollere, om compileren og SPL fungerer som forventet. Hvis alt går godt, skal du se følgende skærmbillede med build-resultat 0-fejl og 0-advarsel.
Når dette er gjort, kan vi nu være sikre på, at alle vores SPL-biblioteker arbejder med Cosmic compiler og STVD. Dette er den standardprocedure, som vi vil følge for hvert nyt projekt. Du kan også kun medtage de nødvendige header og kildefiler, der er nødvendige for projektet for at reducere byggetiden, hvis det kræves.
Uploade koden fra STVD til STM8S Development board ved hjælp af ST-Link V2
Forbind ST-Link V2 med udviklingskortet som vist nedenfor.
Forbindelserne er ret lige fremad, og det bedste er, at du ikke har brug for eksterne komponenter. Min hardwareopsætning til programmering er vist nedenfor, jeg har lige brugt de kvindelige headerledninger til at oprette min forbindelse. Bemærk dog, at pin-out på din ST-Link kan afvige fra min. Sørg for at følge pinout på enheden, før du opretter forbindelser.
Opret forbindelsen og tilslut enheden til din computer, driverinstallationen skal begynde automatisk. Du kan bruge enhedsadministratoren til at sikre, om din computer har opdaget ST-LINK V2 korrekt. Du vil også bemærke, at test-LED'en på tavlen blinker, hvis det er første gang, at tændes for tavlen. Så snart vi har samlet koden på STVD, får vi en "S19" -udvidelsesfil under fejlfindingsmappen i projektmappen. Min S19-fil vises nedenfor.
Denne S19 er som Hex-filen, som skal uploades til controlleren. For at uploade programmet skal du åbne ST Visual Programmer (STVP), som skulle have været installeret sammen med STVD. Vælg derefter som vist i nedenstående billede i konfigurationsvinduet, og klik på OK.
Klik derefter på File-> Open og naviger til S19-filen, som vi viste tidligere. For derefter at blinke enheden skal du følge Program -> Fanen Nuværende . Hvis blinkingen lykkedes, skulle du se følgende output.
Når du køber STM8S, har den som standard et blin-program, der blinker test-LED'en. Efter upload af denne tomme kode blinker LED ikke længere.
Vigtigt: Jeg fandt ud af, at min ST-Link ikke nulstillede kortet automatisk efter programmering. Jeg var nødt til at afbryde og tilslutte den igen for at kontrollere output fra mit program. Jeg er ikke sikker på, om dette er et problem for alle, så lad mig det vide i kommentarfeltet. Tjek også videoen i bunden, der forklarer løsningen på dette.
Med dette, lad os afslutte denne vejledning, vi har lært det grundlæggende i hardware, har oprettet udviklingsmiljøet og lært, hvordan man kompilerer og uploader kode. Vi er nu klar til at komme videre, og vi vil bruge dette i alle vores kommende tutorials. Hvis du har spørgsmål, bedes du sende dem på vores fora og holde øje med mere !!