Jste zde

Vývojová deska Freescale KWIKSTIK pro MCU Kinetis K40

Pod slovní hříčkou "KWIKSTIK" se ukrývá levný vývojový kit společnosti Freescale pro MCU Kinetis K40. Svou výbavou (USB konektory, LCD displej, mikrofon, výstup na sluchátka a další) a možností využít i RTOS MQX se stává zajímavým nástrojem pro hrátky, vývoj i ukázky možných aplikací.

Od společnosti Freescale Semiconductor jsem dostal na testování vývojovou desku, pojmenovanou jako KWIKSTIK s novou řadou mikrokontrolérů Kinetis K40. Ta mimo velmi netypického provedení z pohledu tvaru a zapouzdření nabízí i velmi širokou nabídku podpůrných prostředků pro vývoj a následné testování mnoha různých aplikací. Jako vítaný pomocník může být i s deskou dodávaný zdrojový kód demo softwaru, který již ve zjednodušené podobě realizuje digitální záznamník zvuku, dálkové ovládání, USB myš a hru typu Tetris. To je umožněno díky (na desce přítomným) USB výstupům, LCD displeji, 6 kapacitním dotykovým tlačítkům, mikrofonu a sluchátkovému výstupu, infračervenému vysílači a akumulátoru, díky němuž lze po jeho nabití desku provozovat i bez připojení na USB, ze kterého je jinak napájena.

Co jsou to MCU Kinetis?

Pod označením Kinetis se v nabídce společnosti Freescale nachází 32bitové, 32 až 256pinové výkonné mikrokontroléry s CPU jádrem ARM Cortex-M4, doplněné širokou výbavou dalších periférií, vhodné nejen pro potřeby spotřební elektroniky, ale i průmyslu.

Portfolio MCU Kinetis aktuálně zahrnuje širokou nabídku již 6 řad - typů, označených jako K10, K20, K30, K40, K50 a K60, vzájemně se lišících výbavou periférií, velikostí paměti a výkonem. Na konci tohoto roku pak bude ještě následovat typ K70. Všem je však společné ARM jádro Cortex-M4 a nízký příkon i spotřeba. Také díky ní bylo možné řešit napájení vývojové desky KWIKSTIK jen pomocí standardního USB portu PC. Další společnou vlastností je nový typ interní beznapěťové paměti (non-voltage memory), využívající 90 nm technologii TFS (Thin Film Storage) s unikátním systémem FlexMemory. Ten umožňuje konfigurovat část paměti jako EEPROM nebo jako Flash.

Více obecných informací najdete v článcích kolegy Robenka: "Mikrokontroléry řady Kinetis – od K10 až po K60 (1. část)" a "Mikrokontroléry řady Kinetis – od K10 až po K60 (2. část)"

Stručný přehled rozdílů výbavy jednotlivých řad MCU Kinetis

Mikrokontroléry Kinetis K40

Na dále popisované vývojové desce KWIKSTIK se konkrétně nachází 100 MHz MCU Kinetis řady K40. Je pinově, softwarově a také perifériemi kompatibilní s výchozími mikrokontroléry řady K10. Také obsahuje analogové, komunikační a řídicí periferie, FlexMemory, NAND Flash řadič a výpočetní jednotku s plovoucí řádovou čárkou, ale navíc přidává Full-speed USB 2.0 On-The-Go, podpůrný optimalizační blok USB Charger Detect v sekci komunikace a rovněž i flexibilní kontrolér pro LCD s podporou až 320 segmentů. Pokud jde o paměťový prostor, pohybujeme se od 64 kB Flash v rámci 64vývodového pouzdra typu QFN až po 512 kB (144MAPBGA). Jako přídavek ani zde nechybí bohatě vybavené periferní systémy – analogové, komunikační, časovací i řídicí struktury, např. až dva vysokorychlostní A/D převodníky s 16bitovým (konfigurovatelným) rozlišením, až dva 12bitové D/A převodníky, např. pro generování průběhů v audio aplikacích, tři komparátory, dva zesilovače s programovatelným zesílením (x64), napěťová reference aj.

Vnitřní bloková struktura MCU Kinetis K40 se 100 MHz jádrem ARM Cortex-M4

Vývojová deska KWIKSTIK

Jak již bylo zmíněno v úvodu, vývojová a prezentační deska KWIKSTIK byla společností Freescale vyvinuta primárně pro vývoj, návrh a prezentaci aplikací pro MCU Kinetis K40 bez potřeby vyvíjet a jakkoliv se zabývat hardwarem. Je tedy možné se hned vrhnout na vývoj softwaru. To, že je zde rovněž kladen důraz na prezentaci a snadnou manipulaci s deskou, je jasné již při letmém pohledu. Deska KWIKSTIKu je totiž dodávána „zasazená“ v elegantním oranžovém gelovém pouzdru, ze kterého jen vykukují připojovací konektory, displej a hlavní vypínač.

Vývojový kit Freescale KWIKSTICK s MCU Kinetis K40 a širokou výbavou periférií, schovaný v na dotek příjemném silikonovém pouzdře

Pro tyto účely pak byl KWIKSTIK mimo samotné 100 MHz MCU Kinetis K40X256VLQ100 s 256 kB Flash paměti a 256 kB FlexMemory, podporou LCD a USB dále vybaven následujícími prostředky (hardwarem):

  • KWIKSTIK uvnitř306bodový monochromatický LCD displej bez podsvícení
  • 2x 3 kapacitní dotyková tlačítka po stranách
  • elektretový mikrofon
  • 3,5“ Jack výstup na sluchátka
  • slot pro mikroSD karty
  • mikroUSB konektor pro J-LINK komunikaci
  • mikroUSB konektor pro komunikaci s MCU K40
  • lithiová akubaterie
  • vypínač napájení
  • tzv. Tower plug-in (TWRPI) socket pro propojení s dalšími deskami
  • infračervený optický vysílač

Komunikaci J-Link pak realizuje na desce umístěné zvláštní MCU s naprogramovaným komunikačním softwarem. Při programování desky KWIKSTIK z pohledu nahrávání programu do desky, tedy do MCU Kinetis K40, je možné využít buď služby vývojového prostředí / softwaru společnosti Freescale CodeWarrior for MCU 10.1 a připojení desky k PC prostřednictvím mikroUSB J-LINK komunikace či pomocí vývojového softwaru společností IAR, Keil či Green Hills a připojení MCU K40 přímo k PC přes druhou USB linku.

Základní přehled výbavy desky KWIKSTICK

Z pohledu realizace samotné aplikace pro KWIKSTIK je pak pro oba zmíněné vývojové softwary k dispozici „doplňková výbava“, která je dostupná po registraci na webových stránkách Freescale. Ta se po stažení a spuštění instalace do nich „nahraje“. Při zahájení vytváření nového projektu pak lze již vybrat KWIKSTIK desku z nabídky podporovaného hardwaru, čímž se Vám do projektu již automaticky přidají volání knihoven a podprogramů, realizujících ovládání periférií na desce. Ve výsledku tak jen voláte tyto již Freescalem vytvořené funkce a předáváte jim potřebná data a tedy se nemusíte například zabývat detailním programováním zobrazení znaků na LCD displeji, protože to je již předvytvořené. A nakonec tu je ještě možnost využít služeb real-time operačního systému MQX 3.7, též z dílen Freescale.

Deska KWIKSTIK po vyjmutí z dodávaného silikonového pouzdra

Operační systém MQX 3.7

RTOS MQX 3.7 je jednoduchým operačním systémem pro 32bitová MCU, který programátorovi poskytuje možnosti využití zajímavých a dost složitých funkcí bez potřeby jejich programování. Například v případě MCU Kinetis K40 a vývojové desky KWIKSTIK lze z praktického pohledu jmenovat ovládání MCU pomocí příkazové řádky z terminálu, využívat služeb USB komunikace, přístup a správu souboru na microSD kartě zasunuté ve slotu, převod a ukládání zvuku z mikrofonu do souboru a jeho zpětné přehrání apod. Tedy všechny, jinak na programování již dost náročné, periférie a aplikace.

Obecně jádro tohoto RTOS je založeno na komponentové architektuře mikrokernelu, umožňující přizpůsobit jeho velikost, vlastnosti a rychlost prostřednictvím navolení komponent, které pro danou aplikaci jsou potřeba a tím optimalizovat zatížení MCU a využití paměti. Celkem RTOS MQX zahrnuje 25 komponent, kde 8 komponent tvoří samotné jádro RTOS a zbylých 17 komponent je volitelných. Komponenty jsou slinkovány pouze pokud jsou potřeba, což umožňuje vyloučení nepoužívaných funkcí, aby zbytečně nezabíraly místo v paměti. Například jej lze nakonfigurovat již pro malou 12 kB ROM a 2,5 kB RAM paměť, přičemž obsahuje kernel, 2 task aplikace, 1 semafor, zásobník přerušení, fronty a správu paměti.

MQX je skutečný real-time hardwarově zaměřený operační systém. To znamená, že jednotlivé funkce se vykonávají na základě jejich stanovené priority. Pokud je funkce s vyšší prioritou připravena k běhu, je v co nejkratším čase zahájeno její vykonávání CPU přednostně proti funkci s nižší prioritou. Ta musí čekat. Funkce s nejvyšší prioritou pak nelze ani přerušit a vždy se čeká na jejich dokončení. Tento přístup, známý jako prioritně založené plánování (priority-based preemptive scheduling), umožňuje velmi prioritní funkce programu vykonat bezodkladně a nezávisle na počtu dalších funkcí, které „bojují“ u CPU o čas. Optimalizovaný kód při překladu pak zrychluje běh RTOS, například přepínání obsahu. Vylepšený a také zrychlený je i plánovací systém (Scheduling), který je potřebný při používání komunikačních protokolů typ USB nebo TCP/IP. Vše doplňuje na rychlost optimalizovaná bootovací sekvence, zajišťující rychlý rozběh hardwaru a aplikace po resetu.

Při vývoji programů pod RTOS MQX se pak využívá jednoduché API, využitelné pro MCU a CPU napříč celým sortimentem Freescale. Je tak nutné „jen“ vhodně pracovat s výrobcem poskytovanou dokumentací, popisující všechny API.

Součástí MQX RTOS je pak i CodeWarriorem podporovaný souborový systém MFS (MQX File System), kompatibilní s Windows a MS-DOS soubory. Umožňuje formátování, čtení, zápis a kopírování souboru s jiným OS využívající FAT souborový systém. Podporuje tak použití různých datových médií, jako USB Flash či SD karty. MFS je integrován s FTP serverem a Mass Storage Class Driver v USB Host Stacku. Zároveň MFS také zahrnuje TFS systém (Trivial File System), který lze využít v http aplikacích, vyžadujících pouze čtení.

RTOS MQX 3.7 však není standardní součástí např. vývojového softwaru CodeWarrior, ale je nutné jej stáhnout ze stránek Freescale zvlášť a poté jej nainstalovat na PC. V případě přítomnosti CodeWarrioru se pak do něj již sám integruje. Je také ale poskytována podpora pro jiné vývojové softwary, jako jsou IAR 6.1X či IAR 6.2X nebo nejnověji i Keil µVision. V případě CodeWarrioru je pak již při zakládání nového projektu možné vybrat MQX 3.7 a zatrhnout prostředky, které budete chtít využívat, čímž se již do projektu „natáhnou“ odkazy na jeho soubory, potřebné pro budoucí překlad.

Po instalaci RTOS MQX do PC se vytvoří ve Windows v nabídce START zvláštní složka....

... a v programu CodeWarrior for MCU 10.1 se objeví volba vytvoření projektu s RTOS MQX 3.7

DEMO program pro KWIKSTIK

Aby se začátek práce uživatelům a programátorům více usnadnil, připravil Freescale již základní demo program, využívající RTOS MXQ 3.7 a současně ukazující základní možnosti desky. Mimo to pak dále může dobře posloužit jako počáteční startovní pozice výuky práce s KWIKSTIKEM a obecně MCU Kinetis K40 a také jako šablona pro vývoj složitějších aplikací. Demo program obsahuje několik režimů, kterými umožňuje nahrání několika sekund zvuku z mikrofonu do vnitřní paměti MCU a následné přehrání, chovat se jako dálkový ovladač, po připojení přes USB do PC pracovat jako myš nebo si zahrát pomocí tlačítek a LCD displeje hru „FreTris“ (obdoba Tetrisu).

Demo software běžící pod RTOS MQX 3.7 umožňuje dvěma dotykovými tlačítky "SEL" vybrat požadovaný funkční režim

Demo program je již při dodání uložen v KWIKSTIKU, takže po jeho vybalení a zapnutí se ihned zprovozní. Výhoda je, že nový uživatel okamžitě vidí, že „to něco dělá“. Zdrojový kód si však lze také stáhnout z webu Freescale, ze stránek produktu, a spuštěním exe souboru se sám „zařadí“ do adresáře RTOS MQX 3.7. Můžeme jej následně otevřít například v CodeWarrioru, přeložit a nahrát do desky.

Zdrojový kód demo softwaru s RTOS MQX 3.7 ve vývojovém softwaru CodeWarrior for MCU 10.1, doplněný několika "service packy" pro podporu MQX 3.7 a desky KWICKSTICK (vše po registraci volně ke stažení na stránkách společnosti Freescale)

Závěrem…

Toto byl jen velmi stručný popis vývojového a prezentačního kitu KWIKSTIK a možností jeho programování. V dalších článcích se proto k programování desky, resp. MCU Kinetis K40, vrátíme podrobněji, blíže popíšeme zdrojový kód poskytovaného demo softwaru a ukážeme si detailněji některé možnosti KWIKSTIKU i jeho programování softwarem CodeWarrior.

Článek vytvořil: Antonín Vojáček

DOWNLOAD & Odkazy

Hodnocení článku: