- Selectarea instrumentelor de dezvoltare hardware și software
- STM8S103F3P6 Dezvoltare
- Programator STM8S103F3P6
- STM8S103F3P6 IDE și compilator
- STM8S cu Arduino folosind Sduino
- Descărcarea software-ului necesar
- Configurarea STVD și Cosmic C Compiler
- Bibliotecă periferică standard pentru STM8S103F3P6
- Compilarea primului program
- Încărcarea codului de pe STVD pe placa de dezvoltare STM8S utilizând ST-Link V2
STM8 este o serie de Microcontrolere 8 biți de la STMicroelectronics, care a devenit o alegere comună de Microcontroller pentru dezvoltarea de produse sensibile din punct de vedere al costurilor. Am lucrat anterior cu AVR, PIC și alte câteva microcontrolere ARM Cortex, dar cu siguranță, în unele aplicații, acestea devin exagerate și măresc considerabil costul BOM. Recent, după ce am dărâmat câteva produse ieftine chinezești, am constatat că majoritatea aveau în interior un microcontroler STM8. IC-ul nu este doar ieftin, ci îl oferă și o mulțime de caracteristici și opțiuni, făcându-l potrivit pentru a fi utilizat în multe aplicații diferite. De exemplu, STM8S seria de controlere (pe care o vom învăța în această serie de tutoriale) este un controler de uz general, dar există și alte serii precum STM8A pentru modele auto și STM8L pentru modele cu consum redus de energie, care extinde aplicația acestor controlere.
În această serie de tutoriale, vom învăța cum să programăm microcontrolerele STM8S, mai exact STM8S103F3P6. Motivul pentru care ați început să utilizați acest număr de piesă specific este doar prețul la factorul de performanță. Ca!! uitați-vă doar la 0,25 $ (aproximativ 20 de rupii) obținem un microcontroler de 8 biți cu oscilator intern de 16 MHz, bliț de 8 kB, ADC de 10 biți, UART, SPI și I2C. Cine nu ar fi intrigat? De asemenea, STM8S103F3P6 este foarte popular și, prin urmare, ca începător, veți găsi suficient suport dacă aveți nevoie de ajutor în afara tutorialelor. Începând de la aceasta, vom avea o secvență de tutoriale, similară cu Tutorialele de programare PIC, unde vom învăța cum să programăm acest controler de la un clipire de bază la diferite interfețe de afișare și senzori. De asemenea, puteți consulta tutorialul și proiectele STM32F103C8 dacă sunteți interesat de microcontrolerele STM pe 32 de biți.
Selectarea instrumentelor de dezvoltare hardware și software
Acum, că avem dezicidarea microcontrolerului, va trebui să selectăm instrumente de dezvoltare hardware și software pentru a începe procesul de învățare. Există multe opțiuni, aici le-am selectat pe cele care sunt gratuite și ușor accesibile tuturor.
STM8S103F3P6 Dezvoltare
Placa de dezvoltare oficială pentru microcontrolerul pe 8 biți al ST se numește kitul STM8 Discovery, dar vom folosi o altă placă de dezvoltare cu preț redus pe care o puteți găsi cu ușurință la un furnizor local sau în magazinul online. Imaginea plăcii de dezvoltare STM8S103F3P6 pe care o vom folosi în acest tutorial este prezentată mai jos.
Placa constă doar din componentele minime necesare pentru a începe dezvoltarea. Este prietenos cu panourile și este potrivit pentru aplicații compacte. Schema circuitului intern pentru placa de dezvoltare este prezentată mai jos.
Aruncând o privire mai atentă, veți observa, în afară de controlerul STM8S103F3p6, avem un buton de resetare pentru a reseta controlerul. Un led de alimentare și un led de test conectat la PB5 (portul B pin 5) și un regulator de tensiune AMS1117 care convertește 5V dintr-un port USB în 3,3V pentru controler. Controlerul poate de asemenea să funcționeze pe 5V, dacă este necesar. Diferitele părți de pe controler sunt marcate mai jos. Avem, de asemenea, 4 pini de programare și anume 3.3V, GND, SWIM și NRST, care pot fi folosiți pentru a programa cu ușurință și a depana microcontrolerul nostru.
Programator STM8S103F3P6
Pentru programarea controlerului nostru, vom folosi ST-LINK v2, care este ieftin și ușor disponibil online. Există multe variante (metal, plastic, auriu, roz, placă goală) ale acestei plăci ST-LINK v2 și toate au același scop. Al meu este afișat mai jos, dar puteți utiliza orice tip de programator ST-LINK, pinout-ul va diferi, deci asigurați-vă că ați citit corect pinout-urile de pe carcasă. Există, de asemenea, ST-LINK V3 de la ST-Microelectronics în sine, care poate fi utilizat pentru o depanare serioasă. Nu vom folosi asta pentru moment, deoarece este cam scump, îl vom salva pentru viitor.
STM8S103F3P6 IDE și compilator
Selectarea IDE-ului și a compilatorului potrivit pentru STM8S103F3P6 este nedumeritoare, pur și simplu pentru că există o mulțime de opțiuni din care să alegeți. Instrumentele oficiale disponibile pentru microcontrolerul STM8 sunt prezentate în imaginea de mai jos.
Pe partea de configurare, avem STM8CubeMx, am încercat software-ul și a fost complet dezamăgit pentru mine. Spre deosebire de STM32Cube, STM8Cube nu poate genera cod automat. Poate genera cartografierea pinilor doar în scopuri de vizualizare și poate fi util dacă vă transferați codul de la un controler la altul. În afară de asta, nu l-aș folosi. Deci, în această serie de tutoriale, nu vom folosi acest lucru.
Pentru IDE și compilator, avem o mulțime de opțiuni din care să alegem. Primele două opțiuni pentru IDE sunt IAR workbench și ST Visual Develop (STVD), ambele software-uri se simt ca și cum ar fi din anii 90, dar după un timp jucat cu el, am găsit că STVD este o alegere bună doar pentru că este complet gratuit. În mod similar, pentru compilator, vom folosi compilatorul Cosmic C, din nou doar pentru că este complet gratuit. Un alt motiv pentru alegerea acestui IDE și compilator este că, odată ce ne familiarizăm cu mediul, ar trebui să fie ușor să folosiți orice alt microcontroler de 8 biți de la ST fără prea mult efort. Vom afla cum să instalăm și să configurăm STVD cu compilatorul Cosmic C mai târziu în acest articol.
Pentru Flashing, vom folosi ST Visual Programmer (STVP), acest instrument va fi instalat automat când instalăm STVD. Acesta va fi integrat în IDE în sine, ajutându-ne să programăm și să depanăm rapid. Software-ul final va fi STMStudio, care este un software de monitorizare STM8. Software-ul poate ajuta la depanarea în timp real a STM8 și are câteva caracteristici interesante, cum ar fi monitorizarea valorii variabile, reprezentarea graficului, etc. Nu am experimentat suficient cu acest software. Și, cel puțin pentru primele tutoriale, nu vom folosi acest software, deoarece nu vom avea nevoie de cerințe mari de depanare.
STM8S Standard Peripheral Library: ST Microelectronics oferă un set de biblioteci pentru a facilita dezvoltarea codului pentru microcontrolerele STM8S, această bibliotecă fiind denumită „ Standard Peripheral Library ” sau pe scurt SPL. Biblioteca este grozavă, cu excepția faptului că este scrisă ținând cont de toate controlerele posibile din familia STM8S / A pe 8 biți și nu doar de controlerul STM8S103F3P6 pe care îl vom folosi. Prin urmare, trebuie să facem câteva modificări ici și colo pentru a-l face să funcționeze (pe care le voi împărtăși mai târziu). Dar totuși, cred că merită să încerci, deoarece poate face dezvoltarea foarte rapidă și, prin urmare, o vom folosi în tutorialul nostru.
Dacă nu doriți să utilizați biblioteca, trebuie să accesați direct registrele controlerului sau să efectuați programarea ansamblului metalic. Ambele sunt distractive, cu condiția să aveți timp să-l învățați și să-l folosiți. Ideea mea este să folosesc biblioteca SPL oriunde funcționează bine și apoi să lucreze și la nivel de registru și de asamblare, dacă este necesar. Să încercăm să nu reinventăm roata!
STM8S cu Arduino folosind Sduino
Discutarea opțiunilor software nu va fi niciodată completă dacă nu menționez suportul IDE Arduino STM8S. Da, aceeași placă STM8S103F3P6 poate fi programată direct de la Arduino IDE folosind Sduino, datorită lui Michael Mayer. Însă, proiectul se află încă în faza de dezvoltare și probabil ar necesita ceva timp și sprijin comunitar pentru ca Sduino să ofere suport complet pentru platformă. Cu toate acestea, la doar câteva minute de când am jucat cu Sduino, am început să-mi placă și, prin urmare, am decis să fac și un articol separat despre cum să programez microcontrolerul STM8S cu Arduino. Voi lega articolul aici când va fi gata. Acest articol va discuta de ce și de ce nu ar trebui să utilizați Arduino IDE pentru programarea microcontrolerelor STM8S.
Deci, acestea sunt alegerile mele pentru software și hardware, anunțați-mă în secțiunea de comentarii dacă credeți că alt software ar fi fost o alegere mai bună și de ce. Aș dori să explorez și alte opțiuni.
Descărcarea software-ului necesar
Acum, după ce am decis software-ul pe care îl vom folosi pentru acest tutorial, să mergem mai departe și să le descărcăm folosind următorul link. Tot software-ul este gratuit de descărcat și utilizat, ar trebui doar să vă înregistrați un cont gratuit pe ST și Cosmic dacă nu ați fi făcut-o deja.
- ST Visual Development (STVD)
- Compilator Cosmic C
- Bibliotecă periferică standard
- STM8Cube Mx (Opțional)
- STMStudio pentru STM8 (Opțional)
Configurarea STVD și Cosmic C Compiler
După ce ați descărcat ambele software, urmați instrucțiunile de pe ecran pentru a le instala. Aș recomanda să le lăsați în directoarele implicite pentru a evita confuzia ulterioară. STVD IDE se va instala fără niciun efort. Pentru compilatorul Cosmic C, trebuie să obțineți o cheie de licență gratuită în timpul proceselor de instalare. Trebuie doar să furnizați informații despre companie cu ID de e-mail, dacă sunteți student, menționați doar acest lucru. Procesele de obținere a cheii de licență sunt instantanee și automate, deși instrucțiunile de configurare spun că ar putea dura o zi sau două, am primit cheia de licență automat pe ID-ul meu de poștă electronică imediat ce l-am trimis, doar asigurați-vă că verifica SPAM-ul. E-mailul meu de confirmare este prezentat mai jos.
Conform instrucțiunii de e-mail, copiați fișierul license.lic și lipiți-l în sub-dosarul „licență” din folderul de instalare. Pentru mine calea a fost „C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License” . Pur și simplu lipiți fișierul în locație așa cum se arată mai jos.
Bibliotecă periferică standard pentru STM8S103F3P6
După cum am spus mai devreme, ST Microelectronics oferă biblioteci numite SPL care pot fi utilizate pentru toate microcontrolerele STM8S / A pe 8 biți. Puteți descărca SPL-ul original de la ST Microelectronics și puteți efectua modificările necesare sau puteți descărca bibliotecile mele STM8S103F3P6 SPL și le puteți utiliza ca atare. Aș recomanda mai târziu.
SPL original de la ST Microelectronics
STM8S103F3P6 SPL
În timp ce vă aflați acolo, asigurați-vă că descărcați manualul de utilizare SPL, care va fi foarte util atunci când programați controlerul.
Compilarea primului program
Acum că totul este gata, să încercăm să compilăm primul nostru program pentru a verifica dacă IDE, compilatorul și biblioteca funcționează așa cum ar trebui. De asemenea, puteți verifica videoclipul din partea de jos a paginii pentru instrucțiuni detaliate.
Începeți deschizând STVD și selectați Fișier -> Spațiu de lucru, în fereastra pop-up, selectați „Spațiu de lucru nou” și introduceți numele și calea proiectului în care ar trebui să fie salvat programul. Îmi denumesc programul BareMinimum și îl salvez într-un folder de pe desktop. Faceți clic pe OK și veți obține caseta de dialog Nou proiect așa cum se arată mai jos.
Denumesc proiectul ca bareminimum din nou și sub toolchain trebuie să specificăm rădăcina toolchain către calea unde este instalat compilatorul STM8 Cosmic. Adresa implicită a căii este „C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8” . După aceea, faceți clic pe OK pentru a obține fereastra „Selecție MCU”.
Căutați STM8S103F3P și selectați-l și faceți clic pe OK. Aceasta va deschide un nou proiect pentru STM8S103F3P pe STVD, ferestrele ar trebui să arate așa la final.
Faceți clic dreapta pe „fișier sursă” și selectați „Adăugați fișiere în folder” pentru a include toate fișierele c din biblioteca noastră SPL, în mod similar faceți clic dreapta pe Includeți fișiere pentru a include toate fișierele antet. Dacă aveți întrebări, puteți consulta videoclipul de mai jos. Odată ce toate fișierele sunt adăugate, faceți clic pe Build -> rebuil d all și apoi Compile pentru a verifica dacă compilatorul și SPL funcționează conform așteptărilor. Dacă totul merge bine, ar trebui să vedeți următorul ecran cu rezultatul de construire 0 eroare și 0 avertisment.
După ce am făcut acest lucru, putem fi siguri că toate bibliotecile noastre SPL funcționează cu compilatorul Cosmic și STVD. Aceasta este procedura standard pe care o vom urma pentru fiecare proiect nou. De asemenea, puteți include numai anteturile și fișierele sursă necesare pentru ca proiectul să reducă timpul de construire, dacă este necesar.
Încărcarea codului de pe STVD pe placa de dezvoltare STM8S utilizând ST-Link V2
Conectați ST-Link V2 cu placa de dezvoltare așa cum se arată mai jos.
Conexiunile sunt destul de simple și cea mai bună parte este că nu aveți nevoie de componente externe. Configurarea mea hardware pentru programare este prezentată mai jos, tocmai am folosit firele antet feminin pentru a-mi face conexiunea. Cu toate acestea, rețineți că pinout-ul dvs. ST-Link ar putea diferi de al meu, asigurați-vă că urmați pinout-ul de pe dispozitiv înainte de a face conexiunile.
Faceți conexiunea și conectați dispozitivul la computer, instalarea driverului ar trebui să înceapă automat. Puteți utiliza administratorul de dispozitive pentru a vă asigura că computerul dvs. a descoperit corect ST-LINK V2. Veți observa, de asemenea, LED-ul de test de pe tablă clipind dacă aceasta este prima dată când alimentați placa. De îndată ce am compilat cu succes codul pe STVD, vom primi un fișier de extensie „S19” sub directorul de depanare din folderul proiectului. Fișierul meu S19 este prezentat mai jos.
Acest S19 este ca fișierul Hex care ar trebui încărcat pe controler. Pentru a încărca programul, deschideți ST Visual Programmer (STVP) care ar fi trebuit instalat împreună cu STVD. Apoi, în fereastra de configurare, selectați așa cum se arată în imaginea de mai jos și faceți clic pe OK.
Apoi faceți clic pe Fișier-> Deschideți și navigați la fișierul S19 pe care l-am arătat mai devreme. Apoi pentru a clipi dispozitivul, urmați Program -> Tab curent . Dacă intermitentul a reușit, ar trebui să vedeți următoarea ieșire.
În mod implicit, atunci când cumpărați STM8S, acesta va avea un program de blin care clipește LED-ul de testare. Acum, după încărcarea acestui cod gol, LED-ul nu va mai clipi.
Important: am constatat că ST-Link-ul meu nu a resetat automat placa după programare. A trebuit să-l deconectez și să-l reconectez pentru a verifica ieșirea programului meu. Nu sunt sigur dacă aceasta este o problemă pentru toată lumea, anunțați-mă în secțiunea de comentarii. De asemenea, verificați videoclipul din partea de jos, care explică soluția la acest lucru.
Cu aceasta, să încheiem acest tutorial, am învățat elementele de bază ale hardware-ului, am configurat mediul de dezvoltare și am învățat cum să compilăm și să încărcăm codul. Acum suntem gata să progresăm și vom folosi acest lucru în toate tutorialele noastre viitoare. Dacă aveți întrebări, vă rugăm să le postați pe forumurile noastre și rămâneți la curent pentru mai multe !!