Bezdrátový modul pro pásma 433MHz a 868MHz

Radek Václavík

modul.jpg (97991 bytes)

Ve světě elektronických součástek existuje řada malých firem, které produkují velmi zajímavé integrované obvody. Nedosahují takových objemů jako velcí tahouni polovodičového průmyslu (STM, Analog Devices, Texas Instuments apod., ale některé jejich součástky rozhodně stojí za vyzkoušení. Jednou z nich je norská firma Nordic. Z jejich portfolia mne zaujala řada mikroprocesorů x51 s integrovaným vysokofrekvenčním datovým transceiverem pro pásma 430MHz, 850MHz či 2.4GHz. Díky obchodní politice firmy jsou tyto součástky dostupné i v kusovém množství za cenu například 6ti piv v normální restauraci. Tyto základní údaje byly pro mne hlavními argumenty pro vyzkoušení těchto obvodů v praxi, konkrétně obvodu nRF9E5. Pro znalé programování mikroprocesorů řady x51 se tak otvírá velká možnost jak zpestřit své aplikace a vyvinout řadu nových na bázi bezdrátového přenosu.


Pro ty, kdo touto vědomostí neoplývají, jsem nachystal univerzální minimodul a několik zajímavých aplikací. Cílem tohoto článku je dokázat, že stojí za to být neustále v kontaktu s novými součástkami. Řada z nich je velmi zajímavá pro domácí aplikace a stále se s nimi dá "bastlit". Člověk se nesmí dát odradit občasnou nedostupností kusového množství součástek, pokud neexistuje ochotná firma v ČR, najde se v EU či zcela spolehlivě za mořem v USA. Pro dále popsaný obvod jsem bez problémů sehnal 10 kousků pro mé pokusy za rozumnou cenu od MES Praha s.r.o., viz http://www.mespraha.cz, tel. 241 933 765. Tato firma zastupuje i další zajímavé výrobce součástek (Zarlink, ARM, Xilinx, Ericsson, LT, PI0, takže doporučuji mrknout na jejich stránky.
Někteří z Vás mohou navrhnout, že na trhu je dostupných několik modulů, jenže drtivá většina z nich pracuje na stejném principu rezonátoru ze SAW a je již prostě doba to trochu změnit. Jednoduchá zapojení s LC oscilátorem popsaná dříve na stránkách tohoto časopisu mají své mouchy. Digitální technika nám je pomůže částečně eliminovat.

Jaké jsou tedy základní vlastnosti tohoto obvodu? Blokové schéma je na obr.1. Výrobce ve specifikaci udává tyto základní informace:
· kompletní jednočipový GMSK transceiver v malém 32 vývodovém pouzdře
· "ShockBurst" režim pro snížení spotřeby
· napájecí napětí 1.9V až 3.6V
· pracuje na různých kanálech - kompatibilita s normami ETCI i FCC
· přepnutí kanálu za méně než 650us
· velmi nízká cena
· nevyžaduje externí SAW filtr
· nastavitelný výstupní výkon do 10dBm
· detekce nosné
· "Data Ready" signál při příjmu či vysílání
· signál "Address Match" při příjmu
· automatické opakování přenosu dat
· automaticky generuje CRC a hlavičku paketu
· nízká spotřeba proudu při vysílání i příjmu

Jako základní aplikace pak výrobce doporučuje:
· bezdrátová komunikace
· alarmy a bezpečnostní systémy
· domácí automatizace
· dálková ovládání
· vzdálený dohled
· automobilové aplikace
· telemetrie
· průmyslové senzory
· hračky

Základní elektrické parametry obvodu jsou tyto (pro podrobnější informace doporučuji studium datasheetu):

Napájecí napětí: 1.9V až 3.6V
Proudová spotřeba v power down režimu: 2.5uA
Pracovní kmitočet transceiveru: 430 - 928MHz
Kmitočtový zdvih: +-50kHz
Rychlost přenosu dat GFSK, Manchester kódování: 100kbps
Maximální výstupní výkon vysílače: 10dBm
Citlivost přijímače pro 0.1%BER: -100dBm

obr1.gif (106991 bytes)


Obr.1. Blokové schéma obvodu nRF9E5

obr2.gif (55221 bytes)


Obr.2a. Výkres pouzdra QFN32.

1kc2.jpg (27394 bytes)


Obr.2b. Reálná velikost.

Mikroprocesor

Základem je mikroprocesor s instrukčním souborem kompatibilním se standardem 8051. Jeho časování je poněkud odlišné, instrukce potřebuje 4 až 20 strojových cyklů v porovnání s 12ti až 48mi pro "klasické" provedení. Řadič přerušení je rozšířen o 5 dalších zdrojů ADC (analogově digitální převodník), SPI (sběrnice), 2 pro řízení transceiveru a 1 pro probouzení ze "spícího" režimu. Mikroprocesor obsahuje i 3 časovače kompatibilní s 8052 typem a UART s generováním přenosových rychlostí pomocí časovače 1 nebo 2.

Konfigurace paměti a bootování programu

Uživatelský program je po resetu nahrán do interní SRAM paměti z externí EEPROM paměti přes sběrnici SPI takzvaným "bootloaderem". Ten je uložen v malé paměti ROM (512 bajtů). Defaultní bootloader očekává externí paměť typu 25320 s SPI rozhraním. SPI používá piny MISO, SCK, MOSI a EECSN. Po ukončení nahrání programu mohou být tyto piny použity jako obyčejné vstupně výstupní piny nebo jako sběrnice SPI.
RAM paměť může být použita i pro ukládání dat vlastní aplikace a její velikost je 4kB (tedy jako například u 89C4051). Tento způsob uložení programu je hlavním rozdílem proti dnes rozšířenému standardu , kdy je program uložen v paměti FLASH mikroprocesoru. Vyžaduje sice jednu externí součástku navíc, ale zase nejsou potřeba speciální programátory podporující jen omezený počet mikroprocesorů.

Speciální registry

Základní registry obvodu Nordic jsou kompatibilní s registry mikroprocesoru 8052. Rozšířené funkce jsou řízeny pomocí několika speciálních registrů a jejich kompletní popis naleznete v datasheetu. Pro programátory v jazyce C existuje soubor s definicí všech registrů pro tento obvod distribuovaných například firmou Keil.

PWM

Obvod obsahuje jednoduchý modul PWM (pulzně šířková modulace), který je dostupný na pinu P0.7. Rozlišení PWM je programovatelné 6, 7 nebo 8 bitů. Frekvence PWM je odvozena z krystalu mikroprocesoru přes 6ti bitový předdělič. Činitel plnění je pak 0-100% a řídí se jedním 8mi bitovým registrem. Modul PWM neumožňuje různé režimy známé z jiných mikroprocesorů, ale bohatě stačí pro řadu aplikací. Výhodou je jeho jednoduchost.

SPI

Sběrnice SPI je typu "master" a je multiplexovaná mezi výstupními piny, AD převodníkem a transceiverem. Negeneruje žádný "chip select - CS" signál a je po resetu využita pro komunikaci s externí pamětí programu. CS signál je možné programově vytvořit na libovolném pinu a umožnit tak například jednodušší layout plošného spoje.

Power management

Obvod může být naprogramován do několika stavů s různou proudovou spotřebou, viz. Tab.1., tyto hodnoty jsou důležité při návrhu napájení finálního zařízení. Jednotlivé subsystémy jako ADC či transceiver mohou být programově vypnuty či zapnuty. Mikroprocesor se zastaví, ale hodnoty paměti a registrů zůstávají beze změny. Proudová spotřeba je typicky 2uA a režim je možné ukončit přerušením z watchdogu, RTC časovače či portu P0.

Tab.1. Typická spotřeba obvodu

Režim

Typická spotřeba

Lehký (Light) power down

0.4mA

Střední (Moderate) power down

125uA

Standby režim

25uA

Hluboký (Deep) power down

2.5uA

MCU @ 0.5MHz 3V

0.125mA

MCU @ 1MHz 3V

0.25mA

MCU @ 2MHz 3V

0.5mA

MCU @ 4MHz 3V

1mA

MCU @ 8MHz 3V

2mA

MCU @ 12MHz 3V

3mA

MCU @ 16MHz 3V

4mA

MCU @ 20MHz 3V

5mA

Příjem 433MHz

12.2mA

Příjem 868/915MHz

12.8mA

Redukovaný RX režim

10.5mA

Vysílání @10dBm

30mA

Vysílání @6dBm

20mA

Vysílání @-2dBm

14mA

Vysílání @-10dBm

11mA


Wakeup a Watchdog obvody

Obvod nRF9E5 obsahuje i interní pomaluběžný oscilátor CKLF, který běží neustále. Pokud je aktivní krystalový oscilátor, je signál CKLF 4kHz odvozen z něj. V případě, že není krystalový oscilátor povolen, je signál CKLF odvozen z interního RC oscilátoru, který běží dokud je napájecí napětí větší nez 1.8V. Obvody watchdogu, wakeup časovače a portu P0 jsou řízeny právě z tohoto signálu z důvodu jejich nutné aktivity v režimu snížené spotřeby.

RTC Wakeup časovač je tvořen 24 bitovým čítačem a Watchdog pak čítačem 16ti bitovým. Rozlišení obou systémů je programovatelné od 300us do cca 80ms. Defaultní nastavení je 1ms. Wakeup časovač je plně ovládatelný řídícím software. Watchdog je po resetu zakázán a pokud je povolen, nedá se zakázat jinak než dalším resetem. Přetečení wakeup časovače může také vyvolat programovatelný puls dostupný na portu P0.
Ukončení stavu se sníženou spotřebou může být mimo přetečení Wakeup časovače vyvoláno také jedním nebo více piny na portu P0. Citlivost na hranu (sestupnou, vzestupnou či obě) a filtr proti překmitům se dá nastavit pro každý pin zvlášť.
Tyto funkce jsou velmi zajímavé pro napájení zařízení z baterie, kdy obvod setrvává ve stavu nízkého příkonu (odběr cca 2uA) a po dané době se probudí a začne komunikovat. Filtrace na vstupech pak spolehlivě odfiltruje krátké zákmity.

Krystalový oscilátor

Všechny interní obvody včetně AD převodníku a transceiveru používají signál z krystalového oscilátoru. Obvod pracuje s krystaly o kmitočtu 4, 8, 12, 16 a 20 MHz. Pro dosažení optimálních parametrů je vhodné krystal specifikovat pro Cl=12 až max 16pF. Činnost oscilátoru může být řízena programem. Pozor, je nutné používat pouze tyto uvedené hodnoty krystalů, nic jiného. Je to cena za jednoduchost vnitřních obvodů pro generování referenčních kmitočtů pro transceiver.

AD převodník

Obvod nRF9E5 obsahuje i 10ti bitový převodník s maximální rychlostí 80 vzorků za sekundu. Referenční napětí může být použito externí na pinu AREF či interní reference 1.22V. Převodník má 5 vstupů, vstupy 0 - 3 jsou dostupné na pouzdře obvodu jako AIN0-AIN3. Volbou vstupu číslo 4 dokáže obvod měřit vlastní napájecí napětí, které se interně připojí na vstup AD převodníku přes vestavěný odporový dělič. To je velmi zajímavá vlastnost, která uspoří několik externích součástek a zároveň nezabírá užitečný vstup převodníku.
Rychlost převodníku je řízena programem stejně tak jako rozlišení, které může být nastaveno na 6, 8 či 12 bitů. Převodník může být také použit v diferenciálním módu, kdy je AIN0 brán jako záporný vstup a další 3 vstupy jsou pak brány jako neinvertující. 10ti bitové rozlišení je dnes standardem pro tento typ mikroprocesorů a opět bohatě dostačuje pro řadu měření. Výsledek měření je dostupný ve dvou bajtech a dá se zvolit zarovnání výsledku doprava či doleva.
Při testech jsem narazil na jedno zajímavé omezení a tím je maximální hodnota externího referenčního napětí pro AD převodník. Nesmí překročit hodnotu 1.5V, takže se nedá spojit s napájecím napětím, jak je to běžné.

Vstupně výstupní porty

Obvod nRF9E5 má dva porty P0 a P1 podobně jako klasický 8051, ale jejich ovládání je odlišné. Porty jsou obousměrné a směr každého pinu se přepíná pomocí registru _DIR. Na portu P0 je dostupných 8 pinů, na P1 pak další 4 piny sběrnice SPI. Každému pinu může být také přiřazena alternativní funkce a k tomu slouží registr _ALT. Je to odlišná filozofie než u původní 8051, ale velmi často se objevuje u jiných procesorů (Freescale, Atmel AVR apod.).
Alternativní funkce, které je možné portu P0 a P1 přiřadit jsou:
T2 (vstup časovače 2) - pin SCK
GTIMER - P0.0
RXD (UART výstup) - P0.1
TXD (UART vstup) - P0.2
INT0 (přerušení 0) - P0.3
INT1 (přerušení 1) - P0.4
T0 (vstup časovače 0) - P0.5
T1 (vstup časovače 1) - P0.6
PWM - P0.7
Výstupy mohou být použity i pro přímé buzení LED diod (větší dodaný proud), ale na daném pinu musí být tato funkce zapnuta pomocí registru _DRV.
Port P1 je primárně určen jako SPI port a slouží také pro komunikaci s EEPROM po zapnutí napájení. Poté je možné port tento port využít podobně jako port P0.

Anténa

Piny ANT1 a ANT2 tvoří symetrický vysokofrekvenční výstup pro připojení antény. Oba piny také slouží pro napájení interního výstupního zesilovače, které se připojí buď přes tlumivky nebo do správného bodu dipólové antény. Optimální impedance antény je 300+j100 pro 430MHz a 225+j210 pro 900MHz. Připojení antény s nízkou impedancí, například 50O se dá realizovat přes jednoduchý balun. Na webovské stránce výrobce obvodu najde čtenář řadu příkladů pro realizaci různých antén na plošném spoji.

Transceiver

Právě tato část obvodu zásadně odlišuje nRF9E05 od ostatních mikroprocesorů. Obvod vysokofrekvenčního transieveru je funkčně shodný s obvodem nRF905. S mikroprocesorem komunikuje po interní paralelní nebo sériové, SPI sběrnici. Signály "Data Ready", "Carrier Detect" a "Address Match" signály jsou mohou být použity jako zdroje přerušení pro mikroprocesor nebo vyvedeny na port P0.
Obvod je určen pro práci v ISM pásmech 433/868/915MHz. Transceiver se skládá z integrovaného frekvenčního syntezátoru, výkonového zesilovače, modulátoru a přijímače. Výstupní výkon, kmitočet a další vysokofrekvenční parametry se dají snadno modifikovat přes SPI sběrnici. Proudová spotřeba je cca 11mA při vysílání (výstupní výkon -10dBm) a cca 12.5mA při příjmu. Transceiver se dá programově vypnout a snížit tak celkovou spotřebu zařízení.
Výstupní výkon se dá řídit ve čtyřech stupních -10dBm (11mA), -2dBm(14mA), 6dBm(20mA) a 10dBm(30mA).

"ShockBurst (TM)" režim

Princip ShockBurst režimu je vysvětlen na obr.3. V podstatě jde o efektivní využití maximální dostupné komunikační rychlosti obvodu nRF9E5. Data s nižší přenosovou rychlostí jsou přenášena po sběrnici SPI do obvodu transceiveru, který je po naplnění vyrovnávací paměti pošle vzduchem rychlostí 100kbps. Díky tomu se redukuje spotřeba proudu během vysílání. Další důležitou vlastností transceiveru je automatické generování hlavičky a CRC (kontrolní součet) pro každý rámec. To snižuje požadavky na vlastní mikroprocesor i na vývoj software. Uživatel si jen "vyzvedne" data z registrů.


Obr.3. Princip režimu ShockBurst (TM).


Obr.4. Srovnání proudové spotřeby klasického systému a režimu ShockBurst (TM).

Typický algoritmus pro vysílání dat v nRF9E5:
· Mikroprocesor shromáždí data a adresu pro přijímací stranu a tyto hodnoty pošle do transceiveru po interní SPI sběrnici.
· Mikroprocesor nastaví signály TRX_CE a TX_EN do logické 1, což aktivuje nRF9E5 ShockBurst(TM) vysílání.
· nRF9E5 ShockBurst (TM)
- transceiver se aktivuje
- zkompletuje se celý datový rámec (přidá se hlavička a CRC)
- datový rámec je vysílán rychlostí 100kbps (GFSK, Manchester)
- signál DataReady je nastaven do log. 1. až je vysílání ukončeno

· Pokud je nastaven bit AUTO_RETRAN, nRF9E5 automaticky opakuje vysílání dokud je TRX_CE v log. 1.
· Pokud je TRX_CE nastaven do log.0., nRF9E5 dokončí vysílání paketu a přejde do režimu snížené spotřeby

Pro testovací účely je potřeba mít k dispozici kontinuální nosnou. Toho lze dosáhnout nastavením TRX_CE do log. 1. a vypnutím AUTO_RETRAN. Po ukončení vysílání vlastních dat bude obvod vysílat pouze nemodulovanou nosnou.

Typický algoritmus pro příjem dat v nRF9E5:
· Přijímací ShockBurst(TM) režim se aktivuje nastavením TRX_CE do log.1. a TX_EN do log. 0.
· Za 650us začne nRF9E5 monitorovat okolní komunikaci
· Pokud nRF9E5 detekuje nosnou na daném kanále, nastaví CarrierDetect indikátor do log.1.
· Když nRF9E5 přijme platnou adresu, nastaví indikátor AddressMatch do log.1.
· Když nRF9E5 přijme platná data, tranceiver odstraní z dat hlavičku a CRC a nastaví indiátor DataRady do log.1.
· mikroprocesor nastaví TRX_CE do log.0. pro snížení proudové spotřeby
· mikroprocesor vyčte data z transceiveru po sběrnici SPI
· po vyčtení všech dat se nastaví indikátory DataReady a AddressMatch opět do log.0.
· čip je připraven k další operaci.

Pro někoho mohou být tyto informace na první pohled nesrozumitelné. Přeloženo do pochopitelnější "bastlířské" řeči to znamená, že tento obvod potřebuje k přenesení požadované informace (digitální či analogové převedené do digitální) mnohem kratší čas než klasické analogové systémy.
Další velmi výraznou vlastností obvodu je fakt, že se programátor nemusí starat o přípravu dat před vlastním přenosem vzduchem. Pokud si například koupíme analogový modul se SAW rezonátorem, musíme programově ošetřit odstranění stejnosměrné složky ze signálu, přípravu a výpočty kontrolního součtu, musíte si rezervovat čas mikroprocesoru, kdy se bude kontrolovat příjem signálu, kontrolovat případnou adresu právě vysílajícího modulu apod. Převedeno do času práce středně zkušeného programátora to znamená alespoň 50 hodin. To vše dokáže nRF9E5 ušetřit.
Typické odeslání a příjem pak "laicky" vypadá asi takto:
Mám data > zapnu transceiver > předám mu data > vypnu transceiver >>> Zapnu transceiver > čekám, dělám něco jiného > přijde příznak přijatých dat > vyzvednu zkontrolovaná data > vypnu transceiver.
Zásadní je i to, že uvnitř nRF9E5 máme k dispozici nejen vysílač, ale i přijímač a anténní přepínač. Což se objevuje u jednoduchých analogových systémů velmi zřídka a za cenu přesahující 800Kč.
Velmi důležitým faktem, který by neměl ujít Vaší pozornosti při čtení datasheetu je minimální napájecí napětí obvodu - 1.9V. To znamená, že aplikace dokáže být napájena i ze dvou tužkových baterií či akumulátorů. V jednom s režimů sníženého příkonu má obvod odběr řádu uA a dokáže tak z baterií pracovat několik let. Tím se blížíme k parametrům různých profesionálních zařízení a přitom je můžeme využít pro svou domácí aplikaci. Pozor, aby i další součásti aplikace byly určeny na stejné napájecí napětí.
Výhodou krátké vysílací doby systému je i fakt, že bude méně docházet ke kolizím paketů ve vzduchu při současném použití více vysílacích modulů. Vznik kolizního stavu se dá navíc minimalizovat využitím detekce nosné, kdy obvodu zakážeme vysílat, pokud na daném kanále již "slyší" nějakou komunikaci.
Zapomeňte na zvyšování výstupního výkonu vysílače. Sice existuje aplikační poznámka na toto téma, nicméně využívá poměrně speciálních součástek. Hlavním požadavkem je rychlost přepínání příjem/vysílání.

Tolik z citace datasheetu, který má přes 100 stran a rozhodně doporučuji jeho přečtení.

Největší překážkou pro rozšíření tohoto obvodu do radioamatérské praxe je použité pouzdro. Obvod je nabízen pouze v pouzdře QFN32 5x5, což v praxi vypadá jako čtvereček plastu o rozměrech 5x5mm s celkem 32mi "vývody". Ty jsou pouze ze spodní části obvodu ve formě malých kontaktních plošek a proto se tomuto provedení říká bezvývodové (leadless). Dá se předpokládat, že nové integrované obvody budou tuto technologii používat více a více, protože se jedná o velmi levné pouzdro. Hlavním důvodem je minimální množství mědi a pouzdřící hmoty. Ve svém zaměstnání jsem měl možnost tato pouzdra používat pro nové obvody ON Semiconductor a mohu říci, že pouzdro QFN je cca 3x levnější než známé 5ti vývodové pouzdro TO220. Pouzdro QFN se nedá jednoduše zapájet na nějakou "bastldesku", základem úspěchu je profesionální plošný spoj. Abych umožnil široké konstruktérské přístup i k tomuto integrovanému obvodu, navrhnul jsem a realizoval modul s obvodem Nordic nRF9E5, které se dá použít v řadě aplikací.

Vývojové prostředky

Vzhledem k tomu, že se jedná o mikroprocesor kompatibilní s řadou x51, lze použít standardní vývojové prostředky pro napsání aplikace. Pokud chce uživatel využít speciální funkce obvodu nRF9E5, musí samozřejmě nastudovat dané registry. Já jsem při své práci stále věrný volně šířitelné verzi programu FSI (www.fsinc.com) nebo jeho následovníku z www.raisonance.com. Vzhledem k tomu, že velikost programu nRF9E5 je omezena na 4kB, lze používat volně šířitelné verze zmíněných programů. Ty umožňují programování jak v assembleru tak i v jazyce C. Existuje i definiční soubor "reg9e5.h" s popisem všech speciálních registrů.
Pokud tedy již používáte například mikroprocesory 89C2051, nemusíte měnit své pracovní prostředí a přitom dostáváte do rukou vynikající součástku s VF transceiverem.


Menší zamyšlení je potřeba při volbě programátoru SPI EEPROM paměti typu 25320. Tento typ paměti není až tak běžný, většinou se používají paměti se sběrnicí I2C. Nicméně existuje univerzální programátor PonyProg, viz. http://www.lancos.com/prog.html. Ten s různými interfejsy dokáže programovat stovky různých obvodů, včetně naší 25320. Interfejs pro tuto paměť je navíc velmi primitivní a tvoří jej 5 rezistorů, 2 diody a pozooor, jeden tranzistor. Celý se dá vměstnat do krytky konektoru cannon9 a postavit za 30 minut.
Schéma programátoru je na obr. 5. Rezistory 4k7 a 3V zenerovy diody omezují napěťové úrovně na RS232. Tranzistor ovládá ChipSelect (CS) signál paměti. O zbytek se postará řídící program PonyProg. Jediná nevýhoda tohoto řešení je nutnost odpojení programátoru od modulu po naprogramování paměti. Je nutné, aby nebyla ovlivněna komunikace nRF9E5 obvodu a EEPROM paměti.


Obr.5. Schéma programátoru paměti 25320 pro PonyProg.

Paměť EEPROM obsahuje mimo vlastních dat i speciální hlavičku pro nastavení některých parametrů obvodu. Výstupní soubor HEX z překladače je nutné o tyto informace doplnit, což je také poměrně specifický požadavek.


Tab.2. Význam prvních bajtů v paměti EEPROM

 

7

6

5

4

3

2

1

0

0:

Verze (nyní 00)

Rezervováno (00)

RYCHLOST

XO_FREQ

1:

Offset pro start programu N

2:

Počet 256ti bajtových bloků v programu

...

Volitelná uživatelská data, nepoužito  bootloaderem

...

...

N

První bajt uživatelského programu, bude umístěn na adresu 0x0000 v procesoru.

N+1

Druhý bajt uživatelského programu, bude umístěn na adresu 0x0001 v procesoru.

...

...


Maximální RYCHLOST (bit 3) použité paměti EEPROM:
0 = 1MHz
1 = 0.5MHz

XO_FREQ - kmitočet krystalového oscilátoru
000 = 4MHz
001 = 8MHz
010 = 12MHz
011 = 16MHz
100 = 20MHz

Firma Nordic pro tento účel publikovala program s názvem EEPREP, který najde zájemce na jejich webovských stránkách. Program se spouští v tomto formátu:
eeprep [volby] <vstupní soubor> <výstupní soubor>
<vstupní soubor> je soubor ve formátu Intelhex z kompilátoru
<výstupní soubor> je soubor ve formátu vhodném k naprogramování do EEPROM
[volby] jsou:
-c n = volba krystalu v MHz
-i = ignoruj kontrolní součty
-p n = nastav maximální velikost programu (standardně 4096 bajtů)
-s = použita pomalejší EEPROM (fclk = 500kHz)

Pro náš modul pracující s krystalem 8MHz pak bude příkaz na úpravu HEX soubory vypadat takto:
Eeprep.exe -c 8 vstup.hex vystup.hex
Celý vývojový postup je přehledně zobrazen na obr.6.


Obr.6. Postup práce s nRF9E5 a Ponyprog.

Samozřejmě se dá koupit i originální vývojový kit pro obvod nRF9E5, ale jeho cena je kolem 300Euro. S malým omezením ale bohatě vystačí i varianta programátoru za 5Kč a univerzální modul popsaný dále. Jak jsem již zmínil, největším omezením práce s nRF9E5 je jeho pouzdro QFN32. Rozhodně se nedá zapájet do univerzální desky či ručně malovaného plošného spoje. Vzhledem k tomu, že se mi obvod velmi líbil, realizoval jsem malý plošný spoj, na který se dá obvod připájet. Celý tento modul se dá poté využít v řadě aplikací, které jsou již na obyčejných plošných spojích.

Pájíme pouzdro QFN

Návrh plošného spoje v počítači není problém, například knihovny populárního programu Eagle toto pouzdro obsahují. Problém nastává ve výrobě. Pro ruční osazení je dobré mít nepájivou masku i mezi vývody, což při rozteči 0.5mm dává šířku masky cca 0.17mm. Tím spadne plošný spoj do 6. konstrukční třídy a výrazně naroste i jeho cena. Inu, každá sranda něco stojí a stává se, že plošný spoj stojí více než vlastní kus křemíku. Samozřejmostí musí být i žárové cínování HAL.
Pro vlastní zapájení se doporučuji vybavit kvalitní mikropájkou (používám ERSA RDS80), kvalitním tenkým hrotem například 0.4mm, kvalitní pájkou (alias "cínem") tloušťky 0.5mm (použil jsem Stannol Kristal 400), nějakým kvalitním tavidlem (želé Multifix 450-01) a odsávací páska (například Stannol šířky 2.2mm). Určitě se hodí i velká lupa a pinzeta. Pomůže i kalíšek nějaké Valašské medicíny. Ne místo tavidla, ale na kuráž a klidnou ruku. Nejsem dealerem firmy Stannol, ale s jejich produkty jsem velmi spokojen. Navíc se dají koupit přímo v Rožnově p.R. u firmy PBT.
Po důkladné kontrole plošného spoje ohmmetrem na něj naneseme malé množství tavidla jehož hlavním účelem bude pouzdro chvíli fixovat. Pouzdro QFN je nutné před osazením také pocínovat. Stačí vzít na hrot malé množství cínu a opatrně každou plošku hrotem "přejet". Snažíme se, aby všechny plošky vypadaly stejně, pro lepší efekt použijeme i tavidlo. Poté umístíme opatrně pouzdro na plošný spoj tak, aby všechny vývody "seděly" přesně k ploškám na spoji. Nyní pouzdro přitlačíme pinzetou a hrotem pájky připájíme jeden vývod. Doporučuji začít pinem číslo 16, což je zemní přívod. Stačí přitisknout hrot pájky k pouzdru v místě daného vývodu a zároveň tlačit na pouzdro pinzetou. Poté podobně připájíme i druhý krajní vývod na stejné straně pouzdra a pin 32. Po kontrole polohy pouzdra naneseme na danou stranu větší množství tavidla a zapájíme i vývody 9 až 16. Vždy na hrot nabereme malé množství cínu, které se pak přenese na plošný spoj a hranu pouzdra QFN. Druhou odzkoušenou metodou je na hrotu pájky vytvořit kuličku cínu a tou přejet vždy jednu stranu pouzdra. Nesmíme pracovat "nasucho" čímž nemyslím švestkové C2H5OH ale tavidlo.
Pokud se Vám dva vývody slijí dohromady, nezoufejte. Odsávací páska je geniální vynález. Po zapájení celé jedné strany chvíli vyčkejte na vychladnutí pouzdra a poté páskou případně odstraňte přebytečný cín. Nyní je vhodná chvíle na elektrickou kontrolu pájení. K tomu je potřeba tester diod dostupný na téměř každém multimetru. Princip metody spočívá v testování interní ESD diody, která chrání obvod proti elektrostatické elektřině. Kladný pól připojíme na zemní pin, postupně se dotýkáme jednotlivých pinů v místě pinheadu či SMD součástky a kontrolujeme napětí interní diody. Je-li vše v pořádku, bude displej multimetru ukazovat 400-700mV. Současně kontrolujeme i sousední vývody, zda nemají zkrat. V případě nepřipájené plošky bude multimetr ukazovat maximální hodnotu (např. 2V), zkrat pak bude prezentován napětím blízkým 0V. Některé piny jako VCC, AREF apod budou ukazovat mírně odlišné hodnoty napětí, protože jsou uvnitř řešeny konstrukčně jinak.
Je-li vše v pořádku, zapájíme stejným způsobem i další 3 strany pouzdra. Pozor s používáním zmíněné medicíny, od určitého množství začne působit proti klidu ruky a bystrému oku.
Princip tohoto ručního osazení spočívá ve vytvoření pájeného spoje jednak zespodu obvodu a také z boku, kde jsou po vyseknutí ze zalévací formy dostupné hrany plíšků tvořících vývody. Tento způsob je samozřejmě vhodný pouze pro osazení několika kusů a určitě se nedá doporučit k sériové vývodě.

Modul s nRF9E5

Schéma vlastního modulu je na obr.7. a představuje katalogové zapojení obvodu. Krystal Q1, R1, C1 a C2 tvoří obvod oscilátoru. C3-C7 tvoří blokovací kondenzátory, R2 je přesný referenční odpor použitý pro nastavení interních obvodů nRF9E5. L1 až L3 spolu s kondenzátory C9, 10, 12, 13, 14 a 15 tvoří transformační obvod pro připojení 50 ohmové antény. Deska může pracovat na obou pásmech 430MHz i 860MHz, ale musí se změnit hodnoty indukčností a kondenzátorů a samozřejmě i řídící program.
Pozornému čtenáři určitě neušel fakt, že zapojení, byť má přívlastek vysokofrekvenční, neobsahuje žádné nastavovací prvky jako laditelné cívky či varikapy. Ano. Pro tento účel bohatě stačí oscilátor přímo na čipu. Je pravdou, že spektrální obraz nosné frekvence nebude moc připomínat krystalový oscilátor, nicméně pro komunikaci na pár set metrů to určitě nevadí.
R7, C4 a C5 slouží k připojení externí reference pro analogově digitální převodník. IC1 je paměť 25AA320 (Microchip, fungující od 1.8V), odpory R3-R6 slouží jako ochrana nRF9E5 při programování paměti. Originální vývojový kit pro tento obvod má rozhraní mezi pamětí, mikroprocesorem a externím programátorem řešeno lépe a programátor může být k aplikaci připojen neustále. Finta spočívá v připojení oddělovacích hradel do signálů SPI a jejich ovládání. Nicméně stávající řešení s programovacím interface za 5Kč považuji za dostačující.


obr7.gif (30075 bytes)

Obr.7. Schéma modulu s nRF9E5.

Port P0 a vstupy AD převodníku jsou vyvedeny na externí piny a tvoří interfejs pro připojení do cílové aplikace. Paměť EEPROM se programuje pomocí SPI signálů vyvedených na konektor. Ten nemusíte osazovat, pokud se chystáte modul naprogramovat jen několikrát a budete používat již odzkoušený binární soubor. V tomto případě stačí potřebné vodiče z interface připájet přímo na plošný spoj.

Schéma je realizováno na oboustranné desce plošných spojů o rozměrech 25x30mm. O jejich parametrech jsem se částečně zmiňoval již dříve, ale navíc se jedná o vysokofrekvenční zapojení a tomu odpovídá i rozmístění via průchodů a zemnící plocha. Všechny pasivní součástky jsou rozměru 0805. Výrobce doporučuje použít součástky 0603, ale s těmi se již obtížně manipuluje při ručním osazování.
Velmi důležitým faktem je maximální napájecí napětí obvodu 3.6V, které nesmí být překročeno. Jako levný použitelný stabilizátor se nabízí 78L02 s výstupním napětím 2.6V (ne 2V!!!). Veškeré externí signály, které budou na modul přivedeny, MUSÍ být napěťově omezeny na napájecí napětí obvodu. To se dá snadno zajistit pomocí zenerových diod či schottky diod proti napájecímu napětí ve spojení se sériovým omezovacím odporem.
Obvod nRF9E5 pracuje od napájecího napětí 1.9V. Aby bylo možné využít i tak nízké napětí, je nutné, aby od tohoto napětí pracovala také paměť EEPROM. Řada výrobců nabízí podobné typy, ale ty pracují až od 2.8V. Což nemusí být problém pro napájení ze 2 tužkových baterií, nicméně 2 NiMH akumulátory již neposkytnou dostatečné napětí.
Záměrně v této části článku nepopisuji vlastní osazení modulu, protože hlavní bylo řečeno v části popisující pájení pouzdra QFN. Rozhodně nedoporučuji stavbu modulu vlastními silami začátečníkům, kteří nemají zkušenosti s pájením SMD součástek či nechtějí investovat do kvalitních pájecích materiálů.


Obr.8. Výkres plošného spoje, strana součástek.


Obr.9. Výkres plošného spoje, strana spojů.


Obr.10. Osazovací výkres, strana součástek.


Obr.11. Osazovací výkres, strana spojů.

Seznam součástek pro modul

Všechny pasívní součástky jsou rozměru 0805
C1,2 22p
C3 10n
C4 100n
C5 1n
C6,12 3n3
C7,8 33p
C9 nepoužit
C10,13 18p (pro 860MHz 3.9p)
C11 33u/6V
C14 180p (pro 860MHz 33p)
C15 6p8 (pro 860MHz 33p)
R1 1M
R2 22k
R3,4,5,6,7 10k
IC1 25AA320 SO8
IC2 NRF9E5
L1,3 39nH (pro 860MHz 12nH)
L2 12nH
Q1 8MHz

modul.jpg (97991 bytes)
Obr.12. Fotgrafie osazeného modulu.


x51_nordic.jpg (54151 bytes)

Obr.13. Fotgrafie pouzdra QFN v porovnání s DIL40.


naradi_komplet.jpg (102229 bytes)

Obr.14. Fotgrafie použitých materiálů a nářadí.

Závěr

             V této první části jsem čtenáře seznámil se zajímavým obvodem nRF9E5, který v sobě skrývá vylepšený mikroprocesor x51 a kompletní transceiver pro pásmo 430MHz či 860MHz. Pokud konstruktér překoná problémy způsobené malým pouzdrem, najde tento obvod nebo modul široké uplatnění v řadě aplikací. Nízká spotřeba i cena přímo nabízí možnost různých bezdrátových modulů, teploměrů, alarmů, dálkových ovládání apod. Vždy je ale potřeba mít na paměti platnou legislativu v místě použití modulu tak, abychom nepřišli do konfliktu se zákonem.

            S daným modulem nebudete mít přístup na internet na vzdálenost 5km, ale budete si schopni postavit mnoho malých a chytrých čidel, která si pak můžete umístit ven, do pokoje, na půdu, do skleníku, do vinného sklípku, do pivního sklípku, na záchod, do mísy, do bazénu, do ledničky, do garáže, do květináče a tato čidla Vám mohou hlásit aktuální teplotu, vlhkost, výšku hladiny, tlak, napětí atd.

            V dalším pokračování pak čtenářům nabídnu několik konkrétních aplikací modulu. Tím, prvním bude bezdrátový zabezpečovací systém.

 

Pro zájemce o tento modul bychom rádi připravili osazené a oživené desky. Taková výroba vyžaduje poměrně velkou finanční investici a zatím nemáme vůbec představu o možném zájmu. Proto pokud byste si modul rádi objednali, pošlete nám prosím email. Jakmile se sejde dostatečný počet zájemců, budeme Vás informovat. Předběžná cena modulu je 950Kč včetně DPH. Děkujeme za pochopení.