Custom DPA Handler je volitelná programová nadstavba, pomocí které lze efektivně upravit chování transceiveru. V tomto dílu si ukážeme první z mnoha případů využití.
Custom DPA Handler
Jestliže je potřeba přizpůsobit chování a funkčnost transceiveru nad rámec, který poskytuje HWP (hardware profile) spolu s operačním systémem, je možno k tomuto účelu použít Custom DPA Handler. Jedná se o programovou nadstavbu psanou v jazyce C. Vytvořený program se následně kompiluje (vytvoří se HEX soubor) a nahraje obvyklým způsobem do transceiveru.
Custom DPA Handler umožňuje přistupovat k nestandardním periferiím nebo přizpůsobit chování standardních perfiferií. Tímto způsobem můžete například generovat PWM, odečítat hodnoty z externích čidel nebo ADC. Využití se najde mnoho a vycházejí z potřeb, požadavků a kreativy tvůrce.
K dispozici je poměrně velká sada již vytvořených programů Custom DPA Handler. Najdete je na webu technologie IQRF. Lze je buď rovnou využít nebo podle potřeby upravit.
Ukázka generování PWM
Co je PWM
Zjednodušeně řečeno – PWM je pulsně šířková modulace analogového signálu pomocí dvouhodnotového signálu, k čemuž může sloužit např. napětí, proud nebo světelné pulsy. Signál je zakódován pomocí stavů zapnuto a vypnuto. Poměr mezi těmito stavy se nazývá střída. Může nabývat hodnot mezi 0 % – 100 %, kde 0 % znamená vypnuto a 100 % znamená zapnuto. Pomocí PWM je možno řídit například otáčky stejnosměrného motoru nebo jas světla.
Jak generovat PWM
Pro jednoduchost – ať už z pohledu pořízeného hardware, tak i z pohledu zapojení – bylo v této ukázce zvoleno řídit pomocí PWM jas LED. Pro vyzkoušení je potřeba mít k dispozici funkční síť IQRF, tj. mít v ní jeden Koordinátor a aspoň jeden Nod, v němž bude generování PWM probíhat. K tomuto Nodu bude připojeno zařízení, v němž se bude pomocí PWM něco řídit (zde bude pomocí PWM měněn jas LED).
Pozn.: O tom, jak z transceiveru udělat Koordinátor nebo Nod, bylo už pojednáno v minulých dílech, stejně tak jako o vytvoření funkční sítě a jejím otestování.
Pro generování PWM pracujte se souborem CustomDpaHandler-UserPeripheral-PWM.c
, který najdete v balíčku Startup package. Tento soubor v aplikaci IQRF IDE importujte do sekce Source. Můžete v něm provést případné změny a následně jej zkompilujte do HEX souboru. Tím si připravíte soubor vhodný pro nahrání do Nodu. Pokud nechcete žádné programové úpravy dělat, můžete rovnou využít již připravený zkompilovaný HEX soubor, ten importovat do sekce Output HEX a následně nahrát do Nodu. Zdrojové soubory i jejich kompilované varianty najdete v balíčku Startup Package připravené.
V konfiguraci Nodu je nutné povolit použití Custom DPA Handleru (záložka HWP). Jinak by k jeho využití i přes jeho přítomnost v Nodu nedocházelo.
Proto, aby příslušný transceiver generoval PWM, je třeba mu zaslat na příslušnou periferii potřebná data. Protože generování PWM zajišťuje příslušný Custom DPA Handler, je potřeba v souladu s kódem volit a zasílat správná data.
Ve zdrojového kódu se lze dočíst, že očekávaná data je třeba zasílat na první uživatelskou periferii (PNUM 0×20) a příkaz příslušející této periferii musí být nastaven na 0×00 (PCMD 0×00). Dále jsou očekávána data ovlivňující nastavení tří parametrů – předřadič (prescaler), frekvence (period), a střída (duty). Při testování aplikace můžete zadat tato data v terminálu do políčka PDATA (např. PDATA 0×00.FF.80). Poslední hodnota v rozsahu 0×00 až 0×FF mění hodnotu střídy a s tím i hodnotu jasu připojené LED. Při zaslané hodnotě střídy 0×00 nebude LED svítit, naopak při zaslané hodnotě 0×FF bude svítit naplno.
Pokud tedy chcete zaslat data na Nod s logickou adresou 0×0001, bude zpráva vypadat následovně: 00.01.20.00.FF.FF.00.FF.80.
Při vývoji aplikace je často potřeba prostudovat elektrotechnická schémata všech komponent, které se při daném příkladu používají. Obvykle zde najdete popsánu kompletní funkčnost daného zařízení, vstupy, výstupy, označení…
V tomto příkladu je využit transceiver, jehož podrobný popis najdete v jeho datasheetu a dále zařízení DK-EVAL-04, jehož popis je dostupný na IQRF.org.
PWM výstup je na transceiveru propojen s pinem C5, a v zařízení DK-EVAL-04, do kterého je transceiver zapojen, je tento pin vyveden do zdířky označené C5. Pokud pomocí PWM řídíme jas LED, zapojíme jeden konektor LED do zdířky označené C5 a druhý konektor do zdířky GND (ground, uzemnění).
Pro zjednodušení orientace, kam piny na vývojovém vybavení vedou, existují připravené popisky a polepky, můžete je najít buď přímo v technických dokumentech daného zařízení na webu technologie www.iqrf.org nebo se o nich zmiňují i vývojáři publikující na webu doitwireless.com.
V příštím díle si ukážeme, jakým způsobem lze číst data z externího teplotního čidla Dallas, hodnoty z externího čidla osvitu (fotorezistor) či hodnoty napětí pomocí potenciometru.