Cílem tohoto několikadílného seriálu je seznámit čtenáře s možnostmi vývoje reálných aplikací s procesorovými moduly SQM4.
Pro jednotlivé příklady bude představena použitá hardwarová platforma, nastíněn bude design celé aplikace a podrobněji budou vysvětleny i jednotlivé softwarové komponenty. Stručně zmíněny budou i potřebné vývojové nástroje. V této první části seriálu začneme s vývojem zakázkového generátoru PWM signálu.
Jak již bylo zmíněno, zadáním úlohy je vývoj PWM generátoru, což zahrnuje jak hardwarové, tak softwarové práce.
Požadované mobilní zařízení vhodných rozměrů by mělo splňovat následující parametry:
Z definovaných požadavků je patrné, že pro aplikaci PWM generátoru bude muset být navrženo hardwarové řešení na míru. Tuto práci nám ale může ulehčit vhodný polotovar, což v našem případě bude procesorový modul SQM4-K70 od společnosti ELNICO (obr. 1).
Použitím hotového modulu bude vyřešeno prakticky celé jádro nového systému. Vývoj hardwaru aplikační desky díky tomu bude již poměrně jednoduchý, a tedy i rychlý a levný.
SQM4-K70 je procesorový modul s mikrokontrolérem Freescale Kinetis K70, nejvyšším z řady Kinetis K. Obsahuje ale zároveň 128 MB RAM, 128 MB NAND Flash a fyzickou vrstvu ETH 10/100 Mbit. Navíc může být modul osazen buď Wi-Fi rozhraním (varianta -W) nebo 32kB pamětí SPI EEPROM (-M). Pro aplikaci PWM generátoru bude využita druhá varianta, tedy -M.
Z hlediska konektivity jsou dostupná tři provedení zobrazená na obr. 2, z nichž první – tzv. Down-pins využívá připojení konektorem a další dva – Side-pins a Edge jsou pájitelné.
Pro konektorovou variantu (Down-pins) modulu SQM4-K70 je dostupný zároveň vývojový kit – EasyBoard (obr. 3). Ten obsahuje následující periferie, které lze pro vývoj PWM generátoru okamžitě využít:
Se softwarovými pracemi lze díky vývojovému kitu v podstatě okamžitě začít – mohou tedy probíhat paralelně s pracemi hardwarovými.
Ač lze EasyBoard v některých aplikacích i přímo využít, pro mobilní PWM generátor vhodný není. Je tedy třeba navrhnout vlastní aplikační desku na míru.
Pro zajištění dostatečné robustnosti elektrického zařízení je vhodné použít pájitelnou variantu modulu SQM4-K70. V této aplikaci bude použita konkrétně varianta Side-pins.
Dále bude aplikační deska oproti Easy- Boardu obsahovat pouze pro aplikaci nezbytné prvky. Nově bude muset být řešeno napájení a výkonová část PWM výstupů.
Pro zvolené hardwarové prostředky – tj. modul SQM4-K70 s mikrokontrolérem Kinetis K70 – je k dispozici celá řada hotových softwarových komponent. Díky nim lze vývoj celé aplikace výrazně urychlit.
Real-time operační systém MQX, volně dostupný pro procesory Freescale, nabízí plnou podporu pro mikrokontroléry Kinetis K70. Krom typických vlastností každého RTOS (plánování a synchronizace úloh) poskytuje zároveň např. USB stack (Host i Device) či TCP/IP stack.
ESL je komerční podpůrná knihovna pro procesorové moduly řady SQM4 od firmy ELNICO. Poskytuje množství softwarových komponent určených k urychlení aplikačního vývoje. Pro PWM generátor lze s výhodou využít její moduly pro klávesnici, komunikaci s SPI EEPROM, USB konektivitu a logování informací.
eGUI je grafická knihovna od společnosti Freescale určená pro aplikace v embedded zařízeních. Je kompatibilní s real-time operačním systémem MQX a v současnosti je distribuována zdarma pod LGPL licencí.
Využitím hotových softwarových komponent lze výrazně zkrátit čas pro vývoj vlastní aplikace. V rámci aplikačního kódu bude potřeba řešit v podstatě pouze ovládání PWM výstupů, návrh grafického rozhraní a provázání jednotlivých softwarových komponent.
Co se týče vývojových nástrojů – pro programování mikrokontrolérů Kinetis K70 se takřka výhradně používá jazyk C, eventuálně i C++. K sestavení kódu lze využít celou řadu vývojových prostředí – od Freescale CodeWarrior či IAR až po např. CrossWorks. Flashování a ladění programu probíhá přes JTAG rozhraní.
V příští části seriálu o vývoji reálných aplikací s procesorovými moduly SQM4 se zaměříme na design a implementaci celé aplikace PWM generátoru. Detailněji rozebráno bude využití již zmíněných softwarových komponent, popsán bude návrh vlastních funkčních modulů i grafická stránka aplikace.