Choď na obsah Choď na menu

rfm75


RFM75 je vysielač s prijímačom GFSK pracujúci v celosvetovom frekvenčnom pásme ISM na 2400 - 2483,5 MHz. Prenos v nárazovom režime a rýchlosť dátového toku vzduchu až 2 Mb / s ich predurčujú na aplikácie vyžadujúce ultra nízku spotrebu energie. Integrované moduly na spracovanie paketov umožňujú ich plnú prevádzku s veľmi jednoduchým MCU ako rádiovým systémom. Automatický opätovný prenos a automatické potvrdenie poskytujú spoľahlivé spojenie bez rušenia MCU. RFM75 pracuje v režime TDD, buď ako vysielač alebo prijímač. Frekvencia kanálu RF určuje stred kanálu používaný modulom RFM75. Frekvencia je nastavená registrom RF_CH v banke registrov 0 podľa nasledujúceho vzorca: F0 = 2400 + RF_CH (MHz). Rozlíšenie frekvencie kanálu RF je 1 MHz. Vysielač a prijímač musia byť naprogramované na rovnakú frekvenciu RF kanála, aby mohli navzájom komunikovať. Výstupný výkon RFM75 je nastavený bitmi RF_PWR v registri RF_SETUP. Demodulácia sa vykonáva pomocou zabudovaného krájača údajov a logiky obnovy bitov. Dátový tok vzduchu možno naprogramovať na 250 kb / s, 1 Mb / s alebo 2 Mb / s pomocou registrov RF_DR_HIGH a RF_DR_LOW. Vysielač a prijímač musia byť naprogramované na rovnaké nastavenie. V nasledujúcich kapitolách sú všetky registre v banke registrov 0, s výnimkou výslovného nároku.

 

Schéma štátnej kontroly ?? Signál kolíka: VDD, CE ?? Register SPI: PWR_UP, PRIM_RX, EN_AA, NO_ACK, ARC, ARD ?? Systémové informácie: Časový limit, prijaté ACK, uplynulé ARD, ARC_CNT, prázdne TX FIFO, prenesené pakety ACK, prijaté pakety, RFM75 má zabudované stavové stroje, ktoré riadia prechod stavu medzi rôznymi režimami. Keď je funkcia automatického potvrdenia vypnutá, prechod stavu bude plne riadený MCU.

Režim vypnutia
V režime vypnutia je RFM75 v režime spánku s minimálnou spotrebou prúdu. Rozhranie SPI je v tomto režime stále aktívne a všetky hodnoty registra sú k dispozícii v SPI. Do režimu vypnutia sa vstupuje nastavením bitu PWR_UP v registri CONFIG na nízku hodnotu.
Pohotovostný režim
I Nastavením bitu PWR_UP v registri CONFIG na 1 a zrušením CE na 0 sa zariadenie prepne do pohotovostného režimu. Režim Standby-I sa používa na minimalizáciu priemernej spotreby prúdu pri zachovaní krátkeho času spustenia. V tomto režime je aktívna časť kryštálového oscilátora. Toto je tiež režim, do ktorého sa RFM75 vráti z režimu TX alebo RX, keď je hodnota CE nastavená na nízku hodnotu.
Pohotovostný režim II
V pohotovostnom režime II je aktívnych viac vyrovnávacích pamätí hodín ako v pohotovostnom režime I a spotrebuje sa oveľa viac prúdu. Pohotovostný režim II nastáva, keď sa CE na zariadení PTX drží vysoko s prázdnym TX FIFO. Ak sa v tomto režime nahrá nový paket na TX FIFO, zariadenie automaticky prejde do režimu TX a paket sa prenesie.

Zariadenie PTX (PRIM_RX = 0)
Režim TX je aktívny režim, v ktorom zariadenie PTX prenáša paket. Na vstup do tohto režimu z režimu vypnutia musí mať zariadenie PTX nastavený bit PWR_UP vysoko, bit PRIM_RX nastavený na nízku, užitočné zaťaženie v TX FIFO a vysoký impulz na CE po dobu dlhšiu ako 10 µs. Zariadenie PTX zostáva v režime TX, kým nedokončí prenos aktuálneho paketu. Ak CE = 0, vráti sa do pohotovostného režimu I. Ak CE = 1, ďalšia akcia je určená stavom TX FIFO. Ak TX FIFO nie je prázdny, zariadenie PTX zostáva v režime TX a vysiela ďalší paket. Ak je TX FIFO prázdne, zariadenie PTX sa prepne do pohotovostného režimu II. Je dôležité nikdy zostať v režime TX dlhšie ako 4 ms naraz. Ak je povolený automatický opakovaný prenos (EN_AA = 1) a je potrebné automatické potvrdenie (NO_ACK = 0), zariadenie PTX prejde do režimu TX z pohotovostného režimu I, keď uplynie ARD a počet opakovaných pokusov bude menší ako ARC.

Zariadenie PRX (PRIM_RX = 1)
Zariadenie PRX vstúpi do režimu TX z režimu RX iba vtedy, keď EN_AA = 1 a NO_ACK = 0 v prijatom pakete na prenos potvrdzujúceho paketu s čakajúcim užitočným zaťažením v TX FIFO.
Zariadenie PRX (PRIM_RX = 1)
Režim RX je aktívny režim, v ktorom je rádio RFM75 nakonfigurované ako prijímač. Pre vstup do tohto režimu z pohotovostného režimu I musí mať zariadenie PRX nastavený vysoko bit PWR_UP, vysoko nastavený bit PRIM_RX a vysoko nastavený pin CE. Alebo môže zariadenie PRX vstúpiť do tohto režimu z režimu TX po prenose potvrdzovacieho paketu, keď je v prijatom pakete EN_AA = 1 a NO_ACK = 0. V tomto režime prijímač demoduluje signály z RF kanála a neustále prezentuje demodulované údaje motoru na spracovanie paketov. Stroj na spracovanie paketov neustále hľadá platný paket. Ak sa nájde platný paket (podľa zhodnej adresy a platného CRC), užitočné zaťaženie paketu sa zobrazí vo voľnom slote v RX FIFO. Ak je RX FIFO plný, prijatý paket sa zahodí. Zariadenie PRX zostáva v režime RX, kým ho MCU nenakonfiguruje do pohotovostného režimu I alebo do režimu vypnutia. V režime RX je k dispozícii signál detekcie nosiča (CD). CD je nastavený na vysokú hodnotu, keď je detekovaný RF signál vo vnútri prijímacieho frekvenčného kanála. Interný signál CD sa pred uvedením do registra CD filtruje. RF signál musí byť prítomný najmenej 128 µs pred nastavením CD na maximum.
Zariadenie PTX (PRIM_RX = 0)
Zariadenie PTX vstúpi do režimu RX z režimu TX, iba ak EN_AA = 1 a NO_ACK = 0, aby prijali potvrdzovací paket.

 

 

 

 


==========================================


PAKETOVÝ FORMÁT

Preambula je bitová sekvencia používaná na detekciu úrovní 0 a 1 v prijímači. Preambula má jeden bajt a je buď 01010101, alebo 10101010. Ak je prvý bit v adrese 1, preambula sa automaticky nastaví na 10101010 a ak je prvý bit 0, preambula sa automaticky nastaví na 01010101. Toto sa vykonáva, aby sa zabezpečilo, že je dostatok prechodov v preambule na stabilizáciu prijímača.

Toto je adresa prijímača. Adresa zaisťuje, že paket je detekovaný cieľovým prijímačom. Registračné pole môže byť nakonfigurované na 3, 4 alebo 5 bajtov dlhé. Zariadenie PRX môže otvoriť až šesť dátových potrubí, aby podporilo až šesť zariadení PTX s jedinečnými adresami. Vyhľadáva sa súčasne všetkých šesť adries zariadení PTX. Na strane PRX sú dátové kanály povolené s bitmi v registri EN_RXADDR. V predvolenom nastavení sú povolené iba dátové kanály 0 a 1. Každá adresa dátového kanálu je nakonfigurovaná v registroch RX_ADDR_PX. Každá rúra môže mať až 5 bajtov konfigurovateľnú adresu. Dátové potrubie 0 má jedinečnú 5 bajtovú adresu. Dátové kanály 1-5 zdieľajú 4 najvýznamnejšie bajty adries. Bajt LSB musí byť jedinečný pre všetkých 6 kanálov. Aby sa zabezpečilo, že paket ACK z PRX sa prenesie do správneho PTX, prijme PRX adresu dátového potrubia, kde prijal paket, a použije ju ako adresu TX pri prenose paketu ACK. Na PRX musí byť RX_ADDR_Pn, definovaný ako adresa prepojenia, jedinečný. Na PTX musí byť TX_ADDR rovnaká ako RX_ADDR_P0 na PTX a ako adresa pre určený kanál na PRX. Žiadne iné dátové potrubie nemôže prijímať údaje, kým dátový kanál, ktorý zistil jeho adresu, nedostane úplný paket. Keď viac zariadení PTX vysiela na PRX, ARD možno použiť na skreslenie automatického opakovaného vysielania, aby sa navzájom blokovali iba raz.

 


Keď je povolená funkcia Dynamic Payload Length, paketové riadiace pole obsahuje 6-bitové pole dĺžky užitočného zaťaženia, 2-bitové pole PID (Packet Identity) a 1-bitový príznak NO_ACK.

Dĺžka užitočného zaťaženia
Pole dĺžka užitočného zaťaženia sa používa iba v prípade, že je povolená funkcia Dynamic Payload Length.
PID
2-bitové PID pole sa používa na zistenie, či je prijatý paket nový alebo opätovne vysielaný. PID zabraňuje zariadeniu PRX prezentovať rovnaké užitočné zaťaženie viac ako raz MCU. PID pole sa zvyšuje na strane TX pre každý nový paket prijatý cez SPI. Polia PID a CRC používa zariadenie PRX na určenie, či je paket starý alebo nový. Keď sa na spoji stratí niekoľko dátových paketov, polia PID sa môžu rovnať poslednému prijatému PID. Ak má paket rovnaký PID ako predchádzajúci paket, RFM75 porovnáva CRC sumy z oboch paketov. Ak sú CRC sumy tiež rovnaké, posledný prijatý paket sa považuje za kópiu predtým prijatého paketu a zahodí sa.

NO_ACK
Príznak NO_ACK sa používa iba vtedy, keď sa používa funkcia automatického potvrdenia. Nastavením vysokého príznaku informuje prijímač, že paket nemá byť automaticky potvrdený. PTX môže nastaviť bit príznaku NO_ACK v poli riadenia paketov pomocou príkazu: W_TX_PAYLOAD_NOACK. Funkcia však musí byť najskôr povolená v registri FEATURE nastavením bitu EN_DYN_ACK. Keď použijete túto voľbu, PTX po prenose paketu prejde priamo do pohotovostného režimu I a PRX po prijatí paketu nevysiela paket ACK.


Užitočné zaťaženie
Užitočné zaťaženie predstavuje užívateľom definovaný obsah paketu. Môže mať šírku 0 až 32 bajtov a pri prenose (nemodifikovanom) do zariadenia sa prenáša vzduchom. RFM75 poskytuje dve alternatívy pre manipuláciu s dĺžkami užitočného zaťaženia, statickou a dynamickou dĺžkou užitočného zaťaženia. Dĺžku statického užitočného zaťaženia každého zo šiestich dátových kanálov je možné nastaviť individuálne. Predvolenou alternatívou je dĺžka statického užitočného zaťaženia. So statickou dĺžkou užitočného zaťaženia majú všetky pakety medzi vysielačom a prijímačom rovnakú dĺžku. Statická dĺžka užitočného zaťaženia je nastavená registrami RX_PW_Px. Dĺžka užitočného zaťaženia na strane vysielača je nastavená počtom bajtov taktovaných do TX_FIFO a musí sa rovnať hodnote v registri RX_PW_Px na strane prijímača. Každá rúra má svoju vlastnú dĺžku užitočného zaťaženia. Dynamic Payload Length (DPL) je alternatívou k dĺžke statického užitočného zaťaženia. DPL umožňuje vysielaču odosielať pakety s premennou dĺžkou užitočného zaťaženia do prijímača. To znamená, že pre systém s rôznymi dĺžkami užitočného zaťaženia nie je potrebné škálovať dĺžku paketu na najdlhšie užitočné zaťaženie. Pomocou funkcie DPL môže RFM75 dekódovať dĺžku užitočného zaťaženia prijatého paketu automaticky namiesto použitia registrov RX_PW_Px. MCU môže načítať dĺžku prijatého užitočného zaťaženia pomocou príkazu: R_RX_PL_WID. Aby bolo možné povoliť DPL, musí byť v registri FEATURE nastavený bit EN_DPL. V režime RX musí byť nastavený register DYNPD. PTX, ktorý vysiela do PRX s povoleným DPL, musí mať nastavený bit DPL_P0 v DYNPD. 5.1.5 CRC CRC je mechanizmus detekcie chýb v pakete. Počet bajtov v CRC je nastavený bitom CRCO v registri CONFIG. Môže to byť buď 1 alebo 2 bajty a počíta sa z adresy, poľa riadenia paketov a užitočného zaťaženia. Polynóm pre 1 bajt CRC je X8 + X2 + X + 1. Počiatočná hodnota je 0xFF. Polynóm pre 2 bajtový CRC je X16 + X12 + X5 + 1. Počiatočná hodnota je 0xFFFF. Ak CRC zlyhá, na strane prijímača nie je akceptovaný žiadny paket.

 

================================


Manipulácia s paketmi
RFM75 používa na prenos a príjem užitočného zaťaženia režim série. Vysielač načítava užitočné zaťaženie z TX FIFO, automaticky ho zostavuje do paketu a prenáša paket vo veľmi krátkej dávkovej perióde s rýchlosťou prenosu vzduchu 1 Mb / s alebo 2 Mb / s. Po prenose, ak má paket PTX nastavený príznak NO_ACK, nastaví RFM75 TX_DS a poskytne aktívne IRQ s nízkym prerušením MCU. Ak je PTX paket ACK, musí PTX prijímať ACK z PRX a potom potvrdí TX_DS IRQ. Prijímač automaticky validuje a rozdeľuje prijatý paket, ak je v rámci nového užitočného zaťaženia platný paket, zapíše užitočné zaťaženie do RX FIFO, nastaví RX_DR a dá aktívne IRQ s nízkym prerušením na MCU. Keď je povolené automatické potvrdenie (EN_AA = 1), zariadenie PTX automaticky počká na potvrdenie paketu po prenose a znova odošle pôvodný paket so oneskorením ARD, kým nebude prijatý potvrdzovací paket alebo počet opakovaných vysielaní nepresiahne prahovú hodnotu ARC . Ak nastane neskoršie, RFM75 nastaví MAX_RT a poskytne aktívne IRQ s nízkym prerušením MCU. Dva počítadlá straty paketov (ARC_CNT a PLOS_CNT) sa zvýšia zakaždým, keď dôjde k strate paketu. ARC_CNT počíta počet opakovaných prenosov pre aktuálnu transakciu. PLOS_CNT počíta celkový počet opakovaných vysielaní od poslednej zmeny kanála. ARC_CNT sa resetuje vykonaním novej transakcie. PLOS_CNT sa resetuje zápisom do registra RF_CH. Informácie v registri OBSERVE_TX je možné použiť na celkové hodnotenie kvality kanála. Zariadenie PTX bude vysielať znova, ak je jeho RX FIFO plný, ale prijatý rámec ACK má užitočné zaťaženie. Ako alternatíva automatického opakovaného vysielania zariadenia PTX je možné manuálne nastaviť RFM75 na opakovaný prenos paketu niekoľkokrát. Toto sa vykonáva príkazom REUSE_TX_PL. Keď je povolené automatické potvrdenie, zariadenie PRX automaticky skontroluje pole NO_ACK v prijatom pakete a ak NO_ACK = 0, automaticky pošle potvrdzujúci paket na zariadenie PTX. Ak je nastavená EN_ACK_PAY a potvrdzovací paket môže obsahovať aj čakajúce užitočné zaťaženie v TX FIFO.


Dátové FIFO sa používajú na ukladanie užitočného zaťaženia, ktoré sa má prenášať (TX FIFO) alebo užitočného zaťaženia, ktoré sa prijíma a je pripravené na vypršanie časového limitu (RX FIFO). FIFO je prístupné v režime PTX aj PRX. Existujú tri úrovne 32 bajtov FIFO pre TX aj RX, ktoré podporujú režim potvrdenia alebo režim bez potvrdenia až so šiestimi kanálmi. ?? TX tri úrovne, 32 bajtov FIFO ?? RX tri úrovne, 32 bajtov FIFO Oba FIFO majú radič a sú prístupné cez SPI pomocou vyhradených príkazov SPI. TX FIFO v PRX môže ukladať užitočné zaťaženie pre pakety ACK na tri rôzne zariadenia PTX. Ak TX FIFO obsahuje viac ako jedno užitočné zaťaženie pre potrubie, užitočné zaťaženia sa spracúvajú pomocou princípu first in first out. TX FIFO v PRX je blokovaný, ak sú všetky čakajúce užitočné dáta adresované do rúrok, kde sa stratí odkaz na PTX. V takom prípade môže MCU vyprázdniť TX FIFO pomocou príkazu FLUSH_TX. RX FIFO v PRX môže obsahovať užitočné zaťaženie až z troch rôznych zariadení PTX. TX FIFO v PTX môže mať uložené až tri užitočné zaťaženia. Na TX FIFO je možné zapisovať pomocou troch príkazov, W_TX_PAYLOAD a W_TX_PAYLOAD_NO_ACK v režime PTX a W_ACK_PAYLOAD v režime PRX. Všetky tri príkazy umožňujú prístup k registru TX_PLD. RX FIFO je možné načítať príkazom R_RX_PAYLOAD v režime PTX aj PRX. Tento príkaz umožňuje prístup do registra RX_PLD. Užitočné zaťaženie v TX FIFO v PTX NIE je odstránené, ak sa uplatní MAX_RT IRQ. V registri FIFO_STATUS je možné prečítať, či sú TX a RX FIFO plné alebo prázdne. Bit TX_REUSE je k dispozícii aj v registri FIFO_STATUS. TX_REUSE sa nastavuje príkazom SPI REUSE_TX_PL a resetuje sa príkazom SPI: W_TX_PAYLOAD alebo FLUSH TX.

 

V RFM75 je aktívny pin s nízkym prerušením (IRQ), ktorý sa aktivuje, keď stavové zariadenie v registri STATUS nastaví TX_DS IRQ, RX_DR IRQ alebo MAX_RT IRQ vysoko. Pin IRQ sa resetuje, keď MCU zapíše '1' na zdrojový bit IRQ v registri STATUS. Maska IRQ v registri CONFIG sa používa na výber zdrojov IRQ, ktoré majú povolené presadiť kolík IRQ. Nastavením jednej z MASK bitov na vysokú hodnotu sa deaktivuje zodpovedajúci zdroj IRQ. Predvolene sú povolené všetky zdroje IRQ. Informácie o 3-bitovom potrubí v registri STATUS sa aktualizujú počas prechodu kolíka IRQ z vysokej na nízku hodnotu. Ak sa register STATUS číta počas prechodu kolíka IRQ z vysokej na nízku, informácia o potrubí je nespoľahlivá.

 

 


===================================================

SPI

Príkazy SPI sú uvedené v tabuľke 3. Každý nový príkaz musí byť spustený prechodom od najvyššej po najnižšiu v CSN. Paralelne s príkazovým slovom SPI použitým na kolíku MOSI sa register STATUS posunie sériovo na kolík MISO. Príkazy SPI na sériové radenie sú v nasledujúcom formáte: ?? <Príkazové slovo: bit MSB na bit LSB (jeden bajt)> ?? <Dátové bajty: LSB bajt na MSB bajt, najskôr MSB bit v každom bajte> pre všetky registre v banke 0 a register 9 pre registráciu 14 v banke 1 ?? <Dátové bajty: MSB bajt na LSB bajt, najskôr MSB bit v každom bajte> pre register 0 až register 8 v banke 1
----------------
R_REGISTER          
000A AAAA
1 to 5 LSB byte first
Čítanie príkazových a stavových registrov. AAAAA = 5 bitová registrácia mapovej adresy
-------------------
W_REGISTER
001A AAAA
1 to 5 LSB byte first


Zapisujte príkazy a stavové registre. AAAAA = 5
bit Registrovať mapovú adresu je možné spustiť iba v režime vypnutia alebo pohotovostného režimu.
-----------------------
R_RX_PAYLOAD
0110 0001
1 to 32 LSB byte first

Čítanie RX-užitočné zaťaženie: 1 - 32 bajtov. Operácia čítania vždy začína na bajte 0. Po načítaní sa užitočné dáta z FIFO vymažú. Používa sa v režime RX.
------------------
W_TX_PAYLOAD
1010 0000
1 to 32 LSB byte first

Zápis TX-užitočné zaťaženie: 1 - 32 bajtov. Operácia zápisu vždy začína na bajte 0 použitom v užitočnom zaťažení TX.
---------------------------
FLUSH_TX
1110 0001
Flush TX FIFO, používa sa v režime TX
----------------------
FLUSH_RX
1110 0010
Flush RX FIFO, používané v režime RX. Nemalo by sa vykonávať počas prenosu potvrdenia, to znamená, že potvrdzovací balík nebude dokončený.
------------------
REUSE_TX_PL
1110 0011
Používa sa pre zariadenie PTX Znovu použite posledné prenesené užitočné zaťaženie. Pakety sú opakovane vysielané, pokiaľ je CE vysoké. Opätovné použitie užitočného zaťaženia TX je aktívne, kým sa nevykoná W_TX_PAYLOAD alebo FLUSH TX. Opätovné použitie užitočného zaťaženia TX nesmie byť aktivované alebo deaktivované počas prenosu balíka
-------------------------------------------
ACTIVATE
0101 0000

Tento príkaz na zápis nasledovaný údajom 0x73 aktivuje nasledujúce funkcie:
• R_RX_PL_WID
• W_ACK_PAYLOAD
• W_TX_PAYLOAD_NOACK
Nový príkaz AKTIVOVAŤ s rovnakými údajmi ich opäť deaktivuje. Toto je možné spustiť iba v režimoch vypnutia alebo pohotovostného režimu.
Registre funkcií R_RX_PL_WID, W_ACK_PAYLOAD a W_TX_PAYLOAD_NOACK sú spočiatku v deaktivovanom stave; zápis nemá žiadny vplyv, výsledkom iba na čítanie sú nuly v MISO. Na aktiváciu týchto registrov použite príkaz AKTIVOVAŤ, za ktorým nasledujú údaje 0x73. Potom k nim možno pristupovať ako k akémukoľvek inému registru. Rovnakým príkazom a údajmi znova deaktivujete registre.
Tento príkaz na zápis, za ktorým nasledujú dáta 0x53, prepína banku registra a aktuálne číslo banky registra je možné načítať z REG7 [7]
--------------------------------
R_RX_PL_WID
0110 0000
Prečítajte si šírku užitočného zaťaženia RX pre najvyššiu R_RX_PAYLOAD v RX FIFO.
------------------------------
W_ACK_PAYLOAD
1010 1PPP
1 to 32 LSB byte first

Používa sa v režime RX. Napíšte užitočné zaťaženie, ktoré sa má prenášať spolu s paketom ACK na PIPE PPP. (PPP platné v rozmedzí od 000 do 101). Môžu čakať maximálne tri užitočné zaťaženia paketov ACK. Užitočné zaťaženie s rovnakým PPP sa spracúva pomocou princípu first in - first out. Užitočné zaťaženie pre zápis: 1–32 bajtov. Operácia zápisu vždy začína na bajte 0.
---------------------------------------
W_TX_PAYLOAD_NOACK
1011 0000
1 to 32 LSB byte first

Používa sa v režime TX. Zakáže AUTOACK na tomto konkrétnom pakete.
---------------------------------------
NOP
1111 1111
Žiadna operácia. Môže sa použiť na čítanie registra STAV
--------------------------------

===================================================
Cn: SPI príkazový bit
Sn: STAV registračného bitu
Dn: Dátový bit (LSB bajt na MSB bajt, MSB bit najskôr v každom bajte)
Poznámka: Časovanie SPI je pre banku 0 a registre 9 až 14 v banke 1. Pre register 0 až 8 v banke 1 je poradie bajtov obrátené tak, že bajt MSB je R / W pred bajtom LSB.

======================================

Registrovať mapu
Existujú dve banky registrov, ktoré je možné prepínať príkazom SPI „ACTIVATE“, za ktorým nasleduje bajt 0x53, a stav banky je možné načítať z banky Bank0_REG7 [7].