Stellaris Launchpadin virittäminen Windowsille

[size=85]Tämän artikkelin teksti on alunperin omilta sivuiltani ja ajattelinkin huvikseen taas osallistua artikkelikilpailuun vastapainona Stellaris Launchpadin virittäminen Arch Linuxissa Eclipseen -artikkelille. Ihan vain senkin takia, että joukossamme on paljon Windows-käyttäjiä, itse mukaanlukien. Siispä asiaan![/size]

[size=150]Stellaris Launchpadin virittäminen Windowsille[/size]

Stellaris Launchpad on Texas Instrumentsin kehittämä harrastelijoille suunnattu erittäin edullinen mikrokontrollerin kehitysalusta. Launchpadin saa tilattua TI:n verkkokaupasta vaivaiseen 12,99 dollarin hintaan, joka on vajaa 10 euroa (11.12.2012 kurssilla). Digikeyssäkin näitä lautoja näyttää olevan http://www.digikey.com/.

Alla olevissa kuvissa nähdään Launchpad laatikon sisältö, jossa on siis 1 kpl Stellaris-Launchpadeja ja 1 kpl USB-kaapeli ohjelmointia ja debuggausta varten.
Stellaris_blueledvilkku.jpg
Stellaris-sisalto2.jpg

Tarvittavat ohjelmistot ladataan puolestaan osoitteesta http://www.ti.com/stellaris-launchpad.

Launchpadille on ladottu (musta lutikka keskellä) LM4F120H5QR ARM Cortex M4 pohjainen mikrokontrolleri, missä on myös liukulukulaskentayksikkö (FPU). Mikrokontrollerin maksimi kellotaajuus on 80 MHz ja ja tästä 32-bittisestä MCU:sta löytyy 256 kilotavua flash-muistia, 2 kilotavua EEPROM muistia ja 32 kilotavua SRAM välimuistia. Lisälaitelista on myös kattava ja tarkemmat tiedot selviää yllä mainitusta osoitteesta.

[size=150]Ohjelmointiympäristönä Code Composer Studio[/size]

CCS_splash.png

Launchpadin ohjelmoimiseen tarvitaan ohjelmointiympäristö eli IDE. Stellaris-mikrokontrolleria voi ohjelmoida monellakin eri työkalulla, mutta tässä olen käyttänyt TI:n Code Composer Studio -nimistä ohjelmointiympäristöä - lyhennettynä CCS. CCS on valittu sen takia, koska sen ilmaisversiota voidaan käyttää rajoituksetta Stellaris LM4F120 Launchpadin kanssa; toisin sanoen ei koodirajoituksia.

CCS:n uusimman version voi ladata tietokoneelle TI:n sivuilta. Latauslinkki löytyy TI:n wikisivulta: http://processors.wiki.ti.com/index.php/Download_CCS Valitse sivuilta “Code Composer Studio Version X Downloads” -tekstin alla oleva latauslinkki. Asennusohjelman lataaminen edellyttää rekisteröintiä TI:n sivuille, mutta se kannattaa tehdä eikä siitä ole mitään haittaa (siis ei joudu spämmipostilistalle). Saat sähköpostiisi latauslinkin ja pääset lataamaan ohjelmiston myös TI:n sivuilta.

Asennusohjeet puolestaan löytyvät CCS wikistä: linkki 5 version wikiin. Ns. Quickstart-opas löytyy myös osoitteesta: http://www.ti.com/lit/ml/spmu132b/spmu132b.pdf.

Alla on lisäksi muutama linkki joihin kannattaa tutustua. Linkkeihin viitataan numerolla tekstissä mikäli tarpeellista.

[1] http://www.ti.com/tool/ek-lm4f120xl - TI:n kaupan sivu mistä Launchpadin voi tilata.
[2] http://www.ti.com/ww/en/launchpad/stellaris_head.html - Stellaris Launchpadin etusivu.
[3] http://www.ti.com/tool/sw-ek-lm4f120xl - Stellariswaren ja ohjelmistojen latauspaikka.
[4] http://www.ti.com/lit/ml/spmu132b/spmu132b.pdf- Quickstart opas CCS:lle
[5] http://www.ti.com/lit/ug/spmu289a/spmu289a.pdf- Stellaris Launchpad User Manual
[6] http://www.ti.com/lit/ug/spmu019o/spmu019o.pdf- Stellaris Peripheral Driver Library User Manual

[size=150]Launchpadin käyttöönotto[/size]

Aloitin lataamisen Stellariswarella (linkki [3]) ja asensin sen hakemistoon “C:\Texas Instruments\StellarisWare”. Tätä ennen olin toki asentanut CCS:n uusimman (5.3) version koneelleni, joten Quickstart oppaan Step 1:stä ei tarvinnut suorittaa.

StellarisWare on joukko kirjastoja, jotka puretaan (=asennetaan) koneelle tiettyyn kohdehakemistoon. Uusimman version StellarisWaresta voi tarkastaa osoitteessa ti.com/stellaris. StellarisWare on lyhyesti sanottuna joukko valmiita funktioita, joiden avulla mikrokontrolleria voidaan konfiguroida, eli käytännössä StellarisWare sisältää pari erilaista API:a (Application Programming Interface) mikrokontrollerin käyttämiseen. API:t puolestaan sisältävät toistasataa funktioita joita voidaan kutsua. Lisätietoja API:sta löytyy User Manualista (linkki [6]).

Kun StellarisWare ja CCS on asennettu onnistuneesti, on aika siirtyä “konffaamaan” CCS Stellaris Launchpadia varten. Seuraavassa kannattaa apuna käyttää myös Quickstart dokumenttia (linkki [4]).

[size=150]Code Composer Studion “konffaus”[/size]

CCS kannattaa avata ja luoda uusi työtila (Workspace) tätä toimenpidettä varten. CCS kysyy avattaessa Workspacea, mutta jos ei kysy tai olet ottanut sen pois päältä niin File -> Switch Workspace.

Luotuun työtilaan tuodaan nyt asennetusta StellarisWaresta tarvittavat kirjastot. Valitaan Project valikosta Import Existing CCS/CCE Eclipse Project.
Stellaris_CCS_Import01.jpg

Etsitään tiedostoista StellarisWaren asennuspolku ja valitaan StellarisWaren asennuskansiosta driverlib kansio ja painetaan ok.
Stellaris_CCS_Import02.gif

CCS löytää kansioista Cortex-M3 ja Cortex-M4 kirjastot, valitaan driverlib-cm4f. Sama operaatio voidaan toistaa myös usblib-cm4f-kirjastolle, mutta tämä ei ole välttämätöntä kuitenkaan aluksi, jos USB-yhteyttä ei halua ottaa käyttöön. driverlib-cm4f on aluksi se tärkein.
Stellaris_CCS_Import03.gif

Seuraavaksi tuodaan esimerkkikoodit Stellaris Launchpadille. Valitaan edelleen Project-> Import Existing CCS Eclipse Project ja StellarisWaren asennuskansiosta kansio boards/ek-lm4f120xl. Valitaan Select All ja laitetaan ruksi ruutuun Copy projects into workspace, jolloin alkuperäisiä esimerkkejä ei vahingossakaan tuhota muokkaamalla niitä. Kun projektit on tuotu ja kopioitu työtilaan (Workspace), voidaan Hello-projekti kääntää ensimmäisen kerran.
Stellaris_CCS_Import04.jpg

Mikäli käännöksestä tulee varoitus, missä kerrotaan että esimerkkikoodi on alunperin käännetty eri kääntäjän versiolla, niin kääntäjäversion voi vaihtaa valikosta Properties -> General (Main välilehti) -> Advanced settings.
Stellaris-first-build-warning.jpg

[size=150]Launchpadin kytkeminen tietokoneeseen[/size]

Kun ohjelmat on asennettu, niin voidaan Launchpad kytkeä tietokoneeseen. Pwr Select valintakytkimen tulee olla DEBUG -asennossa, jotta ohjelmoitavan LM4F120 prosessorin käyttöjännite on päällä.
Stellaris-USB-kaabeli.jpg

Mikäli kaikki on oikein, niin Launchpadin pitäisi asentua ongelmitta (käytössä ollut Win7 64bit). Windows Updatesta ajureiden etsimisen voi skipata, koska sieltä Windows ei niitä löydä eikä tarvitsekaan. Tarvittavat laiteajurit on jo koneelle asennettuna mikäli CCS on asennettuna.
Stellaris-launchpad-ready.jpg

[size=150]Ensimmäisen ohjelman lataaminen mikrokontrollerille[/size]
Seuraavaksi ladataan Hello-ohjelma mikrokontrollerille. Valitaan hiirellä (siniset kansiot vasemmalla) Hello-projekti ja valitaan hiiren toisella napilla Rebuild. Kun ohjelma nyt ladataan kohteeseen Debug-komennon jälkeen (vihreä ötökkä työkalupalkissa), niin sininen LED alkaa vilkkumaan Hello-projektin suorituksen alettua (suattaapi olla päällä myös muut värit) ja ohjelman tutkiminen voi alkaa. Ohjelma tulostaa myös sarjaporttiin (virtuaalinen) Hello, World tekstin.
Stellaris_blueledvilkku.jpg

Kiitos jo etukäteen kommenteista. Artikkeli oli vähän kiireellä kirjoitettu. En ole mikään Launchpad- tai Stellarisguru, mutta jospa tästä apua on aiheesta kiinnostuneille. Kiitos nam hei :slight_smile:
Stellaris-boxi-avattu.jpg

Tässä justiin olisin halunnut tota GCC kääntäjää esiteltäväksi.
Ainaki normi Lauchpadille kohtuu homma vääntää GCC ympäristö debuggereineen.

Eli jos on muita Stellaris piirejä, niin pitää hommata CCS lisenssi tai tyytyä koko rajoitettuun versioon (muistaakseni 16 kB).

Edit:
Tai sitte käyttää kaikissa projekteissa tota prossaa joka löytyy laudalta. (LM4F120)

Launchpadilla käsittääkseni pystyy ohjelmoimaan muitakin piirejä tuon Launchpadin läpi eli käyttämään sitä ohjelmointilaitteena. Koodirajoittamaton ominaisuus on kaiketi silloin käytössä kun on fyysisesti yhteydessä launchpadiin. Vähemmän kikkailua tämä aiheuttaa kuin se että alkaa open-source ohjelmistoja tällaiseen “ei-kovin-yleiseen” ympäristöön kokoamaan, kun tarkoituksena on testata miten hommat luonnistuu ja saada käsitystä itse lutikan ohjelmoinnista.

Itse olen kokeillut windowsille Eclipse/GCC ympäristöä asentaa tämän ohjeen mukaan (http://springuin.nl/articles/launchpadwindows), mutta tuloksetta vaikka ohjeiden mukaan muka tein. Ei ole oikein hyvin hanskassa tuollainen kikkailu, kai sitä on sen verran käsi.

Henkilökohtaisesti suosin ja suosittelen valmiita IDE-paketteja ihmisille siitä syystä, että on tarkoitus tehdä ja saada asioita aikaiseksi, esimerkiksi saada se LED vilkkumaan, eikä taistella asennusympäristöjen kanssa montaa tuntia tai päivää. Nimittäin se on turhauttavaa kun ei ole oikein selviä ohjeita missään, että miten saisi open-source työkaluilla käännettyä edes sen helvetin yksinkertaisen ledivilkun, debuggauksesta puhumattakaan!

Mitä vähemmän kikkailuja sen parempi yleensäkin.

Niin ja jos CCS kauhistuttaa niin eihän sitä ole pakko käyttää. Itse kyllä käytän ja on oikein mainio väline hommien tekemiseen :slight_smile:

Tästä vielä, että kuinkahan monta projektia harrastelijoilla oikeasti on jotka vaativat todellakin kymmeniä kilotavuja ohjelmamuistia? Tottakai näitä on mutta meneeköhän vähän marginaalin puolelle.

Esimerkkinä: TI:n Capasitive Touch Library perustoiminnot mahtuu aivan hyvin MSP430G2452 kontrollerille jossa on 8 kilotavua flashia. Sovelluksellekin jää tilaa vaikka kuinka paljon.

Tähän vertailun vuoksi voin vielä mainita, että AVR:n AtTiny2313 ohjelmamuistiin (2 kilotavua) mahtuu koodiriveinä C-koodia noin 200-400 (siis koodia, ei kommentteja lasketa riveiksi), joka tottakai riippuu mitä funktioita ja kirjastoja käyttää. 16-bittisiin prossuihin samat hommat menevät noin 40-60% pienemmällä tavumäärällä ja 32-bittisiin sitäkin paremmin.

Toivottavasti kaikki nyt ymmärtää että stellaris Launchpadissa voi hyödyntää 256 kilotavua flashia, joka on jo niin paljon ettei sanotuksi saa. Siis paljon ottaen huomioon että puhutaan sulautetuista järjestelmistä :smiley:. CCS on siis täysin rajoittamaton Stella-Launchpadin kanssa.

Tarkoitukseni näillä kommenteilla oli selventää asioita, ei päteä eikä hyökätä kenenkään mielipiteitä vastaan. Jos huomataan että vastauksissani on virheellistä tietoa niin nöyrästi kyllä korjaan sitten tarpeen tullen :slight_smile:

Peace out :slight_smile:

Muuten testasikkos tuota 1MSps oskilloskooppi esimerkkiä?
ti.com/tool/sw-usb-win

OT:
Itekki tuli nyt vasta hokattua, että MikroC ARM tukee totaki lautaa. Piti vaan ajurit latailla ja päivitetty prommeri.

En ole kerennyt testaamaan muita kuin tuota ekaa esimerkkikoodia. On ollut tässä vähän muuta hommaa, mutta eiköhän tässä joululomien ja talvilomien aikaan kerkee testailee ja värkkäilee muutakin tuolle :slight_smile:

Tuohon MikroC:hen en oo koskaan tutustunu, joskus olen ehkä ohimennen kuullut tai lukenut, mutta muuten ei ole tietoa kyseisestä idestä. Sivuillahan tuota STM32 Cortex M3/M4 tukea mainostetaan http://www.mikroe.com/mikroc/arm/ :slight_smile: