- Välja verktyg för utveckling av hårdvara och programvara
- STM8S103F3P6 Utveckling
- STM8S103F3P6 Programmerare
- STM8S103F3P6 IDE och kompilator
- STM8S med Arduino med Sduino
- Nedladdning av erforderlig programvara
- Ställa in STVD och Cosmic C Compiler
- Standard perifert bibliotek för STM8S103F3P6
- Sammanställning av det första programmet
- Ladda upp koden från STVD till STM8S utvecklingskort med hjälp av ST-Link V2
Den STM8 är en serie av 8-bitars mikrokontrollers från STMicroelectronics som har blivit ett vanligt val av Microcontroller för kostnadskänsliga produktutveckling. Jag har tidigare arbetat med AVR, PIC och några andra ARM Cortex Microcontrollers, men säkert i vissa applikationer blir de överdrivna och ökar BOM-kostnaden avsevärt. Nyligen, efter att ha rivit ner några billiga kinesiska produkter, fann jag att de flesta av dem hade en STM8-mikrokontroller inuti. IC: n är inte bara billig utan också packad med många funktioner och alternativ som gör den lämplig att användas i många olika applikationer. Till exempel STM8S serien av styrenheter (som vi kommer att lära oss i den här handledningsserien) är en styrenhet för allmänt ändamål men det finns andra serier som STM8A för fordonsdesign och STM8L för batteridrivna konstruktioner med låg effekt som förlänger tillämpningen av dessa styrenheter.
I denna serie handledning lär vi oss hur man programmerar STM8S mikrokontroller, mer specifikt STM8S103F3P6. Anledningen till att komma igång med det här specifika artikelnumret är bara för pris till prestandafaktor. Tycka om!! titta bara på det bara för 0,25 $ (cirka 20 rupier) vi får en 8-bitars mikrokontroller med 16 MHz intern oscillator, 8 kB Flash, 10-bitars ADC, UART, SPI och I2C. Vem skulle inte bli fascinerad? STM8S103F3P6 är också mycket populärt, och därför kommer du som nybörjare hitta tillräckligt med support om du behöver hjälp utanför handledningarna. Med utgångspunkt från detta kommer vi att ha en sekvens av tutorials, liknande PIC Programming Tutorials där vi lär oss hur man programmerar denna controller från en grundläggande blinkning till olika display- och sensorgränssnitt. Du kan också kolla in STM32F103C8 självstudier och projekt om du är intresserad av 32-bitars STM-mikrokontroller.
Välja verktyg för utveckling av hårdvara och programvara
Nu när vi har avvärjat mikrokontrollern måste vi välja verktyg för utveckling av hårdvara och programvara för att börja vår inlärningsprocess. Det finns många alternativ, här har jag valt de som är gratis att använda och lätt tillgängliga för alla.
STM8S103F3P6 Utveckling
Det officiella utvecklingskortet för ST: s 8-bitars mikrokontroller kallas STM8 Discovery-kit, men vi kommer att använda ett annat billigt utvecklingskort som du enkelt kan hitta hos en lokal leverantör eller i webbutiken. Bilden av STM8S103F3P6-utvecklingskortet som vi kommer att använda i denna handledning visas nedan.
Styrelsen består endast av de minimikomponenter som krävs för att påbörja utvecklingen. Det är breadboard-vänligt och lämpligt för kompakta applikationer. Det interna kretsschemat för utvecklingskortet visas nedan.
När du tittar närmare kommer du att märka, förutom STM8S103F3p6-styrenheten, har vi en återställningsknapp för att återställa styrenheten. En strömledare och en testledning ansluten till PB5 (Port B-stift 5) och en AMS1117 spänningsregulator som omvandlar 5V från en USB-port till 3,3V för styrenheten. Styrenheten kan också fås att fungera på 5V om det behövs. De olika delarna på styrenheten är markerade nedan. Vi har också 4 programmeringsstift, nämligen 3,3 V, GND, SWIM och NRST som kan användas för att enkelt programmera och felsöka vår mikrokontroller.
STM8S103F3P6 Programmerare
För att programmera vår kontroller kommer vi att använda ST-LINK v2 som är billig och lätt tillgänglig online. Det finns många varianter (metall, plast, guld, rosa, blankt bräde) på detta ST-LINK v2-kort och alla har samma syfte. Gruvan visas nedan men du kan använda alla typer av ST-LINK-programmerare, pinout kommer att skilja sig, så se bara till att du läser pinouts på höljet korrekt. Det finns också ST-LINK V3 från själva ST-Microelectronics som kan användas för allvarlig felsökning. Vi kommer inte att använda det för nu eftersom det är lite dyrt, vi kommer att spara det för framtiden.
STM8S103F3P6 IDE och kompilator
Att välja rätt IDE och kompilator för STM8S103F3P6 är förvirrande, helt enkelt för att det finns många alternativ att välja mellan. De officiella verktygen som finns tillgängliga för STM8 Microcontroller visas i bilden nedan.
På konfigurationssidan har vi STM8CubeMx, jag försökte programvaran och det var en fullständig svik för mig. Till skillnad från STM32Cube kan STM8Cube inte automatiskt generera kod. Det kan bara generera stiftmappning för visualiseringsändamål och kan vara till nytta om du överför din kod från en styrenhet till en annan. Förutom det skulle jag inte använda det. Så i den här handledningsserien använder vi inte detta.
För IDE och Compiler har vi många alternativ att välja mellan. De två bästa alternativen för IDE är IAR workbench och ST Visual Develop (STVD), båda programvaran känns som om de är från 90-talet, men efter en tid att spela med den fann jag att STVD bara är ett bra val eftersom det är helt gratis. På samma sätt kommer vi att använda Cosmic C Compiler för kompilatorn, bara igen för att den är helt gratis. En annan anledning till att välja denna IDE och Compiler är att när vi väl bekant oss med miljön bör det vara enkelt att använda någon annan 8-bitars mikrokontroller från ST utan mycket ansträngning. Vi kommer att ta reda på hur man installerar och ställer in STVD med Cosmic C-kompilatorn senare i den här artikeln.
För att blinka använder vi ST Visual Programmer (STVP), det här verktyget installeras automatiskt när vi installerar STVD. Det kommer att integreras i IDE själv, vilket hjälper oss att snabbt programmera och felsöka. Den slutliga programvaran kommer att vara STMStudio som är en STM8-övervakningsprogramvara. Programvaran kan hjälpa till med felsökning i realtid av STM8 och har några häftiga funktioner som att övervaka variabelt värde, plotta diagram etc. Jag har inte experimenterat tillräckligt med denna programvara. Och åtminstone för de första handledningarna använder vi inte den här programvaran eftersom vi inte behöver stora felsökningskrav.
STM8S Standard Peripheral Library: ST Microelectronics tillhandahåller en uppsättning bibliotek för att underlätta kodutveckling för STM8S Microcontrollers, detta bibliotek kallas ” Standard Peripheral Library ” eller kort sagt SPL. Biblioteket är coolt förutom att det är skrivet genom att komma ihåg alla möjliga styrenheter i STM8S / A 8-bitarsfamiljen och inte bara STM8S103F3P6-styrenheten som vi kommer att använda. Därför måste vi göra några justeringar här och där för att få det att fungera (som jag kommer att dela senare). Men ändå tror jag att det är värt att prova eftersom det kan göra utvecklingen väldigt snabbt, och därför kommer vi att använda den i vår handledning.
Om du inte vill använda biblioteket, måste du direkt komma åt registerregistret eller göra programmering av metall. Båda dessa är roliga, förutsatt att du har tid att lära dig och använda den. Min idé är att använda SPL-biblioteket varhelst det fungerar bra och sedan också arbeta på register- och monteringsnivå om det behövs. Låt oss försöka att inte uppfinna hjulet igen!
STM8S med Arduino med Sduino
Att diskutera programvarualternativen kommer aldrig att vara komplett om jag inte nämner Arduino IDE- stödet STM8S. Ja, samma STM8S103F3P6-kort kan programmeras direkt från Arduino IDE med Sduino, tack vare Michael Mayer. Men projektet är fortfarande i utvecklingsfasen och skulle sannolikt ta lite tid och samhällsstöd för Sduino för att ge fullständigt plattformssupport. Men inom några minuter efter att jag spelat med Sduino började jag tycka om det och bestämde mig därför för att också göra en separat artikel om hur man programmerar STM8S Microcontroller med Arduino. Jag kommer att länka artikeln här när den är klar. Den artikeln kommer att diskutera varför och varför inte du ska använda Arduino IDE för programmering av dina STM8S mikrokontroller.
Så det här är mina val för programvara och hårdvara, låt mig veta i kommentarsektionen om du tror att någon annan programvara skulle ha varit ett bättre val och varför. Jag skulle också vilja utforska andra alternativ.
Nedladdning av erforderlig programvara
Nu när vi har bestämt oss för vilken programvara vi ska använda för den här handledningen, låt oss gå vidare och ladda ner dem med följande länk. All programvara är gratis att ladda ner och använda, du måste bara registrera ett gratis konto på ST och Cosmic om du inte redan hade gjort det.
- ST Visual Develop (STVD)
- Cosmic C Compiler
- Standard perifert bibliotek
- STM8Cube Mx (tillval)
- STMStudio för STM8 (valfritt)
Ställa in STVD och Cosmic C Compiler
När du har laddat ner både programvaran följer du bara instruktionerna på skärmen för att installera dem. Jag skulle rekommendera att lämna dem i standardkatalogerna för att undvika senare förvirring. STVD IDE installeras utan ansträngning. För Cosmic C-kompilatorn måste du få en gratis licensnyckel under installationsprocesserna. Du måste bara ange företagsinformation med e-post-ID, om du är student, nämn bara det. Processerna för att få licensnyckeln är omedelbara och automatiska, även om installationsinstruktionerna säger att det kan ta en dag eller två, fick jag licensnyckeln automatiskt på mitt e-post-ID så snart jag skickade in det kolla SPAM. Min bekräftelsemail visas nedan.
Enligt e-postinstruktionen kopierar du bara licens.lic-filen och klistrar in i "licens" -undermappen i din installationsmapp. För mig var sökvägen "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License" . Klistra bara in filen på plats enligt nedan.
Standard perifert bibliotek för STM8S103F3P6
Som tidigare nämnts tillhandahåller ST Microelectronics bibliotek som heter SPL och kan användas för alla 8-bitars STM8S / A-mikrokontroller. Du kan antingen ladda ner original SPL från ST Microelectronics och göra nödvändiga ändringar eller ladda ner mina STM8S103F3P6 SPL-bibliotek och använda dem som sådana. Jag skulle rekommendera det senare.
Original SPL från ST Microelectronics
STM8S103F3P6 SPL
Medan du är där, se också till att ladda ner SPL Användarmanual, vilket kommer att vara mycket praktiskt när du programmerar styrenheten.
Sammanställning av det första programmet
Nu när allt är klart, låt oss försöka sammanställa vårt första program för att kontrollera om IDE, Compiler och Library fungerar som de ska. Du kan också titta på videon längst ner på sidan för detaljerade instruktioner.
Börja med att öppna STVD och välj Arkiv -> Arbetsyta, i popup-fönstret, välj "Ny arbetsyta" och ange projektnamnet och sökvägen där programmet ska sparas. Jag heter mitt program BareMinimum och sparar det i en mapp på skrivbordet. Klicka på OK så visas dialogrutan Nytt projekt som visas nedan.
Jag heter projektet som bareminimum igen och under verktygskedjan måste vi ange verktygskedjans rot till den väg där STM8 Cosmic-kompilatorn installeras. Standardvägadressen är "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8" . Därefter klickar du bara på OK för att få “MCU Selection” -fönstret.
Sök efter STM8S103F3P och välj den och klicka på OK. Detta öppnar ett nytt projekt för STM8S103F3P på STVD, fönstren ska se ut så här när du är klar.
Högerklicka på "källfil" och välj "Lägg till filer i mapp" för att inkludera alla c-filer från vårt SPL-bibliotek, på samma sätt högerklicka på Inkludera filer för att inkludera alla rubrikfiler. Om du har några frågor kan du hänvisa till videon nedan. När alla filer har lagts till klickar du på Bygg -> bygg om alla och sedan Kompilera för att kontrollera om kompilatorn och SPL fungerar som förväntat. Om allt går bra bör du se följande skärm med byggresultat 0-fel och 0-varning.
Med detta gjort kan vi nu vara säkra på att alla våra SPL-bibliotek arbetar med Cosmic compiler och STVD. Detta är standardförfarandet som vi kommer att följa för varje nytt projekt. Du kan också inkludera endast nödvändiga rubriker och källfiler som behövs för projektet för att minska byggtiden om det behövs.
Ladda upp koden från STVD till STM8S utvecklingskort med hjälp av ST-Link V2
Anslut ST-Link V2 till utvecklingskortet enligt nedan.
Anslutningarna är ganska rakt fram och det bästa är att du inte behöver några externa komponenter. Min hårdvaruinställning för programmering visas nedan, jag har precis använt de kvinnliga huvudkablarna för att göra min anslutning. Observera dock att uttaget på din ST-Link kan skilja sig från min, se till att följa uttaget på enheten innan du gör anslutningarna.
Gör anslutningen och anslut enheten till din dator, drivrutinsinstallationen bör börja automatiskt. Du kan använda enhetshanteraren för att se om din dator har upptäckt ST-LINK V2 korrekt. Du kommer också att märka att testlampan på brädet blinkar om det här är första gången som slår på kortet. Så snart vi framgångsrikt har sammanställt koden på STVD kommer vi att få en "S19" -förlängningsfil under felsökningskatalogen i projektmappen. Min S19-fil visas nedan.
Denna S19 är som Hex-filen som ska laddas upp till styrenheten. För att ladda upp programmet, öppna ST Visual Programmer (STVP) som borde ha installerats tillsammans med STVD. Välj sedan i konfigurationsfönstret som visas i bilden nedan och klicka på OK.
Klicka sedan på Arkiv-> Öppna och navigera till S19-filen som vi visade tidigare. För att sedan blinka enheten, följ Program -> Nuvarande flik. Om blinkningen lyckades bör du se följande utdata.
När du köper STM8S har den som standard ett blin-program som blinkar test-LED: n. Efter att ha laddat upp den här tomma koden blinkar inte lysdioden längre.
Viktigt: Jag upptäckte att min ST-Link inte återställte kortet automatiskt efter programmering. Jag var tvungen att koppla bort och ansluta den igen för att kontrollera utdata från mitt program. Jag är inte säker på om detta är ett problem för alla, låt mig veta i kommentarsektionen. Kolla också in videon längst ner som förklarar lösningen på detta.
Med detta, låt oss avsluta denna handledning, vi har lärt oss grunderna för hårdvara, har ställt in utvecklingsmiljön och lärt oss hur man kompilerar och laddar upp kod. Vi är nu redo att gå vidare och vi kommer att använda detta i alla våra kommande handledning. Om du har några frågor, skicka dem på våra forum och håll dig uppdaterad för mer !!