Está en la página 1de 8

!

3 EL TRANSCEPTOR NRF24L01+
!
El#NRF24L01+,#de#la#empresa#Nordic#Semiconductor,#es#un#transceptor#de#radio"frecuencia)que)trabaja)a)un#
mximo&de&2Mbps.'Su'diseo'altamente'integrado,'de'muy'bajo'consumo'y'bajo'coste,!ha#sido#decisivo#para#
su#eleccin#en#este#proyecto.#Adems,$este$pequeo$dispositivo$trabaja$en$la$banda$ISM$(Industrial,,Scientific,
and$Medical)!de#2,4GHz,#haciendo#que#no#sea#necesaria#ninguna#licencia#para#su#uso.!
!

!
Figura'3.1!!Fotografa!de#la#placa#del#NRF24L01+.!
!
!
Con$ una$ corriente$ mxima,$ en$ los$ picos$ de$ Transmisin/Recepcin,$ inferior$ a$ 14mA,$ modo$ Stand"By,%
administracin+ avanzada+ de+ potencia+ y+ rango+ de+ alimentacin+ entre+ 1,9+ y+ 3,6V,+ el+ NRF24L01++ es+ capaz+ de+
funcionar)durante)meses)o)incluso)aos)alimentado%con%pilas%de%botn%o%de%tipo%AA/AAA,%algo%que%nos%viene%
muy$bien$teniendo$en$cuenta$el$uso$que$vamos$a$darle$en$este$proyecto.!
!
Adems,(el(NRF(incluye(un(protocolo(hardware(que(se(encarga(del(manejo(de(las(tramas(que(se(envan(y(se(
reciben'por'radio'frecuencia,)hacindonos)la)vida)ms)fcil)a)la)hora)de)tener)que)retrasmitir)tramas)por)culpa)
de# errores# o# interferencias,# as# como# del# uso# de# cdigos# de# redundancia# cclicos# (CRC),# resultando# una#
comunicacin)por)enlace)de)radio)muy)robusta,)a)prueba)de)fallos.!
!

3.1 Caractersticas del NRF24L01+


!

Transceptor de radio-frecuencia de un solo chip, de bajo coste y que funciona a 2,4GHz con
modulacin GFSK y 126 canales disponibles.

Al operar en la banda ISM de 2,4GHz, no necesita licencia de uso.

Tasa de datos de 1Mbps y 2Mbps.

Acelerador por protocolo hardware de capa de enlace Enhanced ShockBurst.

Consumo de energa ultra-bajo, proporcionando meses de vida con batera.

Compatible con toda la serie NRF24L en los modos de 1Mbps y 2Mbps.

!
!
23!
!

!
!
24!

!
!
El!transceptor!NRF24L01+!

El# protocolo# de# capa# de# enlace& Enhanced& ShockBurst& nos& proporciona& las& siguientes& automatizaciones& y&
recursos:!

Ensamblaje automtico de paquetes (prembulo, direccin y CRC).

Deteccin y validacin automticas del paquete recibido.

Longitud de paquete dinmica (entre 1 y 32 bytes).

ACK (confirmacin de llegada) automtico.

Retransmisin automtica.

6 tuberas o pipes para la recepcin de datos.

!
!

3.2 Pinout del NRF24L01+


!
En#la#siguiente#imagen#se#observa#un#dibujo#esquemtico#de#los#pines#de#los#que#dispone#la#placa#del!NRF$
para$comunicarse+por+SPI+con+el+DSP+o+con+el+MSP:!
!

!
Figura'3.2!!Pinout!de#la#placa#del#NRF24L01+.
!
!!1"y"2.! Pines%de%alimentacin:"GND$y$VCC.
!!3.!

Pin#de#Chip%Enable!(CE)%sirve%para%activar%y%desactivar%la%comunicacin&SPI&con&el&dispositivo.

!!4.!

Pin#CSN#se#utiliza#durante#la#comunicacin#SPI,#indicando#cundo#se#transmiten/reciben#datos.

!!5.!

Pin#SCK#es#el#del#reloj,#haciendo#que#en#cada#conmutacin#de#nivel#bajo#a#nivel#alto#se#transmita#un#
bit$de$datos.

!!6"y"7.! Pines%MOSI%y%MISO%son%a%los%que%se%conectan%los%cables%por%donde%viajan%los%datos%de%entrada%y%
salida&del&NRF,&respectivamente.
!!8.!

Pin#IRQ#se#puede#configurar#para#que#nos#avise#cada#vez#que#se#recibe#un#dato#por#radio"frecuencia,*
aunque&tambin&podemos#saber#si#ha#llegado#un#dato#leyendo#el#registro#STATUS.

!!
!
Diseo!y!Realizacin!de!un!Sistema!de!Procesamiento!de!Audio!con!Control!Inalmbrico!
!

25!

3.3 Comunicacin SPI


La# comunicacin# entre# el# DSP# o# el# MSP430# y# el# NRF24L01+# se# realiza# mediante# el# protocolo# SPI# (Serial'
Peripheral)Interface).#Este#protocolo#funciona#en#modo#Maestro"Esclavo!(Master"Slave),"como"se"observa"en"la"
siguiente(figura:!
!

!
Figura'3.3!!Esquema(del(funcionamiento(Maestro"Esclavo.!
!
!
El#protocolo'SPI!es"un"estndar"de"comunicaciones!usado&principalmente&para&la&transferencia%de%informacin%
entre%equipos%electrnicos.%Con%l%es%posible%controlar%casi%cualquier%dispositivo%electrnico%digital%que%acepte%
un#flujo#de#bits#serie#regulado#por#un#reloj.!
!
El#SPI#es#un#protocolo#sncrono.#La#sincronizacin#y#la#transmisin#de#datos"se"realiza"por"medio"de"4!seales:!
!

SCLK!(Clock):"Es"el"pulso"que"marca"la"sincronizacin."Con"cada"pulso"de"este"reloj,"se"lee"o"se"enva"
un#bit.!
MOSI!(Master'Output'Slave'Input):"Salida"de"datos"del"dispositivo"maestro"(Master)"y"entrada"de"datos"
al#equipo%esclavo%(Slave).!
MISO!(Master'Input'Slave'Output):"Salida"de"datos"del"dispositivo"esclavo"(Slave)"y"entrada"al"equipo"
maestro((Master).!
SS/CS (Slave Select/Chip Select): Lnea para que el equipo maestro le comunique al esclavo que
comienza la comunicacin.

!
La#ventaja#de#un#bus#serie#como#el#SPI#es#que#se#minimiza#el#nmero#de#pines,#pistas#y,#por#consiguiente,#el#
tamao&del&circuito&integrado.&Esto&reduce&el&coste&de&su&fabricacin&y&montaje.!
!
Los$ buses$ series$ dan$ mucha$ flexibilidad$ a$ la$ hora$ de$ conectar% diferentes% perifricos,% ya% que% casi% todos% los%
dispositivos(digitales(pueden(ser(controlados(por(esta(combinacin(de(seales((CLK,(MISO,(MOSI,(CS).!
A"continuacin"se"muestra"el"funcionamiento"de"la"lectura"y"escritura"de"datos"en"el"NRF24L01+:!
!

!
Figura"3.4!!Diagrama'de'la'lectura(de(datos.!
!

!
!
26!

!
!
El!transceptor!NRF24L01+!

!
Figura'3.5!!Diagrama'de'la'escritura)de)datos.!
!
Siendo'Cn!bits%de%comandos%de%SPI,%Sn!bits%del%registro%STATUS%y%Dn!bits%de%datos.!Se#observa#que#el#NRF#
devuelve&el&valor&del&registro&STATUS&al&comenzar&cualquier&comunicacin&con&l.!
!

3.4 Registros de configuracin


!
Los$registros$ms$utilizados$en$la$configuracin$del$NRF$son$el$registro$de$configuracin$(CONFIG)$y$el$de$
estado&(STATUS).&A&continuacin&se&muestran&sus&bits&con&sus&correspondientes&funciones:!
!

!
Figura'3.6!!Tabla%con%los%bits%del%registro%CONFIG.!
!

!!
!
Diseo!y!Realizacin!de!un!Sistema!de!Procesamiento!de!Audio!con!Control!Inalmbrico!
!

27!

!
Figura'3.7!!Tabla%con%los%bits%del%registro%STATUS.!
!

3.5 Modos de funcionamiento


!
El# transceptor# NRF24L01+# tiene# dos# modos# de# funcionamiento,# cuando# no# est# apagado# o# en# Stand"By:"
transmisor)y)receptor.)Para)seleccionar)cada)uno)de)ellos,)se)requiere)de)una)escritura)en)el"registro"CONFIG,"
concretamente)en)el)bit)0.!Se#escribir#un#1#si#se#quiere#activar#el#modo#de#RX##un#0#si#se#desea#el#modo#TX.!
!
Para$escribir$en$un$registro$determinado,$el$NRF$nos$proporciona$un$comando$y$una$direccin$de$escritura.$$
El# comando# de# escritura& en& un& registro& cualquiera& es& el& valor& 0x20& en& hexadecimal,& llamado&
NRF_CMD_WREG+en+el+cdigo,+y+el+comando+de+lectura+es"el"valor"0x00"o"NRF_CMD_RREG."Para$activar$
dicho&comando,&lo&que&se&hace&es&usar&la&funcin&de&envo&de&bytes&a&travs&de&SPI,&enviando(el(byte(resultante(
de#hacer#un#OR#lgico#entre#el#comando#de#escritura)en)un)registro!(o#de#lectura,#si#lo#que#se#quiere#es#leer#
dicho&registro),&y&el&nmero&correspondiente)a)la)direccin)del)registro)deseado.!
!
En#el#caso#de#querer#activar#el!modo$TX$o$RX$del$NRF,$lo$que$se$hace$es$lo$siguiente:!
1.

Se activa el pin de CS a nivel bajo.

2.

Se enva por SPI el byte resultante de hacer un OR lgico entre el comando NRF_CMD_WREG y la
direccin del registro CONFIG que es la 0x00.

3.

Se enva por SPI el byte correspondiente a la configuracin que deseamos: 0x0A si queremos activar el
NRF en modo transmisor, 0x0B si lo que queremos es que ste funcione como receptor.

4.

Volvemos a poner a nivel alto el pin de CS.

!
Antes& de& configurar& el& NRF& en& modo& receptor& o& transmisor,* es* comn* apagar* el* mismo* para* despus*
encenderlo(en(el(modo(deseado.(Para(ello,(utilizando(la(misma(funcin(de(escribir(en(un(registro,(lo(que(se(
hace%es%mandar%el%byte%0x80!al#registro#CONFIG.!

!
!
28!

!
!
El!transceptor!NRF24L01+!

!
Figura'3.8!(Izq.)'!Diagrama'de'flujo''del'procedimiento'de'configuracin+del+modo+RX.!
Figura'3.9!(Der.)'!Diagrama'de'flujo''del'procedimiento'de'configuracin'del'modo'TX.!
!
!
En#el#caso#de#que#queramos#usar!el#NRF#en#modo#receptor,#tambin#hay#que#configurar#el#tamao#de#la#trama#
que$ se$ va$ a$ recibir.$ Para$ ello$ volvemos$ a$ hacer$ uso$ de$ la$ funcin$ de$ escritura$ en$ un$ registro,$ esta$ vez,$
escribiendo*el*byte*TAM_PAYLOAD,*o*tamao*del*dato*en*bytes,*en*el*registro*RX_PW_P0,(cuya(direccin(es(
la#0x11.!
!
Estos%registros%(RX_PW_P0,%RX_PW_P1,%RX_PW_P2,%RX_PW_P3,%RX_PW_P4%y%RX_PW_P5),%definen%el%uso%
que$ se$ hace$ de$ los$ 6$ pipes," o" tuberas," de" recepcin" de" bytes" de" los" que" dispone" el" NRF24L01+." Se" puede"
elegir&el&nmero&de"bytes"de!recepcin,!entre%1%y%32%bytes.%En%nuestro%caso,%para%la%recepcin%del%dato%del%botn%
pulsado,)o)para)el)nmero)de)efecto)seleccionado)en)el)DSP,)slo)nos)hace)falta)transmitir)un)byte.)Es)por)ello)
que$aqu$escribimos$un$1$en$el$registro$RX_PW_P0."Adems,"como"no"se"utilizan"ms"pipes,"los"dems"se"dejan"
sin$configurar,$ya$que$por$defecto$el$valor$que$tienen$es$0x00$(pipe!no#utilizado).#!
!

3.6 Envo de un dato


!
Cuando'se'desea'transmitir'un'dato'por'radio"frecuencia,*lo*que*se*hace*es*parecido*a*la*escritura&de&un&byte&
en#un#registro,#tal#como#hemos#visto#hace#un#momento.#En#esta#ocasin,#y#tras#haber#configurado#el#NRF#en#
modo$transmisor,$en$lugar$de$indicar$un$registro$donde$escribir,$el$byte$que$se$le$manda$al$NRF$por$SPI$es$el$
comando' W_TX_PAYLOAD,' cuyo% valor% es% 0xA0.% A% continuacin,% se% le% manda% el% byte% con% el% dato% que% se%
quiere&transmitir&por&radio.!
!
A"continuacin"se"muestra"un"diagrama"de"flujo"del"funcionamiento"del"procedimiento"de"envo"de"un"dato"
por$radio"frecuencia:!

!!
!
Diseo!y!Realizacin!de!un!Sistema!de!Procesamiento!de!Audio!con!Control!Inalmbrico!
!

29!

!
Figura'3.10!!Diagrama'de'flujo'de'la'operacin'de'envo'de'un'dato'por'radio.!
!

3.7 Recepcin de un dato


!
Para$la$recepcin$de$un$dato$por$radio"frecuencia,*el*procedimiento*es*similar,*salvo*por*el*hecho*de*que*hay*
que$ estar$ comprobando# peridicamente# el# registro# STATUS.# Para# ello,# y# gracias# a# que# el# NRF# siempre# nos#
devuelve&el&estado&de&dicho&registro&al&escribir&cualquier&byte&en&l,#se#le#manda#el#comando#de#no#operacin!
NRF_CMD_NOP,+"0xFF."Tras"recibir"por"SPI"el"valor"del"registro$STATUS,$comprobamos$su$bit$nmero$6."Si"
est%a%1!significa(que(se(ha(recibido(algo(por(radio,(as(que(procederemos(a(leer(qu(es(lo(que(nos(ha(llegado.!
!
Para$leer$el$dato$recibido$se$opera$de$la$siguiente$manera:!
!
1.

Poner el pin de CS a nivel bajo.

2.

Enviar por SPI el byte del comando de lectura del dato recibido: NRF_RX 0x61.

3.

Copiar, en una variable libre, el byte que se recibe del NRF cuando se le escribe el comando de no
operacin, citado anteriormente: NRF_CMD_NOP, 0xFF.

4.

Iterar el paso 3 tantas veces como bytes se esperen recibir.

5.

Cuando no queden ms bytes por recibir, volver a poner el pin de CS a nivel alto.

!
Para$terminar$con$la$operacin$de$lectura,$se$debe$bajar$la$bandera$que$nos$inform$de$que$se$haba$recibido$
un#dato#por#radio"frecuencia.!Para$hacerlo,$simplemente$escribimos$un$1$en$el$bit$6$del$registro$STATUS.$De$
otra%forma,%si%no%bajramos%dicha%bandera,%estaramos%siempre%entrando%en%la%funcin%de%lectura.!
!

!
!
30!

!
!
El!transceptor!NRF24L01+!

A"continuacin"se"muestra"un"diagrama"de"flujo"del"funcionamiento"del"procedimiento%de%lectura%de%un%dato%
que$se$ha$recibido$por$radio"frecuencia:!

!
Figura'3.11!!Diagrama'de'flujo'de'la'operacin'de'lectura'de'un'dato'recibido'por'radio.!
!

También podría gustarte