You are on page 1of 13

1.DETALII TEHNICE: 1.1 MODUL DE CONECTARE AL PINILOR SI COMENZILE SPECIFICE Transcieverul NRF !

L"1 #r$%us %e &ir'a NORDIC SEMICONDUCTOR &$l$ses(e #en(ru a c$'unica cu e)(eri$rul #r$($c$lul SPI. Din aceas(a cau*a #inii %escrisi in cele ce ur'ea*a sun( carac(eris(ici aces(ui #r$($c$l. MOSI + 'as(er $u( ,'as(er-uC. slave in ,(ransceiver. MISO + 'as(er in slave $u( CL/ 0 se'nalul %e ceas %u#a care se e&ec(uea*a (rans'isia CSN 0 #in u(ili*a( $ri %e ca(e $ri se c$'unica cu (ranscieverul ,ACTI1E LO2. IR3 0 in(erru#( re4ues(5 a(en(i$nea*a ca in in(eri$rul (ranscieverului s0a in(a'#la( ceva CE 0 c6i# ena7le5 se u(ili*ea*a #en(ru c$n(r$lul (rans'isiei ,R8: CE-HI9H5 T8: CE-LO2. 1CC 0 #inul %e ali'en(are 3.3V 9ND

Din cele #a(ru '$%uri %e (rans'i(ere a in&$r'a(iei #rin #r$($c$lul SPI NRF !L"1 &$l$ses(e #ri'ul '$% ,CPHA-"5 CPOL-".. Din aces( '$(iv '$%ulul SPI %in i(eri$rul uC (re7uie se(a( in aces( '$%.

Pen(ru a ci(ii sau scrie %a(e in re:is(rii in(erni ai (ranscieverului se &$l$sesc $ serie %e c$'en*i #re*en(a(e in ur'a($rul (a7el:

R;RE9ISTER se u(ili*ea*a #en(ru a ci(ii %a(ele %in in(eri$rul unui SFR al (ranscieverului. M$%ul %e u(ili*are es(e ur'a($rul: in l$cul carac(erel$r <A< se in(r$%uce a%resa #e care %$ri' sa $ ci(i'. Acea(a val$are se (rans'i(e #rin SPI (ranscieverului. In aces( '$'en( NRF0ul s(ie ca (re7uie sa ci(easca $ anu'i(a a%resa. Pen(ru a <sc$a(e< val$area aces(eia se 'ai (rans'i(e un nu'ar %e 7=(es e:ali cu la(i'ea re:is(rului care (re7uie ci(i(. De e)e'#lu %aca %$ri' sa ci(i' un re:is(ru care are la(i'ea %e 1 7=(e si es(e l$cali*a( la a%resa "16 al:$ri('ul es(e ur'a($rul: 1. CSN se &ace LO2> . Se (ri'i(e #rin SPI ins(ruc(iunea R;RE9ISTER care es(e %e &$r'a: "7"""""""1> ?. Desi nu ne in(eresea*a es(e nev$ie sa ci(i' ceea ce ne (ri'i(e NRF0ul. !. Se (ri'i(e un 7=(e $arecare , %e $7icei NOP. iar ceea ce #ri'i' ina#$i es(e c6iar valoarea adresei care ne intereseaza.

2;RE9ISTER se u(ili*ea*a #en(ru a scrie $ anu'i(a val$are in(r0un re:is(ru in(ern al NRF0ului. M$%ul %e u(ili*are es(e ur'a($rul: in l$cul carac(erel$r <A< se in(r$%uce a%resa #e care %$ri' sa $ ci(i'. Acea(a val$are se (rans'i(e #rin SPI (ranscieverului. In aces( '$'en( NRF0ul s(ie ca (re7uie sa scrie la $ anu'i(a a%resa. Pen(ru a <scrie< val$area aces(eia se 'ai (rans'i(e un nu'ar %e 7=(es e:ali cu la(i'ea re:is(rului care (re7uie ci(i(. De e)e'#lu %aca %$ri' sa ci(i' un re:is(ru care are la(i'ea %e 1 7=(e si es(e l$cali*a( la a%resa "?6 al:$ri('ul es(e ur'a($rul:

1. CSN se &ace LO2> . Se (ri'i(e #rin SPI ins(ruc(iunea 2;RE9ISTER care es(e %e &$r'a : "7""1"""11> ?. Desi nu ne in(eresea*a ci(i' ceea ce ne (ri'i(e in aceas(a &a*a NRF0ul> !. Tri'i(e' #e SPI un byte care va fi scris la a%resa "?6> @. Ci(i' %in n$u ceea ce #ri'i'. Inain(e %e a e)#lica R;R8;PAALOAD si 2;T8;PAALOAD ar (re7ui %iscu(a( c$nce#(ul %e <#a=l$a%<. Pa=l$a%0ul nu es(e al(ceva %eca( %enu'irea %a(a %e #r$%uca($r #en(ru %a(ele #ri'i(e si (rans'ise. A(a( #e #ar(ea %e (rans'ise ,T8. ca( si #e cea %e rece#(ie ,R8. e)is(a ca(e un re:is(ru %e (i# FIFO ,&irs( in &irs( $u(. s(ruc(ura( #e ca(e (rei nivele. La(i'ea aces($r nivele #$a(e &i %e la 1 la ? 7=(es5 in &unc(ie %e cu' se se(ea*a #a=l$a%0ul. Sa lua' %e e)e'#lu R8 FIFO si sa c$nsi%era' ca in '$%ul %e c$'unicare in(re %$ua (ransceivere %e (i# NRF !L"1 %a(ele au &$s( se(a(e sa ai7a $ la(i'e %e @ 7=(es . E'i(a($rul ,T8. (ri'(e #ri'ul #a=l$a% aces(a es(e #ri'i( %e ca(re rece#($r ,R8. si s($ca( in #ri'ul nivel al R8 FIFO al aces(uia. In aces( '$'en( 'ai sun( li7ere inca %$ua nivele. Rece#($rul #$a(e &i se(a( sa ci(easca #ri'ul #a=l$a% sau 'ai #$a(e as(e#a(a #ana R8 FIFO se u'#le ,inca %$ua #a=l$a%0uri. si %e a7ia %u#a aceea sa ci(easca succesiv %a(ele #ri'i(e. R;R8;PAALOAD se u(ili*a*a #en(ru a ci(ii %a(ele #ri'i(e. Du#a cu' a' va*u( a(unci can% (ranscieverul es(e in '$%ul R8 #inul CE es(e se(a( HI9H. Du#a ce a' #ri'i( 'a)i'u' ? #a=l$a%0uri ,R8 FIFO es(e #lin. si 'ini' 15 CE se se(a*a LO2 si se (rece la e)ecu(area ur'a($rului al:$ri(': 1. Se (ri'i(e #rin SPI "7"11""""1> . Desi nu ne in(eresea*a ci(i' ce ne (ri'i(e NRF0ul> ?. Se (ri'i(e un 7=(e $arecare #rin SPI NRF0ului iar ceea ce ci(i' ina#$i es(e %e &a#( 7=(e0ul *er$ al #a=l$a%0ului. Se c$n(inua (ri'i(erea si ci(irea %e 7=(es #ana can% a &$s( a(insa la(i'ea la care a &$s( se(a( #a=l$a%0ul. 2;T8;PAALOAD se u(ili*ea*a #en(ru a scrie %a(ele in T8 FIFO5 a%ica %a(ele care v$r &i (rans'ise. In '$%ul T8 #inul CE es(e se(a( LO2. Se e)ecu(a ur'a($rul al:$ri(': 1. Se (ri'i(e #rin SPI "71"1"""""> . Desi nu ne in(eresea*a ci(i' ceea ce ne (ri'i(e NRF0ul> ?. Se incarca nivelele sau 5 %aca se %$res(e5 %$ar #ri'ul nivel al T8 FIFO cu un nu'ar %e 7=(es e:al cu la(i'ea #a=l$a%0ului. Aces( lucru se &ace (ri'i(an% succesiv #rin SPI nu'arul %$ri( %e 7=(es avan% :riBa sa ci(i' in acelasi (i'# ceea ce ne (ri'i(e (ranceiver0ul. !. Du#a ce au &$s( incarca(e %a(ele CE se se(ea*a HI9H #en(ru $ #eri$%a %e 'ini' 1" uS.

FLUSH;T8 si FLUSH;R8 sun( &$l$si(e #en(ru a s(er:e %a(ele e)is(en(e in R8 si T8 FIFO. REUSE;T8;PL se u(ili*ea*a #en(ru a (rans'i(e in '$% incarca(e in T8 FIFO. c$ns(an( aceleasi %a(e

NOP %u#a cu' ii *ice si nu'ele nu e)ecu(a ni'ic si es(e &$l$si( #en(ru a ci(ii s(area re:is(ril$r5 %e e)e'#lu re:is(rul STATUS. 1. DESCRIEREA RE9ISTRILOR INTERNI 00h . REGISTRUL CONFIG

CIT" + PRIM;R8 se(ea*a '$%ul %e $#erare : 1 - R8 5 "-T8> CIT1 + P2R;UP #$rnes(e sau $#res(e (ransciever0ul 1-ON5 "-OFF> CIT + CRCO '$%ul %e c$%are a CRC0ului 1 - 7=(es5 " - 17=(e> CIT? + EN;CRC se(ea*a %aca CRC0ul es(e ac(iv sau nu> CIT! + MAS/;MA8;RT se(ea*a %aca se u(ili*ea*a ca in(reru#ere %e#asirea nu'arului 'a)i' %e re(rans'i(eri a %a(el$r 1-se u(ili*ea*a si se :enerea*a $ in(reru#ere #e #inul IR35 " - nu se u(ili*ea*a. CIT@ + MAS/;T8;DS se(ea*a %aca se u(ili*ea*a ca in(reru#ere (ri'i(erea cu succes a unui #ac6e( 1 - se :enerea*a $ in(reru#ere #e #inul IR35 " - nu se u(ili*ea*a>

CITD + MAS/;R8;DR se(ea*a %aca se u(ili*ea*a ca in(reru#ere #ri'irea cu succes a unui #ac6e( 1 - se :enerea*a $ in(reru#ere #e #inul IR35 " - nu se u(ili*ea*a> CITE + NU SE UTILIZEAZA 01h . REGISTRUL EN_AA (ENHANCED SHOCKBURST)

Inain(e %e a v$r7i %es#re aces( re:is(ru es(e necesar sa %iscu(a' #u(in %es#re c$nce#(ul <%a(a #i#e<. Sa %a' ur'a($rul e)e'#lu: Sa #resu#une' ca u(ili*a' ? (ranscievere ,T15 T 5 T? . as(&el: Pri'ul %in(re ele #ri'es(e %a(ele %e la celelal(e %$ua si in &unc(ie %e ceea ce #ri'es(e (ri'i(e %a(e cel$r %$ua (ranscievere ina#$i.

Fi:ura 1 : Da(a #i#es si a%resele Cu' &recven(a es(e &i)a cu' se #$a(e a&la cine a (ri'is #ri'ului (ransciever ,T1. %a(e F Si'#lu. Prin <%a(a #i#es<. Fiecare NRF !L"15 in '$%ul R85 %is#une D as(&el %e <%a(a #i#es<. In &unc(ie %e cu' se se(ea*a ,v$' ve%ea 'ai (ar*iu in care re:is(ru. #a=l$a%0ul es(e a(asa( uneia %in(re ele. De ase'enea (re7uie aleasa si $ a%resa unica #en(ru &iecare %a(a #i#e. Privin% <Fi:ura 1< $7serva' ca a(unci can% T1 c$'unica cu T %a(ele s$sesc la a%resa A1 iar can% c$'unica cu T? %a(ele s$sesc la a%resa A . Can% T1 (ri'i(e %a(e ca(re T a%resa sa T8 (re7uie sc6i'7a(a cu a%resa %e R8 a %a(a #i#e " a aces(uia a%ica A1 si cu A

can% (ri'i(e ca(re T . Revenin% la re:is(rul %e 'ai sus aces(a are r$lul %e a ac(iva <au($ acGnHle%:e'en(< #en(ru &iecare %a(a #i#e &$l$si(a. Au($ acGnHle%:e'en( insea'na au($c$n&ir'area #ri'irii sau (rans'i(erii cu succes a %a(el$r. 02h . REGISTRUL EN_RXADDR

Aces( re:is(ru are r$lul %e a ac(iva sau %e*ac(iva %a(a #i#es &$l$si(e. Revenin% la e)e'#lul %e 'ai sus #u(e' s#une ca a(unci ca %e$arece T1 c$'unica cu al(e %$ua (ranscievere a(unci sun( necesare %$ar %$ua %a(a #i#es5 care se ac(ivea*a scriin% <1< 7i(ului a&eren( aces(eia. 03h . REGISTRUL SETUP_AW

In aces( re:is(ru se(an% 7i(ii 1:" se &i)ea*a la(i'ea a%resei a(a( in '$%ul R8 ca( si in T8: I""I + nu se #$a(e ale:e> I"1I + la(i'ea es(e %e ? 7=(es> I1"I + la(i'ea es(e %e ! 7=(es> I11I + la(i'ea es(e %e @ 7=(es.

Es(e %e rec$'an%a( sa se alea:a $ la(i'e a a%resei %e @ 7=(es %e$rece e)is(a sanse 'ai 'ici %e in(er&eren(a cu al(e %is#$*i(ive care &unc(i$nea*a in 7an%a %e .! 96*.

04h . REGISTRUL SETUP_RETR

E)is(a sansa ca nu in($(%eauna %a(ele sa aBun:a <%in #ri'a< la rece#($r. Aces( re:is(ru se(ea*a in(ervalul %e (i'# la care se va &ace re(rans'isia si nu'arul %e re(rans'isii. Aces(a %in ur'a nu #$a(e &i 'ai 'are %e 1@. 0 h . REGISTRUL RF_CH

In aces( re:is(ru es(e se(a(a &recven(a %e $#erare a (ranscieverului u(ili*an% in aces( sc$# 7i(ii D:". Nu'arul $7(inu( c$'7inan% aces(i 7i(i re#re*in(a nu'arul canalului #e care $#erea*a (ranscieverul in(re &iecare canal e)is(an% un ecar( %e 1M6*. Se #$a(e %e%uce as(&el ca e)is(a 1 E %e canale &recven(a 'ini'a &iin% .! 96* iar cea 'a)i'a .@ E , .!J".1 E. 96*.

0!h . REGISTRUL RF_SETUP

In aces( re:is(ru se se(ea*a #u(erea (rans'isei RF;P2R ,7i(ii :1. si vi(ea*a %e (rans'isie RF;DR ,7i(ul ?.. 0"h . REGISTRUL STATUS

STATUS es(e unul %in(re cei 'ai i'#$r(an(i re:is(rii %e$arece c$n&era in&$r'a(ii %es#re s(area ac(uala a (ransciever0ului. Sa lua' #e ran% &iecare 7i(: CIT" + T8;FULL : se'nali*ea*a %aca 'ai sun( l$ca(ii li7ere in T8 FIFO. 1 - T8 FIFO es(e #lin> " - 'ai e)is(a l$ca(ii li7ere in T8 FIFO

CIT ?:1 + R8;P;NO : c$'7ina(ia %in(re aces(i 7i(i se'nali*ea*a la care %in cele D %a(a #i#e au &$s( #ri'i(e %a(e. Revenin% la e)'#lul cu cele ? (rancievere5 #en(ru a s(i %e la cine a #ri'i( T1 %a(e se veri&ica aces(i 7i(i. In ca*ul lui T si T? val$area aces($r 7i(i va &i I"""I a(unci can% se #ri'es(e ceva %e$arece se u(ili*ea*a nu'ai %a(a #i#e " CIT ! + MA8;RT : &la: %e in(reru#ere a(unci can% nu'arul 'a)i' %e re(rans'isii a &$s( a(ins. Ca $ ciu%a(enie5 #en(ru a s(er:e aces( &la: (re7uie scris 7i(ul ($( cu val$area 1. CIT@ + T8;DS : &la: %e in(reru#ere care se'nali*ea*a %aca #ac6e(ul a &$s( (ri'is cu succes. Daca AUTO;AC/ es(e ac(iva( a(unci aces( 7i( va &i se(a( nu'ai %aca a &$s( &acu(a c$n&ir'area #ri'irii cu succes a #ac6e(ului. CITD + R8;DS : &la: %e in(reru#ere care se'nali*ea*a %aca #ac6e(ul a &$s( #ri'i( cu succes. 0#h . REGISTRUL OBSER$E_TX

CIT ?:" + ARC;CNT : nu'ara %e ca(e $ri au &$s( re(rans'ise #ac6e(ele #en(ru $ anu'i(a %a(a #i#e. Daca se (rans'i(e un #ac6e( n$u nu'ara($area se rese(ea*a. CIT E:! + PLOS;CNT : nu'ara %e ca(e $ri a &$s( a &$s( re(rans'is un #ac6e( #en(ru nu'arul 'a)i' %e re(rans'isii se(a( in re:is(rul SETUP;RETR #rin 7i(ii ?:" ,ARC.. De e)e'#lu %aca se se(ae*a ARC-1111 a%ica 'a)i'u' #$si7il ,1@. si %aca nu'arul %e re(rans'isii a %e#asi( aceas(a val$are a(unci PLOS;CNT se incre'en(ea*a cu J1. Nu'arul 'a)i' inre:is(ra( es(e 1@. Du#a aceas(a val$are nu se 'ai inrcre'en(e*a #ana la rese(.

Aces( re:is(ru are r$lul %e a ne aBu(a sa ne %a' sea'a %aca cali(a(ea se'nalului es(e 7una in *$na in care %$ri' sa lucra'. Daca se #ier% 'ul(e #ac6e(e a(unci &ie %is(an(a es(e #rea 'are &ie ar (re7ui sc6i'7a(a &recven(a in re:is(rul RF;CH. 0%h . REGISTRUL CD (&'(()*( +*,*&,)

Un sin:ur 7i( se &$l$ses(e in aces( re:is(ru : 7i(ul ". Ci(in% aces( 7i( se #$a(e veri&ica %aca cineva sau <ceva< (rans'i(e #e &recven(a NRF0ului. In re:is(rii 0Ah : 0Fh se se(ea*a a%resele %a(a #i#es u(ili*a(e. La(i'ea 'a)i'a a a%resei &iecarei %a(a #i#e es(e %e @ 7=(es5 aceas(a se(an%u0se in re:is(rul SETUP;A2. Pen(ru R8;ADDR;P" si R8;ADDR;P1 aceas(a a%resa #$a(e &i $rice c$'7ina(ie %e 'a)i' @ 7=(es. Pen(ru R8;ADDR;P 5 R8;ADDR;P?5 R8;ADDR;P! si R8;ADDR;P@ #ri'ii ! 7=(es sun( i%en(ici cu cei ai R8;ADDR;P1 iar ul(i'ul 7=(e se incre'en(ea*a cu J1 asa cu' es(e ara(a( in (a7el.

Revenin% la e)e'#lul cu cele ? (ranscievere ,T15 T 5 T?. in aces(i re:is(rii se v$r se(a ur'a($arele a%rese: #en(ru T1 a%resa R8;ADDR;P" - A1 > R8;ADDR;P1-A > #en(ru T a%resa R8;ADDR;P" es(e A1> #en(ru T? a%resa R8;ADDR;P" es(e A 5 un%e A15 A 5 A? sun( a%rese cu $ la(i'e %e la 1 la @ 7=(es. 10h . REGISTRUL TX_ADDR In aces( re:is(ru es(e se(a(a a%resa %e (rans'ise a (ransciever0ului. La(i'ea aces(eia &iin% se(a(a in re:is(rul SETUP;A2.

Pen(ru cele (rei (ranscievere aceas(a a%resa se se(ea*a in '$%ul ur'a($r: #en(ru T1 %aca c$'unica cu T T8;ADDR-A1 iar %aca c$'unica cu T? es(e e:ala cu A > #en(ru T T8;ADDR-A1> #en(ru T? T8;ADDR-A 5 un%e A15 A 5 A? sun( a%rese cu $ la(i'e %e la 1 la @ 7=(es. In re:is(rii 011h - 01!h se se(ea*a la(i'ea #a=l$a%0ului #en(ru &iecare %a(a #i#e:

Pen(ru a u(ili*a #a=l$a%0ul (re7uie sea(a(a 'acar $ la(i'e %e 1 7=(e. A#elan% %in n$u la e)e'#lul cu cele ? (ranscievere si #resu#unan% ca T1 sc6i'7a cu T %a(e care au la(i'ea %e 7=(es si cu T? %e @ 7=(es se #$( &ace se(arile: #en(ru T1: R8;P2;P" - """"1"5 R8;P2;P1 - """1"1> #en(ru T : R8;P2;P" - """"1" > #en(ru T?: R8;P2;P" - """1"1 . 1"h . REGISTRUL FIFO_STATUS

Aces( re:is(ru $&era in&$r'a(iile necesare #en(ru a&larea s(arii cel$r %$i re:is(rii: R8;FIFO si T8;FIFO.

You might also like