Výrobcovia integrovaných obvodov ponúkajú k svojim súčiastkam aj osadené vývojové dosky a odladené softvérové aplikácie, ktoré majú uľahčiť ich nasadenie do elektronickej praxe. Používanie nového typu mikroprocesora závisí aj od toho, ako rýchlo a do akej miery si používateľ osvojí nový typ procesora, či existuje prenositeľnosť kódu z už existujúcich riešení a v neposlednom rade náklady na vývojové prostredie a ladenie softvérovej aplikácie. Vývoj softvérových aplikácií s využitím už existujúcich príkladov, s pomocou ktorých je možné rýchlo sa zorientovať v problematike, možnosť ich úpravy a použitia pri tvorbe vlastného kódu je jedným z rozhodujúcich faktorov pre voľbu nového typu mikroprocesora. Infineon Technologies ponúka vývojové dosky pre svoje mikroprocesory s voľne dostupným vývojovým prostredím pre ARM mikroprocesory radu XMC4000. Tento príspevok sa venuje základnej charakteristike vývojového prostredia DAVETM 3 a návrhu jednoduchej softvérovej aplikácie pre procesor XMC4500 pomocou vývojovej dosky Relax Kit V-1.
Mikroprocesor XMC4500 patrí medzi 32-bitové Reduced Instruction Set Computing priemyselné mikroprocesory postavené na procesorovom jadre ARM Cortex-M4. Mikroprocesory s týmto jadrom sú energeticky efektívne a umožňujú vyvíjanie aplikácií pre vnorené systémy. Rastúca zložitosť vnorených elektronických systémov si vyžaduje mikroprocesory s vyšším výkonom, aby sa zabezpečilo vykonávanie číslicového spracovania signálov, aritmetiku s plávajúcou čiarkou. Poskytujú viac funkcií za nižšiu cenu, zvyšujú priemyselnú konektivitu a zlepšujú energetickú účinnosť. Skupina mikroprocesorov XMC4000 je optimalizovaná pre ovládanie elektrických motorov, konverziu elektrickej energie, priemyselnú konektivitu. V spojení s výkonným vývojovým prostredím sa podstatne skracuje čas vývoja aplikácie a zvyšuje sa tým produktivita. Skupina mikroprocesorov XMC4000 je navrhnutá pre pracovné prostredie s teplotou do +125 °C, čím tieto mikroprocesory spĺňajú stupeň 1 podľa AEC Q100 (− 40 °C až +125 °C) a je možné ich použiť aj v aplikáciách pre automobilovú elektroniku.
Na obrázku 1 je znázornená bloková schéma mikroprocesora XMC4500 so základným prepojením jeho funkčných blokov. Jadro XMC4500 obsahuje (CPU) procesorovú jednotku spojenú s jednotkou pre výpočtové operácie s plávajúcou čiarkou, ako aj jednotku ovládania pamäťového priestoru s adresovaním rôznych oblastí pamäte. Súčasťou jadra je programovateľný systém prerušení, pomocou ktorého je možné obsluhovať 112 vstupov prerušení s nastaviteľnou prioritou. Prerušenia umožňujú napríklad priamy prístup do pamäte, obsluhu časovačov, obsluhu analógovo-číslicových prevodníkov a podobne. Priamym prístupom do pamäte sa zrýchľuje výmena dát medzi perifériami a pamäťou.
Obr. 1 Bloková schéma mikroprocesora XMC4500
Pamäťový priestor mikroprocesora XMC4500 je rozdelený na:
– Boot ROM (16 kB) – obsahuje základnú inicializáciu systému, ktorá sa vykonáva po každom resetovaní mikroprocesora.
– Flash memory (1024 kB) – obsahuje kód programu alebo dáta.
– Code RAM (64 kB) – obsahuje kód programu alebo systémové dáta.
– System RAM (64 kB) – slúži na ukladanie dát.
– Communication RAM (32 kB) – je používaná komunikačnými rozhraniami, ako sú USB alebo Ethernet.
Kľúčovou požiadavkou dnešných priemyselných systémov je široká podpora komunikácie s rôznymi komunikačnými protokolmi. Okrem štandardných komunikačných rozhraní, ako sú Ethernet, USB, USIC, CAN, poskytuje XMC4500 rozhranie pre zobrazovacie LED panely a dotykové panely. K systémovej zbernici mikroprocesora je možné pripojiť aj SD/SDIO/MMC pamäťové karty cez SDMMC rozhranie. Kanál univerzálneho sériového rozhrania (USIC) je flexibilný modul, ktorý zabezpečuje komunikačné protokoly, ako ASC (asynchrónny sériový kanál = UART), SSC (synchrónny sériový kanál), I2C, I2S, LIN. Každý USIC obsahuje dva nezávislé komunikačné kanály. Mikroprocesor XMC4500 obsahuje tri USIC moduly, celkovo je teda k dispozícii 6 nezávislých sériových komunikačných kanálov.
Okrem číslicových vstupov a výstupov sa v mikroprocesoroch používajú aj analógové vstupno-výstupné rozhrania, pričom XMC4500 obsahuje štyri nezávislé A/D prevodníky s postupnou aproximáciou s programovateľnou dĺžkou prevodu 8 až 12 bitov. Súčasťou mikroprocesora sú aj dva D/A 12-bitové prevodníky.
Pre potreby ovládania časovo premenlivých dejov sa v mikroprocesore XMC4500 využívajú jednotky CCU4 a CCU8, pomocou ktorých je možné realizovať napríklad riadenie výkonu motorov pulzne šírkovou moduláciou (PWM). Jednotka POSIF je určená na riadenie motorov s využitím hallových sond s cieľom sledovania polohy a otáčok motora. Táto jednotka umožňuje riadiť motory v priemyselných alebo v automobilových aplikáciách zameraných na vysoký výkon a monitorovanie otáčok.
Vývojová doska pomáha pri vývoji nových aplikácií alebo pri začínaní s novým hardvérom, zorientovať sa programátorom a tvorcom elektronického zapojenia, čím sa predchádza prvotným omylom a nejasnostiam. Vývojová doska je okamžite k dispozícii, je otestovaná a pripravená na okamžité vytváranie vlastnej aplikácie. Na základe skúseností s prácou na vývojovej doske sa rýchlejšie implementujú nové technológie do praxe. Pre mikroprocesor XMC4500 je k dispozícií niekoľko vývojových dosiek. Cenovo dostupná je vývojová doska XMC4500 Relax Kit-V1 (alebo odľahčená verzia Relax Lite Kit-V1). Rozdiely medzi jednotlivými verziami sú v tabuľke 1.
Na obrázku 2 je zobrazená vývojová doska „Relax Kit V-1“ aj so zvýraznením jednotlivých funkčných blokov.
Obr. 2 Vývojová doska „Relax Kit-V1“ s vyznačením funkčných blokov
Mikroprocesor v pravej časti vývojovej dosky je oddeliteľný debugger, ktorý slúži na ladenie zdrojového kódu a nahrávanie kódu do flash pamäte mikroprocesora. Na tento účel je použitá špeciálna OEM verzia SEGGER J-Link Cortex emulátora, pomocou ktorej je možné ladiť zdrojový kód. Po fyzickom oddelení debuggera od hlavnej vývojovej dosky je možné na opätovné pripojenie použiť prepojenie pomocou kábla a konektorov. Detailné elektrické zapojenie vývojovej dosky je možné nájsť v literatúre [2], ktorá je dostupná na webových stránkach Infineon Technologies. Vývojová doska sa prepája s okolitými perifériami pomocou dvoch 40 vývodových konektorov.
Digital Application Virtual Engineer je vysokovýkonné vývojové prostredie na tvorbu aplikácií s XMC mikroprocesormi. DAVETM 3 obsahuje všetky funkcie, ktoré sú súčasťou štandardného integrovaného vývojového prostredia (Eclipse editor, C/C++ kompilátor, debugger). Vytváranie vlastného kódu je založené na používaní nezávislých preddefinovaných, aplikačne orientovaných softvérových moduloch označovaných DAVE Apps. Používateľ môže pripravené aplikácie používať bez toho, aby musel poznať kód aplikácie. Ak je to potrebné, je možné zdrojový kód aplikácie prezerať a modifikovať. Na tento účel je v menu „Help“ k dispozícii podrobný popis aplikácií s jednoduchým príkladom ich použitia. Vývojové prostredie DAVETM 3 je voľne k dispozícii na www.infineon.com/dave a podporuje všetky mikroprocesory XMC. Taktiež je možné stiahnuť a používať okolo 170 DAVE aplikácií. DAVE Apps je možné rozdeliť do týchto skupín:
1. systémové aplikácie (clock, reset, watchdog, DMA, I/O, interrupts...),
2. aplikácie pre prácu s perifériami (PWM, UART, I2C, CAN, LIN ADC, DAC...),
3. aplikácie na štandardné vstupno-výstupné zariadenia (USB, TCP/IP, SD/ MMC...),
4. špeciálne aplikácie na ovládanie zariadení (motor, osvetlenie, výkon…).
Prácu s vývojovým prostredím je vhodné ukázať na konkrétnom príklade, ktorý má merať teplotu čipu mikroprocesora, hodnotu teploty posielať na sériový port a blikať s LED diódou. Prepojením sériového rozhrania mikroprocesora napríklad s Bluetooth prevodníkom je možné teplotu zobrazovať v počítači, na tablete alebo mobilnom telefóne.
Využívanie DAVE Apps predpokladá vytvorenie DAVE CE projektu a výber typu mikroprocesora. Po vytvorení nového projektu sa zobrazí pracovná plocha pozostávajúca z viacerých okien (obr. 3). V okne „App Selection View“ (A) sa zobrazuje zoznam nainštalovaných aplikácií, ktoré je možné využívať v projekte. Aplikácie sú prístupné na stiahnutie z internetových stránok Infineon Technologies. Dvojitým kliknutím na aplikáciu zo zoznamu sa táto vloží do projektu. Všetky DAVE aplikácie, ktoré sú už použité v projekte, sa zobrazujú v okne „S/W App Dependency TreeView“ (B). Okno „S/W App Connectivity View“ (C) zobrazuje DAVE aplikácie použité v projekte a ich vzájomné virtuálne prepojovacie signály. Virtuálne signály znázorňujú prepojenie medzi aplikáciami a neskôr budú nahradené skutočnými signálmi.
Obr. 3 Vývojové prostredie DAVETM 3 pre mikroprocesory XMC
V príklade je použitých sedem DAVE aplikácií, ktoré riadia činnosť mikroprocesora:
– PWMSP001 na generovanie hlavnej časovej slučky (meranie teploty a blikanie LED diódy),
– NVIC002 na obsluhu vektora prerušenia,
– UART001 na komunikáciu so sériovým portom,
– TMPS001 na meranie teploty procesora.
Ostatné aplikácie sa do projektu pridávajú automaticky, pretože ich vyžadujú používateľom zvolené DAVE aplikácie. Každá aplikácia predstavuje zdrojový kód, ktorý sa pridáva do celkového zdrojového kódu projektu. Zdrojový kód pre jednotlivé aplikácie je možné nájsť v adresári projektu „../Dave/Generated/src“. Po pridaní ďalšej aplikácie sa obsah tohoto adresára mení, pričom kopíruje stav aplikácií v okne „S/W App Connectivity View“. Ak je aplikácia z tohto okna odstránená, odstráni sa aj zdrojový kód aplikácie z uvedeného adresára.
Parametre použitých aplikácií sa vo vývojovom prostredí DAVE nastavujú cez používateľské rozhranie pre ich konfiguráciu, ktoré sa sprístupní výberom danej aplikácie v okne „S/W App Dependency TreeView“. Po každej modifikácii vlastností aplikácií je potrebné vykonať aktualizáciu zdrojového kódu pomocou príkazu „Generate code“ z menu DAVE vývojového prostredia.
Konfigurácia parametrov aplikácie PWMSP001 je znázornená na obrázku 4. Frekvencia PWM signálu je nastavená na hodnotu 1 Hz a pomer aktívnej a neaktívnej časti PWM signálu je 25 % (čas svietenia LED je 250 ms). Taktiež je zvolená možnosť inicializácie PWMSP001 počas štartu programu, jako aj periodické generovanie PWM signálu. Je možné nastaviť aj ďalšie parametre PWMSP001 (štart a stop externým signálom), ako aj to, či má byť signál z PWMSP001 aplikácie fyzicky prepojený s vývodom mikroprocesora.
Obr. 4 Nastavenie parametrov PWMSP001
V príklade je vytvorené prepojenie s vývodom P1.1 mikroprocesora, ku ktorému je pripojená LED dióda LED1, čím je realizované blikanie led diódy v intervale jednej sekundy. Výstup aplikácie PWMSP001 je možné použiť aj na generovanie prerušenia. Vytvorením prepojenia medzi PWMSP001 a aplikáciou NVIC002 sa zabezpečí generovanie prerušenia v časovom intervale jednej sekundy (obr. 5).
Obr. 5 Prepojenie PWMSP001 aplikácie s NVIC002 aplikáciou
Vo vlastnostiach NVIC002 aplikácie je potom potrebné zadať meno funkcie „PWM_1s_Interrrupt“, ktorá sa má vykonávať po uplynutí časového intervalu 1 sekundy. Opakovanie generovania prerušenia NVIC002 je dané nastavením frekvencie PWM signálu v aplikácii PWMSP001.
0Funkcia „PWM_1s_Interrupt“ zabezpečuje meranie teploty čipu mikroprocesora a posielanie nameranej hodnoty na sériový port mikroprocesora. Meranie teploty čipu sa realizuje pomocou aplikácie TMPS001. Popis nielen tejto aplikácie je možné nájsť v menu „Help“ vývojového prostredia DAVE.
Na obrázku obr. 6 je zobrazené používateľské rozhranie aplikácie UART001, pomocou ktorého je možné nastaviť parametre sériového prenosu (mód komunikácie, rýchlosť prenosu, počet bitov a pod.). Jediné, čo sa v tejto verzii nedá nastaviť, je parita sériového prenosu (implicitne nastavená na sériový prenos bez paritného bitu).
Obr. 6 Nastavenie parametrov UART001
Ak je potrebné používať v sériovom
prenose aj paritný bit (niektoré komunikačné protokoly ho vyžadujú), je potrebné nastaviť počet prenášaných bitov na 9 a paritný bit vypočítať osobitne. Problém je v tom, že používateľské rozhranie neumožňuje nastaviť počet dátových bitov na 9. Tento nedostatok sa dá obísť nastavením WLE (Word Length) na hodnotu 9 a taktiež FLE (Frame Length) na hodnotu 9 registra SCTR (Shift Control Register) pre ten USIC, ktorý je použitý na sériovú komunikáciu (nastavenie SCTR registra je možné vykonať v zdrojovom kóde, ale až po vykonaní funkcie DAVE_Init(), ktorá inicializuje všetky DAVE Apps použité v projekte).
Mikroprocesor XMC4500 obsahuje 6 kanálov, ktoré je možné použiť pre ľubovoľnú sériovú komunikáciu. Voľbu konkrétneho komunikačného kanála, ktorý má komunikáciu realizovať, je možné nastaviť v okne „S/W App Connectivity View“ kliknutím na grafickú interpretáciu UART001 a v manuálnom priradení prostriedkov je možné zvoliť príslušný komunikačný kanál. Touto voľbou sa zabezpečí, že počas prekladu zdrojového kódu sa automaticky vyberú správne vývody mikroprocesora pre Rx a Tx signály. Ak sa k týmto signálom pripojí prevodník sériového prenosu na Bluetooth, je možné zobrazovať dáta na tablete alebo mobilnom telefóne.
Literatúra:
[1] „Evaluation Board For XMC4000 Family“, http://www.infineon.com
[2] Mike Copeland, „Embedded Component Based Programming with Dave 3“, Infineon Technologies, http://www.infineon.com
[3] „XMC4500 Microcontroller Series for Industrial Applications“ http://www.infineon.com