- Pagpili ng Mga Tool sa Pag-unlad ng Hardware at Software
- Pag-unlad ng STM8S103F3P6
- STM8S103F3P6 Programmer
- STM8S103F3P6 IDE at Compiler
- STM8S kasama ang Arduino gamit ang Sduino
- Pagda-download ng Mga Kinakailangan na Software
- Pagse-set up ng STVD at Cosmic C Compiler
- Karaniwang Peripheral Library para sa STM8S103F3P6
- Pag-iipon ng Unang Programa
- Ang pag-upload ng Code mula sa STVD patungo sa STM8S Development board gamit ang ST-Link V2
Ang STM8 ay isang serye ng 8-bit Microcontrollers mula sa STMicroelectronics na naging isang karaniwang pagpipilian ng Microcontroller para sa pagbuo ng produktong sensitibo sa gastos. Nakipagtulungan ako dati sa AVR, PIC, at ilang iba pang ARM Cortex Microcontrollers, ngunit tiyak na sa ilang mga aplikasyon, labis na silang napalaki at nadagdagan ang gastos sa BOM. Kamakailan lamang, pagkatapos masira ang ilang murang mga produktong Intsik, nalaman ko na ang karamihan sa kanila ay mayroong isang STM8 microcontroller sa loob nito. Ang IC ay hindi lamang mura ngunit naka-pack din ito ng maraming mga tampok at mga pagpipilian na ginagawang angkop upang magamit sa maraming iba't ibang mga application. Halimbawa, ang STM8S serye ng mga tagakontrol (na malalaman natin sa seryeng tutorial na ito) ay isang pangkalahatang layunin na kontrol ngunit may iba pang mga serye tulad ng STM8A para sa Mga Disenyo ng Automotive at STM8L para sa mga disenyo na pinapatakbo ng baterya ng Mababang Kapangyarihan na nagpapalawak ng aplikasyon ng mga controler na ito.
Sa seryeng ito ng mga tutorial, matututunan natin kung paano i-program ang mga microcontroller ng STM8S, mas tiyak ang STM8S103F3P6. Ang dahilan para sa pagsisimula sa tukoy na numero ng bahagi na ito ay para lamang sa presyo nito sa pagganap na kadahilanan. Gaya ng!! tingnan lamang ito sa halagang 0.25 $ (tinatayang 20 Rupees) nakakakuha kami ng isang 8-bit microcontroller na may 16Mhz Internal Oscillator, 8kB Flash, 10-bit ADC, UART, SPI, at I2C. Sino ba ang hindi maiintriga? Gayundin, ang STM8S103F3P6 ay malawak na tanyag, at dahil dito bilang isang nagsisimula, mahahanap mo ang sapat na suporta kung kailangan mo ng tulong sa labas ng mga tutorial. Simula dito, magkakaroon kami ng isang pagkakasunud-sunod ng mga tutorial, katulad ng Mga Tutorial sa Programming ng PIC kung saan matututunan namin kung paano i-program ang controller na ito mula sa isang pangunahing blink hanggang sa iba't ibang display at sensor interfacing. Maaari mo ring suriin ang STM32F103C8 Tutorial at mga proyekto kung interesado ka sa 32-bit STM Microcontrollers.
Pagpili ng Mga Tool sa Pag-unlad ng Hardware at Software
Ngayon na napatay na namin ang microcontroller, pipiliin namin ang mga tool sa pag-unlad ng hardware at software upang simulan ang aming proseso ng pag-aaral. Maraming mga pagpipilian, narito napili ko ang mga malayang magamit at madaling magagamit sa lahat.
Pag-unlad ng STM8S103F3P6
Ang opisyal na development board para sa 8-bit Microcontroller ng ST ay tinatawag na STM8 Discovery kit, ngunit gagamit kami ng isa pang low-cost development board na madali mong mahahanap sa isang lokal na tagapagtustos o sa online store. Ang imahe ng STM8S103F3P6 Development board na gagamitin namin sa tutorial na ito ay ipinapakita sa ibaba.
Ang board ay binubuo lamang ng mga hubad na pinakamaliit na sangkap na kinakailangan upang simulan ang pag-unlad. Ito ay friendly na breadboard at angkop para sa mga compact application. Ang panloob na diagram ng circuit para sa development board ay ipinapakita sa ibaba.
Sa pagtingin nang malapitan, mapapansin mo, bukod sa STM8S103F3p6 controller, mayroon kaming isang pindutan ng pag-reset upang i-reset ang controller. Ang isang kapangyarihan na humantong at isang pagsubok na humantong konektado sa PB5 (Port B pin 5) at isang AMS1117 Boltahe regulator na nagko-convert ang 5V mula sa isang USB port sa 3.3V para sa controller. Ang controller ay maaari ring gawin upang mapatakbo sa 5V kung kinakailangan. Ang iba't ibang mga bahagi sa controller ay minarkahan sa ibaba. Mayroon din kaming 4 na programmer pin katulad ng 3.3V, GND, SWIM, at NRST na maaaring magamit upang madaling mai-program at ma-debug ang aming microcontroller.
STM8S103F3P6 Programmer
Para sa pagprograma ng aming controller, gagamitin namin ang ST-LINK v2 na mura at madaling mag-online. Maraming mga pagkakaiba-iba (metal, plastik, ginto, rosas, hubad na board) ng ST-LINK v2 board at lahat ay nagsisilbi sa parehong layunin. Ang minahan ay ipinapakita sa ibaba ngunit maaari mong gamitin ang anumang uri ng programmer ng ST-LINK, magkakaiba ang pinout, kaya tiyaking nabasa mo lamang nang tama ang mga pinout sa pambalot. Mayroon ding ST-LINK V3 mula sa ST-Microelectronics mismo na maaaring magamit para sa ilang mga seryosong pag-debug. Hindi namin ito gagamitin sa ngayon dahil medyo mahal ito, ise-save namin ito para sa hinaharap.
STM8S103F3P6 IDE at Compiler
Ang pagpili ng tamang IDE at Compiler para sa STM8S103F3P6 ay nakalilito, dahil lamang sa maraming mga pagpipilian upang pumili mula sa. Ang mga opisyal na tool na magagamit para sa STM8 Microcontroller ay ipinapakita sa imahe sa ibaba.
Sa panig ng Pag-configure, mayroon kaming STM8CubeMx, sinubukan ko ang software at ito ay isang kumpletong pagpapaalam para sa akin. Hindi tulad ng STM32Cube, hindi maaaring awtomatikong bumuo ng code ang STM8Cube. Maaari lamang itong makabuo ng pagmamapa ng pin para sa mga layunin ng pagpapakita at maaaring maging madaling gamiting kung inililipat mo ang iyong code mula sa isang tagakontrol papunta sa isa pa. Maliban dito, hindi ko ito gagamitin. Kaya sa serye ng tutorial na ito, hindi namin ito gagamitin.
Para sa IDE at Compiler, marami kaming mapagpipilian. Ang nangungunang dalawang mga pagpipilian para sa IDE ay IAR workbench at ST Visual Develop (STVD), kapwa ang software ay nararamdaman na sila ay mula sa 90s ngunit pagkatapos ng ilang oras na pag-play dito, nalaman kong ang STVD ay isang mahusay na pagpipilian lamang dahil libre ito. Katulad nito, para sa Compiler, gagamitin namin ang Cosmic C Compiler, muli lamang dahil libre ito. Ang isa pang dahilan para sa pagpili ng IDE at Compiler na ito ay, sa sandaling pamilyar tayo sa kapaligiran, dapat madali itong gumamit ng anumang iba pang 8-bit Microcontroller mula sa ST nang walang labis na pagsisikap. Mapupunta kami sa kung paano i-install at i-set up ang STVD sa tagatala ng Cosmic C sa paglaon sa artikulong ito.
Para sa Flashing, gagamit kami ng ST Visual Programmer (STVP), awtomatikong mai-install ang tool na ito kapag na-install namin ang STVD. Isasama ito sa mismong IDE, na tumutulong sa amin na mabilis na mag-program at mag-debug. Ang pangwakas na software ay magiging STMStudio na isang STM8 Monitoring software. Makakatulong ang software sa pag-debug ng real-time ng STM8 at mayroong ilang mga cool na tampok tulad ng pagsubaybay sa variable na halaga, paglalagay ng grap, atbp. Hindi ako nag-eksperimento ng sapat sa software na ito. At, hindi bababa sa unang mga tutorial, hindi namin gagamitin ang software na ito dahil hindi namin kakailanganin ang mga malalaking kinakailangan sa pag-debug.
STM8S Standard Peripheral Library: Ang ST Microelectronics ay nagbibigay ng isang hanay ng mga aklatan upang gawing mas madali ang pagpapaunlad ng code para sa STM8S Microcontrollers, ang library na ito ay tinawag na " Standard Peripheral Library " o SPL sa maikling salita. Ang silid-aklatan ay cool maliban sa na nakasulat sa pamamagitan ng pag-iingat ng lahat ng mga posibleng Controller sa STM8S / A 8-bit na pamilya at hindi lamang ang STM8S103F3P6 controller na gagamitin namin. Samakatuwid, kailangan naming gumawa ng ilang mga pag-aayos dito at doon upang maisagawa ito (na ibabahagi ko sa paglaon). Ngunit gayon pa man, naniniwala akong sulit na subukan ito sapagkat napakabilis nitong napapaunlad, at samakatuwid, gagamitin namin ito sa aming tutorial.
Kung hindi mo nais na gamitin ang silid-aklatan, kailangan mong direktang i-access ang Mga Rehistro ng tagakontrol o gawin ang mga metal na pagpupulong na programa. Pareho sa mga ito ay nakakatuwa, sa kondisyon na may oras ka upang malaman at gamitin ito. Ang aking ideya ay ang paggamit ng SPL library saan man ito gumana nang maayos at pagkatapos ay gagana rin sa antas ng rehistro at pagpupulong kung kinakailangan. Subukan nating huwag muling likhain ang gulong!
STM8S kasama ang Arduino gamit ang Sduino
Ang pagtalakay sa mga pagpipilian sa software ay hindi magiging kumpleto kung hindi ko banggitin ang suporta ng Arduino IDE sa STM8S. Oo, ang parehong board ng STM8S103F3P6 ay maaaring mai-program nang direkta mula sa Arduino IDE gamit ang Sduino, salamat kay Michael Mayer. Ngunit, ang proyekto ay nasa yugto pa rin ng pag-unlad at malamang na magtatagal ng kaunting oras at suporta sa pamayanan para sa Sduino upang magbigay ng kumpletong suporta sa platform. Gayunpaman, sa loob lamang ng ilang minuto ng paglalaro kasama ang Sduino, sinimulan kong magustuhan ito at samakatuwid ay nagpasya na gumawa din ng isang hiwalay na artikulo kung paano i-program ang STM8S Microcontroller kasama ang Arduino. Ili-link ko ang artikulo dito kapag handa na ito. Tatalakayin ng artikulong iyon kung bakit at bakit hindi mo dapat gamitin ang Arduino IDE para sa pagprograma ng iyong mga STM8S Microcontrollers.
Kaya, ito ang aking mga pagpipilian para sa Software at Hardware, ipaalam sa akin sa seksyon ng komento kung sa palagay mo ang ilang iba pang software ay maaaring isang mas mahusay na pagpipilian at bakit. Gusto kong galugarin ang iba pang mga pagpipilian.
Pagda-download ng Mga Kinakailangan na Software
Ngayon na nagpasya kami sa software na gagamitin namin para sa tutorial na ito, sige at i-download ang mga ito gamit ang sumusunod na link. Ang lahat ng software ay libre upang i-download at gamitin, kakailanganin mong magrehistro ng isang libreng account sa ST at Cosmic kung hindi mo pa nagagawa.
- ST Visual Develop (STVD)
- Cosmic C Compiler
- Karaniwang Peripheral Library
- STM8Cube Mx (Opsyonal)
- STMStudio para sa STM8 (Opsyonal)
Pagse-set up ng STVD at Cosmic C Compiler
Matapos mong ma-download ang parehong software, sundin lamang ang mga tagubilin sa screen upang mai-install ang mga ito. Inirerekumenda kong iwanan ang mga ito sa mga default na direktoryo upang maiwasan ang pagkalito sa paglaon. Ang STVD IDE ay mai-install nang walang anumang pagsisikap. Para sa tagatala ng Cosmic C, kailangan mong makakuha ng isang libreng key ng lisensya sa panahon ng mga proseso ng pag-install. Kailangan mo lamang ibigay ang impormasyon ng kumpanya sa E-mail ID, kung ikaw ay isang mag-aaral, banggitin mo lang iyon. Ang mga proseso ng pagkuha ng susi ng lisensya ay madalian at awtomatiko, bagaman sinasabi ng mga tagubilin sa pag-set up na maaaring tumagal ng isang araw o dalawa, awtomatiko kong natanggap ang key ng lisensya sa aking E-Mail ID sa lalong madaling isumite ko ito, siguraduhin lamang na suriin ang SPAM. Ang aking kumpirmasyon E-Mail ay ipinapakita sa ibaba.
Tulad ng pagtuturo sa E-mail, kopyahin lamang ang file ng lisensya.lic at i-paste sa sub-folder na "lisensya" sa iyong folder ng pag-install. Para sa akin ang landas ay "C: \ Program Files (x86) COSMIC \ FSE_Compiler \ CXSTM8 \ Lisensya" . I-paste lamang ang file sa lokasyon tulad ng ipinakita sa ibaba.
Karaniwang Peripheral Library para sa STM8S103F3P6
Tulad ng sinabi sa mas maaga, ang ST Microelectronics ay nagbibigay ng Mga Aklatan na tinatawag na SPL na maaaring magamit para sa lahat ng 8-bit STM8S / A Microcontrollers. Maaari mong i-download ang orihinal na SPL mula sa ST Microelectronics at gawin ang mga kinakailangang pagbabago o i-download ang aking mga aklatan ng STM8S103F3P6 SPL at gamitin ang mga ito tulad nito. Inirerekumenda ko ang sa paglaon.
Orihinal na SPL mula sa ST Microelectronics
STM8S103F3P6 SPL
Habang nandiyan ka rin ay siguraduhin na i-download ang SPL User Manual, na kung saan ay magiging napaka-madaling gamiting sa pagprogram ng controller.
Pag-iipon ng Unang Programa
Ngayon na handa na ang lahat, subukang i-compile ang aming unang programa upang suriin kung ang IDE, Compiler, at Library ay gumagana nang ayon sa nararapat. Maaari mo ring suriin ang video sa ilalim ng pahina para sa detalyadong mga tagubilin.
Magsimula sa pamamagitan ng pagbubukas ng STVD at piliin ang File -> WorkSpace, sa pop-up, piliin ang "Bagong Workspace" at ipasok ang pangalan at path ng Project kung saan dapat i-save ang programa. Pinangalanan ko ang aking programa na BareMinimum at nai-save ito sa isang folder sa desktop. Mag-click sa OK at makakakuha ka ng kahon ng dialogo ng Bagong Proyekto tulad ng ipinakita sa ibaba.
Pinangalanan ko ang proyekto bilang bareminimum muli at sa ilalim ng toolchain kailangan naming tukuyin ang root ng toolchain sa daanan kung saan naka-install ang tagatala ng STM8 Cosmic. Ang default na address ng path ay "C: \ Program Files (x86) COSMIC \ FSE_Compiler \ CXSTM8" . Pagkatapos nito i-click lamang ang OK upang makuha ang window na "MCU Selection".
Maghanap para sa STM8S103F3P at piliin ito at i-click ang OK. Magbubukas ito ng isang bagong proyekto para sa STM8S103F3P sa STVD, dapat ganito ang hitsura ng mga bintana kapag tapos na.
Mag-right click sa "source file" at piliin ang "Magdagdag ng mga file sa folder" upang isama ang lahat ng mga c file mula sa aming library ng SPL, katulad na pag-right click sa Isama ang mga file upang isama ang lahat ng mga file ng header. Kung mayroon kang anumang mga katanungan, maaari kang mag-refer sa video sa ibaba. Kapag naidagdag na ang lahat ng mga file, i-click ang Build -> rebuil d lahat at pagkatapos ay Compile upang suriin kung gumagana ang tagatala at SPL tulad ng inaasahan. Kung maayos ang lahat, dapat mong makita ang sumusunod na screen na may error sa resulta ng build 0 at babala.
Sa tapos na ito, maaari naming siguraduhin na ang lahat ng aming mga aklatan ng SPL ay gumagana sa tagatala ng Cosmic at STVD. Ito ang pamantayang pamamaraan na susundin namin para sa bawat bagong proyekto. Maaari mo ring isama ang mga kinakailangang header at mapagkukunan ng mga file na kinakailangan para sa proyekto upang mabawasan ang oras ng pagbuo kung kinakailangan.
Ang pag-upload ng Code mula sa STVD patungo sa STM8S Development board gamit ang ST-Link V2
Ikonekta ang ST-Link V2 sa development board tulad ng ipinakita sa ibaba.
Ang mga koneksyon ay medyo tuwid at ang pinakamagandang bahagi ay hindi mo kailangan ng mga panlabas na sangkap. Ang aking pag-setup ng hardware para sa programa ay ipinapakita sa ibaba, ginamit ko lang ang mga babaeng header wires upang makagawa ng aking koneksyon. Gayunpaman, tandaan na ang pinout ng iyong ST-Link ay maaaring magkakaiba sa minahan, tiyaking sundin ang pinout sa aparato bago gawin ang mga koneksyon.
Gawin ang koneksyon at ikonekta ang aparato sa iyong computer, dapat na awtomatikong magsimula ang pag-install ng driver. Maaari mong gamitin ang manager ng aparato upang matiyak kung ang iyong computer ay natuklasan nang tama ang ST-LINK V2. Mapapansin mo rin ang pagsubok na LED sa pisara na kumikislap kung ito ang kauna-unahang pagkakataon na pinapagana ang board. Sa sandaling matagumpay naming naipon ang code sa STVD, makakakuha kami ng isang "S19" Extention file sa ilalim ng direktoryo ng debug ng folder ng proyekto. Ang aking S19 file ay ipinapakita sa ibaba.
Ang S19 na ito ay tulad ng Hex file na dapat na mai-upload sa controller. Upang mai-upload ang programa, buksan ang ST Visual Programmer (STVP) na dapat na naka-install kasama ang STVD. Pagkatapos sa window ng pagsasaayos, piliin ang ipinakita sa larawan sa ibaba at i-click ang OK.
Pagkatapos mag-click sa File-> Buksan at mag-navigate sa S19 file na ipinakita namin kanina. Pagkatapos upang i-flash ang aparato, sundin ang Program -> Kasalukuyang Tab. Kung matagumpay ang flashing, dapat mong makita ang sumusunod na output.
Bilang default, kapag bumili ka ng STM8S, magkakaroon ito ng blin program na kumikislap sa LED na pagsubok. Ngayon pagkatapos i-upload ang blangko na code na ito, ang LED ay hindi na magpakurap.
Mahalaga: Nalaman ko na ang aking ST-Link ay hindi awtomatikong na-reset ang board pagkatapos ng pag-program. Kailangan kong idiskonekta at ikonekta muli ito upang suriin ang output ng aking programa. Hindi ako sigurado kung ito ay isang problema sa lahat, ipaalam sa akin sa seksyon ng komento. Gayundin, suriin ang video sa ibaba na nagpapaliwanag ng solusyon dito.
Sa pamamagitan nito, paandarin natin ang tutorial na ito, natutunan natin ang mga pangunahing kaalaman sa hardware, na-set up ang kapaligiran sa pag-unlad at natutunan kung paano mag-ipon at mag-upload ng code. Handa na kaming mag-usad at gagamitin namin ito sa lahat ng aming paparating na mga tutorial. Kung mayroon kang anumang mga katanungan, mangyaring i-post ang mga ito sa aming mga forum at manatiling nakasubaybay para sa higit pa !!