- Velge maskinvare- og programvareutviklingsverktøy
- STM8S103F3P6 Utvikling
- STM8S103F3P6 Programmerer
- STM8S103F3P6 IDE og kompilator
- STM8S med Arduino ved bruk av Sduino
- Laster ned påkrevd programvare
- Sette opp STVD og Cosmic C Compiler
- Standard perifert bibliotek for STM8S103F3P6
- Kompilering av det første programmet
- Laste opp koden fra STVD til STM8S utviklingskort ved hjelp av ST-Link V2
Den STM8 er en serie med 8-bits mikrokontrollere fra STMicroelectronics som har blitt et vanlig valg av Microcontroller for utviklingskostnader-sensitive produkt. Jeg har tidligere jobbet med AVR, PIC og noen få andre ARM Cortex Microcontrollers, men sikkert i noen applikasjoner blir de overkill og øker BOM-kostnadene betraktelig. Nylig, etter å ha revet ned noen billige kinesiske produkter, fant jeg ut at de fleste av dem hadde en STM8-mikrokontroller inne i den. IC er ikke bare billig, men også fullpakket med mange funksjoner og alternativer som gjør den egnet til å brukes i mange forskjellige applikasjoner. For eksempel STM8S serien med kontrollere (som vi vil lære i denne opplæringsserien) er en generell kontroller, men det er andre serier som STM8A for Automotive Designs og STM8L for Low Power batteridrevne design som utvider bruken av disse kontrollerne.
I denne opplæringsserien lærer vi hvordan vi programmerer STM8S mikrokontrollere, nærmere bestemt STM8S103F3P6. Årsaken til å komme i gang med dette spesifikke delenummeret er bare for pris til ytelsesfaktor. Som!! bare se på det bare for 0,25 $ (ca. 20 rupees) vi får en 8-biters mikrokontroller med 16 MHz intern oscillator, 8 kB Flash, 10-bit ADC, UART, SPI og I2C. Hvem ville ikke bli fascinert? STM8S103F3P6 er også populært, og derfor vil du som nybegynner finne nok støtte hvis du trenger hjelp utenfor veiledningen. Med utgangspunkt i dette vil vi ha en sekvens av opplæringsprogrammer, som ligner på PIC-programmeringsveiledningene, hvor vi lærer hvordan du programmerer denne kontrolleren fra en grunnleggende blinking til forskjellige skjerm- og sensorgrensesnitt. Du kan også sjekke ut STM32F103C8-opplæringen og prosjekter hvis du er interessert i 32-bit STM Microcontrollers.
Velge maskinvare- og programvareutviklingsverktøy
Nå som vi har deicid mikrokontrolleren, må vi velge verktøy for utvikling av maskinvare og programvare for å starte læringsprosessen. Det er mange alternativer, her har jeg valgt de som er gratis å bruke og lett tilgjengelige for alle.
STM8S103F3P6 Utvikling
Det offisielle utviklingsbrettet for STs 8-biters mikrokontroller kalles STM8 Discovery-settet, men vi vil bruke et annet billig utviklingskort som du enkelt kan finne hos en lokal leverandør eller i nettbutikken. Bildet av STM8S103F3P6 utviklingskortet som vi vil bruke i denne opplæringen, er vist nedenfor.
Styret består bare av minimumskomponenter som kreves for å starte utviklingen. Det er brødbordvennlig og egnet for kompakte applikasjoner. Det interne kretsskjemaet for utviklingskortet er vist nedenfor.
Når du ser nærmere på, vil du legge merke til, bortsett fra STM8S103F3p6-kontrolleren, har vi en tilbakestillingsknapp for å tilbakestille kontrolleren. En strømledning og en testledning koblet til PB5 (Port B pin 5) og en AMS1117 spenningsregulator som konverterer 5V fra en USB-port til 3,3V for kontrolleren. Kontrolleren kan også fås til å operere på 5V om nødvendig. De forskjellige delene på kontrolleren er merket nedenfor. Vi har også 4 programmeringspinner, nemlig 3.3V, GND, SWIM og NRST, som kan brukes til å enkelt programmere og feilsøke mikrokontrolleren vår.
STM8S103F3P6 Programmerer
For å programmere kontrolleren vår, bruker vi ST-LINK v2 som er billig og lett tilgjengelig online. Det er mange varianter (metall, plast, gull, rosa, bart bord) av dette ST-LINK v2-kortet, og alle tjener samme formål. Mine er vist nedenfor, men du kan bruke alle typer ST-LINK programmerere, pinout vil variere, så bare sørg for at du leser pinouts på kabinettet riktig. Det er også ST-LINK V3 fra selve ST-Microelectronics som kan brukes til seriøs feilsøking. Vi bruker ikke det foreløpig, siden det er litt dyrt, vil vi lagre det for fremtiden.
STM8S103F3P6 IDE og kompilator
Å velge riktig IDE og kompilator for STM8S103F3P6 er forvirrende, ganske enkelt fordi det er mange alternativer å velge mellom. De offisielle verktøyene som er tilgjengelige for STM8 Microcontroller vises i bildet nedenfor.
På konfigurasjonssiden har vi STM8CubeMx, jeg prøvde programvaren, og det var en fullstendig svikt for meg. I motsetning til STM32Cube kan STM8Cube ikke generere kode automatisk. Det kan bare generere pin-kartlegging for visualiseringsformål og kan være nyttig hvis du porterer koden din fra en kontroller til en annen. Bortsett fra det, ville jeg ikke bruke den. Så i denne opplæringsserien bruker vi ikke dette.
For IDE og Compiler har vi mange alternativer å velge mellom. De to beste alternativene for IDE er IAR-arbeidsbenk og ST Visual Develop (STVD), begge programvarene føles som om de er fra 90-tallet, men etter en stund å leke med det, fant jeg ut at STVD bare er et godt valg fordi det er helt gratis. Tilsvarende vil vi for Compileren bruke Cosmic C Compiler, igjen bare fordi den er helt gratis. En annen grunn til å velge denne IDE og Compiler er at når vi blir kjent med miljøet, bør det være enkelt å bruke en hvilken som helst annen 8-biters mikrokontroller fra ST uten mye anstrengelse. Vi vil se nærmere på hvordan du installerer og setter opp STVD med Cosmic C-kompilatoren senere i denne artikkelen.
For blinking bruker vi ST Visual Programmer (STVP), dette verktøyet blir automatisk installert når vi installerer STVD. Den vil bli integrert i IDE selv, og hjelper oss med å raskt programmere og feilsøke. Den endelige programvaren blir STMStudio, som er en STM8-overvåkingsprogramvare. Programvaren kan hjelpe med sanntids feilsøking av STM8 og har noen kule funksjoner som å overvåke variabel verdi, plotte graf osv. Jeg har ikke eksperimentert nok med denne programvaren. Og i det minste de første opplæringene bruker vi ikke denne programvaren siden vi ikke trenger store feilsøkingskrav.
STM8S Standard Peripheral Library: ST Microelectronics tilbyr et sett med biblioteker for å gjøre kodeutvikling enklere for STM8S Microcontrollers. Dette biblioteket kalles " Standard Peripheral Library " eller kort sagt SPL. Biblioteket er kult bortsett fra at det er skrevet ved å huske på alle mulige kontrollere i STM8S / A 8-biters familie og ikke bare STM8S103F3P6-kontrolleren som vi skal bruke. Derfor må vi lage noen justeringer her og der for å få det til å fungere (som jeg vil dele senere). Men likevel, jeg tror det er verdt å prøve, fordi det kan gjøre utviklingen veldig rask, og derfor vil vi bruke den i veiledningen vår.
Hvis du ikke vil bruke biblioteket, må du få direkte tilgang til registerene til kontrolleren eller gjøre programmering av metallmontering. Begge disse er morsomme, forutsatt at du har tid til å lære og bruke det. Tanken min er å bruke SPL-biblioteket hvor det fungerer bra, og deretter også jobbe på register- og monteringsnivå om nødvendig. La oss prøve å ikke finne opp hjulet på nytt!
STM8S med Arduino ved bruk av Sduino
Å diskutere programvarealternativene vil aldri være komplett hvis jeg ikke nevner Arduino IDE- støtten STM8S. Ja, det samme STM8S103F3P6-kortet kan programmeres direkte fra Arduino IDE ved hjelp av Sduino, takket være Michael Mayer. Men prosjektet er fremdeles i utviklingsfasen og vil sannsynligvis ta litt tid og støtte fra samfunnet for Sduino for å gi fullstendig plattformstøtte. Imidlertid, bare i løpet av få minutter etter å ha spilt med Sduino, begynte jeg å like det, og bestemte meg derfor for å også gjøre en egen artikkel om hvordan jeg skal programmere STM8S Microcontroller med Arduino. Jeg vil koble artikkelen her når den er klar. Denne artikkelen vil diskutere hvorfor og hvorfor ikke du bør bruke Arduino IDE til å programmere STM8S Microcontrollers.
Så dette er valgene mine for programvare og maskinvare, gi meg beskjed i kommentarseksjonen hvis du tror at annen programvare hadde vært et bedre valg og hvorfor. Jeg vil også utforske andre alternativer.
Laster ned påkrevd programvare
Nå som vi har bestemt oss for programvaren vi skal bruke til denne opplæringen, la oss fortsette og laste dem ned ved hjelp av følgende lenke. All programvaren er gratis å laste ned og bruke, du må bare registrere en gratis konto på ST og Cosmic hvis du ikke allerede hadde gjort det.
- ST Visual Develop (STVD)
- Cosmic C Compiler
- Standard perifert bibliotek
- STM8Cube Mx (valgfritt)
- STMStudio for STM8 (valgfritt)
Sette opp STVD og Cosmic C Compiler
Når du har lastet ned både programvaren, følger du bare instruksjonene på skjermen for å installere dem. Jeg vil anbefale å legge dem igjen i standardkatalogene for å unngå senere forvirring. STVD IDE installeres uten noen anstrengelse. For Cosmic C-kompilatoren må du få en gratis lisensnøkkel under installasjonsprosessene. Du må bare oppgi bedriftsinformasjon med e-post-ID, hvis du er student, bare nevn det. Prosessene for å få lisensnøkkelen er øyeblikkelige og automatiske, selv om oppsettinstruksjonene sier at det kan ta en dag eller to, mottok jeg lisensnøkkelen automatisk på min e-post-ID så snart jeg sendte den inn, bare vær sikker på at du sjekk SPAM. Bekreftelses-e-posten min vises nedenfor.
I henhold til e-postinstruksjonen er det bare å kopiere licens.lic-filen og lime inn i "lisens" -undermappen i installasjonsmappen. For meg var banen "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License" . Bare lim inn filen som vist nedenfor.
Standard perifert bibliotek for STM8S103F3P6
Som tidligere fortalt tilbyr ST Microelectronics biblioteker kalt SPL som kan brukes til alle 8-biters STM8S / A mikrokontrollere. Du kan enten laste ned den originale SPL fra ST Microelectronics og gjøre de nødvendige endringene eller laste ned STM8S103F3P6 SPL-bibliotekene mine og bruke dem som sådan. Jeg vil anbefale det senere.
Original SPL fra ST Microelectronics
STM8S103F3P6 SPL
Mens du er der, sørg også for å laste ned SPL brukerhåndbok, som vil være veldig nyttig når du programmerer kontrolleren.
Kompilering av det første programmet
Nå som alt er klart, la oss prøve å kompilere vårt første program for å sjekke om IDE, Compiler og Library alle fungerer som de skal. Du kan også sjekke videoen nederst på siden for detaljerte instruksjoner.
Start med å åpne STVD og velg File -> WorkSpace, i popup-vinduet, velg “New Workspace” og skriv inn prosjektnavnet og banen der programmet skal lagres. Jeg navngir programmet BareMinimum og lagrer det i en mappe på skrivebordet. Klikk OK, og du får dialogboksen Nytt prosjekt som vist nedenfor.
Jeg kaller prosjektet som bareminimum igjen, og under verktøykjede må vi spesifisere verktøykjedens rot til banen der STM8 Cosmic-kompilatoren er installert. Standard stiadresse er "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8" . Etter det er det bare å klikke OK for å få "MCU Selection" -vinduet.
Søk etter STM8S103F3P, velg den og klikk OK. Dette åpner et nytt prosjekt for STM8S103F3P på STVD, vinduene skal se slik ut når du er ferdig.
Høyreklikk på “kildefil” og velg “Legg til filer i mappe” for å inkludere alle c-filene fra SPL-biblioteket vårt, og høyreklikk på samme måte på Inkluder filer for å inkludere alle headerfilene. Hvis du har spørsmål, kan du referere til videoen nedenfor. Når alle filene er lagt til, klikker du Bygg -> gjenoppbyg alt og deretter Kompiler for å sjekke om kompilatoren og SPL fungerer som forventet. Hvis alt går bra, bør du se følgende skjermbilde med bygningsresultat 0 feil og 0 advarsel.
Når dette er gjort, kan vi nå være sikre på at alle våre SPL-biblioteker jobber med Cosmic compiler og STVD. Dette er standardprosedyren som vi vil følge for hvert nye prosjekt. Du kan også bare inkludere de nødvendige header- og kildefilene som er nødvendige for prosjektet for å redusere byggetiden om nødvendig.
Laste opp koden fra STVD til STM8S utviklingskort ved hjelp av ST-Link V2
Koble ST-Link V2 til utviklingskortet som vist nedenfor.
Tilkoblingene er ganske rett frem, og det beste er at du ikke trenger noen eksterne komponenter. Maskinvareoppsettet mitt for programmering er vist nedenfor, jeg har nettopp brukt de kvinnelige toppkablene for å få forbindelse. Vær imidlertid oppmerksom på at pin-utgangen på ST-Link kan variere fra min. Sørg for å følge pinout på enheten før du kobler til.
Opprett tilkoblingen og koble enheten til datamaskinen din, driverinstallasjonen skal begynne automatisk. Du kan bruke enhetsbehandleren for å sikre at datamaskinen din har oppdaget ST-LINK V2 riktig. Du vil også legge merke til at test-LED-en på tavlen blinker hvis det er første gang du setter strøm på tavlen. Så snart vi har samlet koden på STVD, vil vi få en "S19" -utvidelsesfil under feilsøkingskatalogen til prosjektmappen. S19-filen min vises nedenfor.
Denne S19 er som Hex-filen som skal lastes opp til kontrolleren. For å laste opp programmet, åpne ST Visual Programmer (STVP) som skulle ha installert sammen med STVD. Velg deretter som vist i bildet under i konfigurasjonsvinduet og klikk OK.
Klikk deretter på Fil-> Åpne og naviger til S19-filen som vi viste tidligere. For å blinke enheten følger du Program -> Gjeldende fane. Hvis blinkingen var vellykket, bør du se følgende utdata.
Når du kjøper STM8S, vil det som standard ha et blin-program som blinker test-LED-en. Nå etter at du har lastet opp denne tomme koden, vil ikke LED-lampen lenger blinke.
Viktig: Jeg fant ut at ST-Link ikke tilbakestillte kortet automatisk etter programmering. Jeg måtte koble fra og koble den til igjen for å kontrollere utdataene til programmet mitt. Jeg er ikke sikker på om dette er et problem for alle, gi meg beskjed i kommentarfeltet. Sjekk også ut videoen nederst som forklarer løsningen på dette.
Med dette, la oss avslutte denne opplæringen, vi har lært det grunnleggende om maskinvare, har satt opp utviklingsmiljøet og lært hvordan vi kan kompilere og laste opp kode. Vi er nå klare til å komme videre, og vi vil bruke dette i alle våre kommende opplæringsprogrammer. Hvis du har spørsmål, vennligst legg dem inn på forumene våre og følg med på mer !!