Úvodem
Jak už bylo napsáno, obvody IQRF jsou založeny na procesorech PIC. Nicméně, kdo PIC nikdy neviděl, nemusí se děsit. Na biflování instrukčního souboru lze rychle zapomenout díky programování v jazyce C, pro který je pro nekomerční použití kompilátor zdarma a také k registrům se mnoho nedostaneme a to především díky předpřipravenému API, které výrobce IQRF implementoval do systému.
Jdeme na to
Ke každé práci potřebujeme softwarové vybavení a samozřejmě samotný hardware, na kterém budeme vyvíjet. Výrobce modulů IQRF nabízí vlastní vývojové prostředky, které můžete shlédnout na webu věnované právě inteligentním bezdrátovým modulům. V sekci Development tools najdete množství programátorů a vývojových desek. Pro naše účely vystačí jediná: CK-USB-2, programátor obvodů IQRF, ostatní vývojové prostředky si vyrobíme.
Na webu je také možné stáhnout kompletní SW, vybavení nutné pro kompilaci kódu, programování a ladění. Balíček se jmenuje Startup Package. Jeho obsahem jsou:
- Příklady použití IQRF modulů, hlavičkové soubory
- IQRF IDE – programovací a ladící SW
- Kompilátor
- USB ovladače pro výše uvedený programátor
Deska vysílače
Jak už bylo uvedeno, vývojové destičky si můžeme vyrobit sami. První z nich bude deska vysílače, obsahující zdroj 3,3V (například pro napájení klasickou 9V baterií), patici pro modul IQRF TR-868-21, 4 tlačítka a 4 PULL-UP rezistory (nebyly by nutné, je možné připnout interní). Následující schéma ukazuje zapojení popsaného modulu.
Jak je vidět zapojení je velice jednoduché, přesto obsahuje vše, co je pro práci s obvodem potřeba. Následuje zapojení přijímače, které není o mnoho složitější.
Obě desky jsou navrhnuty na jednostranném plošném spoji. Předlohy pro jsou ve formátu PDF v měřítku 1:1
Rozpiska pro vysílač
R1-R4 Rezistor 4k7, 0,6W
S1-S4 Tlačítko P-B1720 (A,B,C…)
J7,J10 Kolíková lámací lišta S1G02
C1 Kondenzátor E2M2/100V
C2 Kondenzátor keramický 100nF/50V
U1 Integrovaný stabilizátor LE33cz
U2 Konektor KON-SIM-01
Rozpiska pro prijímač
R1-R4 Rezistor 1k2, 0,6W
D1-D4 LED-3MM
J7,J10 Kolíková lámací lišta S1G02
C1 Kondenzátor E2M2/100V
C2 Kondenzátor keramický 100nF/50V
U1 Integrovaný stabilizátor LE33cz
U2 Konektor KON-SIM-01
Po zapájení a připojení na zdroj napětí (např. 9V, kterou budeme používat), lze ověřit, zda funguje zdroj 3,3V (LE33cz). Pokud je vše v pořádku, lze zasunout obvod IQRF do patice. Na pinu J10-1 by mělo být napětí 3V, které poskytuje interní stabilizátor modulu. Pokud tomu tak je, propojením pinů J10-1 a J10-2 by měl být spuštěn program nahraný v IQRF.
Software pro vysílač
Jednoduchý vysílač se třemi tlačítky lze vytvořit poměrně jednoduše:
#include "includes/template-basic.h" void APPLICATION() { DLEN=4; TRISB = 0x36; while (1) { clrwdt(); if (!_SDO) bufferRF[0] = 'A'; else bufferRF[0]='N'; if (!_SDI) bufferRF[1] = 'A'; else bufferRF[1]='N'; if (!_SCK) bufferRF[2] = 'A'; else bufferRF[2]='N'; if (!_SS) bufferRF[3] = 'A'; else bufferRF[3]='N'; pulseOUT2(); RFTXpacket(); waitDelay(10); } }
V první části kódu je nastavena délka FR paketu na 4 bajty. Dále jsou nastaveny piny RB1, RB2, RB4 a RB5 na vstupní. Následuje test tlačítek. Pokud je tlačítko stisknuté (log „0“ je do bufferu nastaveno ‘A’, v opačném případě je do bufferu nastaveno ‘N’. Následuje bliknutí jako indikace, že byla odeslána zpráva o stavu tlačítek a paket je odeslán. Celý cyklus je zpožděn 100ms smyčkou.
Software pro přijímač
#include "includes/template-basic.h" void APPLICATION() { TRISB &= ~0x36; _SDO = 0;_SDI = 0;_SCK = 0;_SS = 0; while (1) { clrwdt(); if (RFRXpacket()) { if (bufferRF[0]=='A') _SDO = 1; else _SDO = 0; if (bufferRF[1]=='A') _SDI = 1; else _SDI = 0; if (bufferRF[2]=='A') _SCK = 1; else _SCK = 0; if (bufferRF[3]=='A') _SS = 1; else _SS = 0; } } }
Zde dochází opět k nastavení pinů RB1, RB2, RB4, RB5, ale tentokrát na výstupní, následuje jejich vynulování. Při příchodu RF paketu, jsou jednotlivé bajty porovnávány a dle nich rozsvěceny (zhasínány LED).
To by bylo pro dnešek o IQRF a jejich praktickém využití vše.
DOWNLOAD & Odkazy
- IQRF Prafkticky II
- IQRF Prafkticky III
- IQRF Prafkticky IV
- IQRF Prafkticky V
- IQRF moduly v HW Shopu
- Domovská stránka projektu IQRF - http://www.iqrf.com/
- Domovská stránka MICRORISC s.r.o. - http://www.microrisc.com/
- IQRF_desticky.zip (9.07 KB)
- Inteligentní bezdrátová pojítka? Ano – IQRF
- TEST modulů IQRF - miniaturní vestavná radiová komunikace
... nejenom moduly, ale vse, co je treba k vytvoreni chytrejsich bezdratovych reseni
Komentáře
Díky moc za článek -
Díky moc za článek - pomohl mi k rozjezdu mé aplikace. Prosím tě jak se dají zapnout ty PULL-UPy v Céčku (dovoluje to OS ? zapisovat do OPTION_REG), případně jak se do C vkládají instrukce assambleru. Díky (začátečník v C)
Zdravím, do OPTION registru
Zdravím, do OPTION registru je možné zapisovat. Například: OPTION = 0b0000.1111 nebo podobně. Pull-upy je možné zapnout interní, ovšem nedoporučuju to. Systém který je v IQRF při volání některých funkcí přenastavuje porty a jejich vlastnosti a to i u těch portů se kterými nemá nic společného. Doporučuji pull-upy interní. Přesto, řízení portu lze provést registrem TRISx = 0xXX. Poté nastavit port do 1. PORTx = 0xXX a nakonec povolit pull-up OPTION.7 = 0;
Mělo by to chodit. Ovšem jen do té doby, než zavoláš nějakou funkci pro měření teploty, práci s RF obvodem a podobně. Pak musíš znovu.
Já moc děkuji - už se
Já moc děkuji - už se těším na další příklady z IQRF.
IQRF prakticky
Proč nejsou aktivní odkazy na další díly ?