- Izbira orodij za razvoj strojne in programske opreme
- STM8S103F3P6 Razvoj
- Programer STM8S103F3P6
- STM8S103F3P6 IDE in prevajalnik
- STM8S z Arduinom z uporabo Sduina
- Nalaganje potrebne programske opreme
- Nastavitev STVD in Cosmic C Compilerja
- Standardna periferna knjižnica za STM8S103F3P6
- Sestavljanje prvega programa
- Nalaganje kode s STVD na razvojno ploščo STM8S z uporabo ST-Link V2
STM8 je serija 8-bitnih mikrokrmilnikov iz STMicroelectronics, ki je postala pogosta izbira mikrokrmilnika za cenovno občutljivo razvoj izdelkov. Pred tem sem že sodeloval z AVR, PIC in nekaterimi drugimi mikrokrmilniki ARM Cortex, vendar zagotovo v nekaterih aplikacijah postanejo pretirani in znatno povečajo stroške BOM. Pred kratkim sem po podiranju nekaj poceni kitajskih izdelkov ugotovil, da ima večina v sebi mikrokrmilnik STM8. IC ni samo poceni, temveč je opremljen z veliko funkcijami in možnostmi, zaradi česar je primeren za uporabo v številnih različnih aplikacijah. Na primer STM8S serija krmilnikov (ki se jih bomo naučili v tej vadbeni seriji) je krmilnik za splošno uporabo, obstajajo pa tudi druge serije, kot sta STM8A za avtomobilske modele in STM8L za zasnove z nizko porabo energije na baterije, kar razširja uporabo teh krmilnikov.
V tej seriji vadnic bomo izvedeli, kako programirati mikrokrmilnike STM8S, natančneje STM8S103F3P6. Razlog za začetek uporabe te posebne številke dela je samo v faktorju cene in zmogljivosti. Všeč !! samo poglejte le za 0,25 $ (približno 20 rupij) dobimo 8-bitni mikrokrmilnik s 16MHz internim oscilatorjem, 8kB Flash, 10-bitnim ADC, UART, SPI in I2C. Koga ne bi zanimalo? Tudi STM8S103F3P6 je zelo priljubljen, zato boste kot začetnik našli dovolj podpore, če potrebujete pomoč zunaj vadnic. Izhajajoč iz tega, bomo imeli zaporedje vaj, podobno kot vaje za programiranje PIC, kjer se bomo naučili, kako ta krmilnik programirati od osnovnega utripa do različnih povezav zaslona in senzorja. Če vas zanimajo 32-bitni mikrokrmilniki STM, si lahko ogledate tudi vadnico in projekte STM32F103C8.
Izbira orodij za razvoj strojne in programske opreme
Zdaj, ko smo razbili mikrokrmilnik, bomo morali izbrati orodja za razvoj strojne in programske opreme, da začnemo s svojim učnim procesom. Možnosti je veliko, tukaj sem izbral tiste, ki so brezplačni za uporabo in so lahko dostopni vsem.
STM8S103F3P6 Razvoj
Uradna razvojna plošča za 8-bitni mikrokrmilnik ST se imenuje STM8 Discovery kit, vendar bomo uporabili drugo poceni razvojno ploščo, ki jo zlahka najdete pri lokalnem dobavitelju ali v spletni trgovini. Slika razvojne plošče STM8S103F3P6, ki jo bomo uporabili v tej vadnici, je prikazana spodaj.
Tabla je sestavljena samo iz najmanjših komponent, ki so potrebne za začetek razvoja. Je prijazen do desk in primeren za kompaktne aplikacije. Interni diagram vezja za razvojno ploščo je prikazan spodaj.
Če natančneje pogledate, boste poleg krmilnika STM8S103F3p6 poleg gumba za ponastavitev krmilnika imeli še gumb za ponastavitev. Napajalni in preskusni vodnik, priključen na PB5 (vtič B vtiča 5) in regulator napetosti AMS1117, ki pretvori 5V iz vrat USB v 3.3V za krmilnik. Po potrebi lahko krmilnik deluje tudi na 5V. Različni deli na krmilniku so označeni spodaj. Na voljo imamo tudi 4 programske zatiče, in sicer 3,3 V, GND, SWIM in NRST, ki jih lahko uporabimo za enostavno programiranje in odpravljanje napak našega mikrokrmilnika.
Programer STM8S103F3P6
Za programiranje našega krmilnika bomo uporabili ST-LINK v2, ki je poceni in enostavno dostopen na spletu. Obstaja veliko različic (kovinske, plastične, zlate, roza, gole plošče) te plošče ST-LINK v2 in vse imajo isti namen. Moja je prikazana spodaj, vendar lahko uporabite katero koli vrsto programerja ST-LINK, pinout se bo razlikoval, zato poskrbite, da boste pravilno prebrali pinouts na ohišju. Obstaja tudi ST-LINK V3 iz same ST-Microelectronics, ki se lahko uporablja za resnejše odpravljanje napak. Tega za zdaj ne bomo uporabljali, saj je nekoliko drago, shranili ga bomo za prihodnost.
STM8S103F3P6 IDE in prevajalnik
Izbira pravega IDE-ja in prevajalnika za STM8S103F3P6 zmede, preprosto zato, ker lahko izbirate med številnimi možnostmi. Uradna orodja, ki so na voljo za mikrokrmilnik STM8, so prikazana na spodnji sliki.
Na strani za konfiguracijo imamo STM8CubeMx, preizkusil sem programsko opremo in zame je bila popolnoma razočarana. Za razliko od STM32Cube STM8Cube ne more samodejno generirati kode. Ustvari lahko preslikavo pinov samo za namene vizualizacije in je lahko koristen, če svojo kodo prenašate z enega krmilnika na drugega. Razen tega je ne bi uporabljal. Torej v tej seriji vadnic tega ne bomo uporabljali.
Za IDE in Compiler imamo na izbiro veliko možnosti. Prvi dve možnosti za IDE sta IAR workbench in ST Visual Develop (STVD), obe programski opremi se zdita kot iz 90-ih, a po določenem času igranja z njo sem ugotovil, da je STVD dobra izbira samo zato, ker je popolnoma brezplačen. Podobno bomo za Compiler uporabljali Cosmic C Compiler, spet samo zato, ker je popolnoma brezplačen. Drug razlog za izbiro tega IDE-ja in Compilerja je, da bi moralo biti, ko se seznanimo z okoljem, brez kakršnega koli truda enostavno uporabljati kateri koli drug 8-bitni mikrokrmilnik podjetja ST. V nadaljevanju tega članka bomo preučili, kako namestiti in nastaviti STVD s prevajalnikom Cosmic C.
Za utripanje bomo uporabili ST Visual Programmer (STVP), to orodje se bo samodejno namestilo, ko namestimo STVD. Vgrajen bo v sam IDE, kar nam bo pomagalo pri hitrem programiranju in odpravljanju napak. Končna programska oprema bo STMStudio, ki je programska oprema za spremljanje STM8. Programska oprema lahko pomaga pri sprotnem odpravljanju napak STM8 in ima nekaj odličnih funkcij, kot so spremljanje spremenljive vrednosti, risanje grafa itd. S to programsko opremo nisem dovolj eksperimentiral. In vsaj za prvih nekaj vadnic te programske opreme ne bomo uporabljali, saj ne bomo potrebovali velikih zahtev za odpravljanje napak.
Standardna periferna knjižnica STM8S: ST Microelectronics ponuja nabor knjižnic, ki olajšajo razvoj kode za mikrokrmilnike STM8S. Ta knjižnica se imenuje » Standardna periferna knjižnica « ali na kratko SPL. Knjižnica je kul, le da je napisana z upoštevanjem vseh možnih krmilnikov iz 8-bitne družine STM8S / A in ne samo krmilnika STM8S103F3P6, ki ga bomo uporabljali. Zato moramo tu in tam narediti nekaj popravkov, da bo uspelo (kar bom delil kasneje). Ampak vseeno verjamem, da je vredno poskusiti, ker lahko zelo hitro razvije razvoj, zato ga bomo uporabili v naši vadnici.
Če ne želite uporabljati knjižnice, morate neposredno dostopati do registrov krmilnika ali programirati sklop golih kovin. Oboje je zabavno, če imate čas, da se ga naučite in izkoristite. Moja ideja je, da bi knjižnico SPL uporabljali povsod, kjer deluje dobro, nato pa po potrebi delali tudi na ravni registra in sestavljanja. Poskusimo ne izumiti kolesa!
STM8S z Arduinom z uporabo Sduina
Razprava o možnostih programske opreme ne bo nikoli popolna, če ne omenjam podpore za Arduino IDE STM8S. Da, isto ploščo STM8S103F3P6 je mogoče programirati neposredno iz Arduino IDE s pomočjo Sduino, zahvaljujoč Michaelu Mayerju. Toda projekt je še v fazi razvoja in bi verjetno potreboval nekaj časa in podporo skupnosti za Sduino, da bi zagotovil popolno podporo platformi. Vendar mi je že v nekaj minutah igranja s Sduinom postalo všeč, zato sem se odločil, da naredim tudi ločen članek o programiranju mikrokrmilnika STM8S z Arduino. Članek bom tukaj povezal, ko bo pripravljen. V tem članku bomo razpravljali o tem, zakaj in zakaj ne bi morali uporabiti Arduino IDE za programiranje mikrokrmilnikov STM8S.
Torej, to so moje izbire za programsko in strojno opremo. V oddelku za komentar me obvestite, če menite, da bi bila kakšna druga programska oprema boljša izbira in zakaj. Želel bi raziskati tudi druge možnosti.
Nalaganje potrebne programske opreme
Zdaj, ko smo se odločili za programsko opremo, ki jo bomo uporabili za to vadnico, nadaljujmo in jo naložimo s pomočjo naslednje povezave. Vsa programska oprema je brezplačna za prenos in uporabo, registrirali bi morali samo brezplačen račun na ST in Cosmic, če tega še niste storili.
- ST Visual Develop (STVD)
- Prevajalnik Cosmic C
- Standardna obrobna knjižnica
- STM8Cube Mx (neobvezno)
- STMStudio za STM8 (neobvezno)
Nastavitev STVD in Cosmic C Compilerja
Ko ste prenesli obe programski opremi, sledite navodilom na zaslonu, da ju namestite. Priporočam, da jih pustite v privzetih imenikih, da se izognete poznejšim zmedam. ID STVD bo nameščen brez napora. Za prevajalnik Cosmic C morate med namestitvenimi postopki dobiti brezplačni licenčni ključ. Podatke o podjetju morate navesti z e-poštnim ID-jem, če ste študent, to samo omenite. Postopki pridobivanja licenčnega ključa so trenutni in samodejni, čeprav navodila za nastavitev pravijo, da lahko traja dan ali dva, licenčni ključ sem samodejno prejel na svoj e-poštni ID, takoj ko sem ga poslal, samo poskrbite, da preverite SPAM. Moja potrditvena e-pošta je prikazana spodaj.
V skladu z navodili za e-pošto preprosto kopirajte datoteko license.lic in prilepite v podmapo »licenca« v svoji namestitveni mapi. Zame je bila pot »C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License« . Datoteko preprosto prilepite na mesto, kot je prikazano spodaj.
Standardna periferna knjižnica za STM8S103F3P6
Kot smo že povedali, ST Microelectronics ponuja knjižnice, imenovane SPL, ki se lahko uporabljajo za vse 8-bitne mikrokrmilnike STM8S / A. Lahko prenesete originalni SPL s strani ST Microelectronics in izvedete potrebne spremembe ali prenesete moje knjižnice SPL STM8S103F3P6 in jih kot take uporabite. Priporočam kasneje.
Original SPL podjetja ST Microelectronics
STM8S103F3P6 SPL
Medtem ko ste tam, zagotovite tudi prenos uporabniškega priročnika SPL, ki bo zelo priročen pri programiranju krmilnika.
Sestavljanje prvega programa
Zdaj, ko je vse pripravljeno, poskusimo sestaviti naš prvi program, da preverimo, ali IDE, prevajalnik in knjižnica delujejo tako, kot bi morali. Podrobna navodila si lahko ogledate tudi v videu na dnu strani.
Najprej odprite STVD in izberite File -> WorkSpace, v pojavnem oknu izberite »New Workspace« in vnesite ime in pot projekta, kamor naj se program shrani. Svoj program poimenujem BareMinimum in ga shranim v mapo na namizju. Kliknite V redu in prikazalo se bo pogovorno okno Nov projekt, kot je prikazano spodaj.
Projekt spet imenujem kot minimalen in pod orodjarno moramo določiti koren orodjarne do poti, kjer je nameščen prevajalnik STM8 Cosmic. Privzeti naslov poti je »C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8« . Po tem kliknite V redu, da se prikaže okno »Izbira MCU«.
Poiščite STM8S103F3P, izberite ga in kliknite V redu. S tem se bo odprl nov projekt za STM8S103F3P na STVD, okna bi morala biti videti končana.
Z desno miškino tipko kliknite "izvorno datoteko" in izberite "Dodaj datoteke v mapo", da vključite vse datoteke c iz naše knjižnice SPL, podobno z desno miškino tipko kliknite Vključi datoteke, da vključite vse datoteke glave. Če imate kakršna koli vprašanja, si oglejte spodnji video. Ko so dodane vse datoteke, kliknite Build -> rebuil d all in nato Compile, da preverite, ali prevajalnik in SPL delujeta po pričakovanjih. Če gre vse dobro, bi morali videti naslednji zaslon z napako z rezultatom gradnje 0 in opozorilom 0.
Ko smo to storili, smo zdaj lahko prepričani, da vse naše knjižnice SPL delujejo s prevajalnikom Cosmic in STVD. To je standardni postopek, ki ga bomo upoštevali pri vsakem novem projektu. Vključite lahko tudi samo potrebno glavo in izvorne datoteke, ki so potrebne projektu, da po potrebi skrajšajo čas gradnje.
Nalaganje kode s STVD na razvojno ploščo STM8S z uporabo ST-Link V2
Povežite ST-Link V2 z razvojno ploščo, kot je prikazano spodaj.
Povezave so precej naravnost in najboljši del je, da ne potrebujete zunanjih komponent. Moja nastavitev strojne opreme za programiranje je prikazana spodaj, pravkar sem uporabil ženske priključne žice. Vendar upoštevajte, da se izhod vašega ST-Link-a morda razlikuje od mojega; pred vzpostavljanjem povezav sledite izvleku na napravi.
Vzpostavite povezavo in napravo povežite z računalnikom, namestitev gonilnika se mora začeti samodejno. Z upraviteljem naprav lahko preverite, ali je računalnik pravilno odkril ST-LINK V2. Če prvič napajate ploščo, boste na plošči opazili utripajočo testno lučko. Takoj, ko bomo uspešno sestavili kodo na STVD, bomo v imeniku za odpravljanje napak v mapi projekta dobili razširitveno datoteko “S19”. Moja datoteka S19 je prikazana spodaj.
Ta S19 je kot Hex datoteka, ki jo je treba naložiti v krmilnik. Če želite naložiti program, odprite ST Visual Programmer (STVP), ki bi ga morali namestiti skupaj s STVD. Nato v oknu za konfiguracijo izberite, kot je prikazano na spodnji sliki, in kliknite V redu.
Nato kliknite Datoteka-> Odpri in se pomaknite do datoteke S19, ki smo jo že prikazali. Nato napravo utripate tako, da sledite programu -> trenutni zavihek. Če je utripanje uspešno, bi morali videti naslednji izhod.
Privzeto bo ob nakupu STM8S imel utripajoč program, ki utripa testno LED. Po nalaganju te prazne kode LED ne bo več utripal.
Pomembno: Ugotovil sem, da moj ST-Link po programiranju ni samodejno ponastavil plošče. Moral sem ga odklopiti in znova povezati, da sem preveril izhod svojega programa. Nisem prepričan, ali je to težava za vse, sporočite mi v oddelku za komentarje. Oglejte si tudi videoposnetek na dnu, ki pojasnjuje rešitev za to.
S tem zaključimo to vadnico, naučili smo se osnov strojne opreme, nastavili razvojno okolje in se naučili, kako sestavljati in naložiti kodo. Zdaj smo pripravljeni napredovati in to bomo uporabili v vseh naslednjih vajah. Če imate kakršna koli vprašanja, jih objavite na naših forumih in spremljajte še več !!