3 EL TRANSCEPTOR NRF24L01+ - Universidad de...

8
23 3 EL TRANSCEPTOR NRF24L01+ El NRF24L01+, de la empresa Nordic Semiconductor, es un transceptor de radio"frecuencia que trabaja a un máximo de 2Mbps. Su diseño altamente integrado, de muy bajo consumo y bajo coste, ha sido decisivo para su elección en este proyecto. Además, este pequeño 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 Fotografía de la placa del NRF24L01+. Con una corriente máxima, en los picos de Transmisión/Recepción, inferior a 14mA, modo “Stand"By”, administración avanzada de potencia y rango de alimentación entre 1,9 y 3,6V, el NRF24L01+ es capaz de funcionar durante meses o incluso años alimentado con pilas de botón o de tipo AA/AAA, algo que nos viene muy bien teniendo en cuenta el uso que vamos a darle en este proyecto. Además, el NRF incluye un protocolo hardware que se encarga del manejo de las tramas que se envían y se reciben por radio frecuencia, haciéndonos la vida más fácil a la hora de tener que retrasmitir tramas por culpa de errores o interferencias, así como del uso de códigos de redundancia cíclicos (CRC), resultando una comunicación por enlace de radio muy robusta, a prueba de fallos. 3.1 Características del NRF24L01+ Transceptor de radio-frecuencia de un solo chip, de bajo coste y que funciona a 2,4GHz con modulación 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 energía ultra-bajo, proporcionando meses de vida con batería. Compatible con toda la serie NRF24L en los modos de 1Mbps y 2Mbps.

Transcript of 3 EL TRANSCEPTOR NRF24L01+ - Universidad de...

Page 1: 3 EL TRANSCEPTOR NRF24L01+ - Universidad de Sevillabibing.us.es/proyectos/abreproy/12159/fichero/3.pdf · 23!! 3 EL TRANSCEPTOR NRF24L01+ El#NRF24L01+,#de#la#empresa#Nordic#Semiconductor,#es#un#transceptor#de#radio"frecuencia)que)trabaja)a)un#

!

!

23!

!

3 EL TRANSCEPTOR NRF24L01+ !

El#NRF24L01+,#de#la#empresa#Nordic#Semiconductor,#es#un#transceptor#de#radio"frecuencia)que)trabaja)a)un#máximo&de&2Mbps.'Su'diseño'altamente'integrado,'de'muy'bajo'consumo'y'bajo'coste,!ha#sido#decisivo#para#su#elección#en#este#proyecto.#Además,$este$pequeño$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!–!Fotografía!de#la#placa#del#NRF24L01+.!

!

!

Con$ una$ corriente$ máxima,$ en$ los$ picos$ de$ Transmisión/Recepción,$ inferior$ a$ 14mA,$ modo$ “Stand"By”,%administración+avanzada+de+potencia+y+ rango+de+alimentación+ entre+ 1,9+y+ 3,6V,+ el+NRF24L01++ es+ capaz+de+funcionar)durante)meses)o)incluso)años)alimentado%con%pilas%de%botón%o%de%tipo%AA/AAA,%algo%que%nos%viene%muy$bien$teniendo$en$cuenta$el$uso$que$vamos$a$darle$en$este$proyecto.!

!

Además,(el(NRF(incluye(un(protocolo(hardware(que(se(encarga(del(manejo(de(las(tramas(que(se(envían(y(se(reciben'por'radio'frecuencia,)haciéndonos)la)vida)más)fácil)a)la)hora)de)tener)que)retrasmitir)tramas)por)culpa)de# errores# o# interferencias,# así# como# del# uso# de# códigos# de# redundancia# cíclicos# (CRC),# resultando# una#comunicación)por)enlace)de)radio)muy)robusta,)a)prueba)de)fallos.!

!

3.1 Características del NRF24L01+ !

• Transceptor de radio-frecuencia de un solo chip, de bajo coste y que funciona a 2,4GHz con modulación 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 energía ultra-bajo, proporcionando meses de vida con batería.

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

!

!

Page 2: 3 EL TRANSCEPTOR NRF24L01+ - Universidad de Sevillabibing.us.es/proyectos/abreproy/12159/fichero/3.pdf · 23!! 3 EL TRANSCEPTOR NRF24L01+ El#NRF24L01+,#de#la#empresa#Nordic#Semiconductor,#es#un#transceptor#de#radio"frecuencia)que)trabaja)a)un#

!! ! ! !

El!transceptor!NRF24L01+!

!

24!

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

• Ensamblaje automático de paquetes (preámbulo, dirección y CRC).

• Detección y validación automáticas del paquete recibido.

• Longitud de paquete dinámica (entre 1 y 32 bytes).

• ACK (confirmación de llegada) automático.

• Retransmisión automática.

• 6 “tuberías” o pipes para la recepción de datos.

!

!

3.2 Pinout del NRF24L01+ !

En#la#siguiente#imagen#se#observa#un#dibujo#esquemático#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%alimentación:"GND$y$VCC. !!3.! Pin#de#Chip%Enable!(CE)%sirve%para%activar%y%desactivar%la%comunicación&SPI&con&el&dispositivo. !!4.! Pin#CSN#se#utiliza#durante#la#comunicación#SPI,#indicando#cuándo#se#transmiten/reciben#datos. !!5.! Pin#SCK#es#el#del#reloj,#haciendo#que#en#cada#conmutación#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&también&podemos#saber#si#ha#llegado#un#dato#leyendo#el#registro#STATUS.

Page 3: 3 EL TRANSCEPTOR NRF24L01+ - Universidad de Sevillabibing.us.es/proyectos/abreproy/12159/fichero/3.pdf · 23!! 3 EL TRANSCEPTOR NRF24L01+ El#NRF24L01+,#de#la#empresa#Nordic#Semiconductor,#es#un#transceptor#de#radio"frecuencia)que)trabaja)a)un#

!!

!

!

25!Diseño!y!Realización!de!un!Sistema!de!Procesamiento!de!Audio!con!Control!Inalámbrico!!

3.3 Comunicación SPI

La# comunicación# 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"estándar"de"comunicaciones!usado&principalmente&para&la&transferencia%de%información%entre%equipos%electrónicos.%Con%él%es%posible%controlar%casi%cualquier%dispositivo%electrónico%digital%que%acepte%un#flujo#de#bits#serie#regulado#por#un#reloj.!

!

El#SPI#es#un#protocolo#síncrono.#La#sincronización#y#la#transmisión#de#datos"se"realiza"por"medio"de"4!señales:!

!

• SCLK!(Clock):"Es"el"pulso"que"marca"la"sincronización."Con"cada"pulso"de"este"reloj,"se"lee"o"se"envía"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): Línea para que el equipo maestro le comunique al esclavo que comienza la comunicación.

!

La#ventaja#de#un#bus#serie#como#el#SPI#es#que#se#minimiza#el#número#de#pines,#pistas#y,#por#consiguiente,#el#tamaño&del&circuito&integrado.&Esto&reduce&el&coste&de&su&fabricación&y&montaje.!

!

Los$ buses$ series$ dan$mucha$ flexibilidad$ a$ la$ hora$ de$ conectar% diferentes% periféricos,% ya% que% casi% todos% los%dispositivos(digitales(pueden(ser(controlados(por(esta(combinación(de(señales((CLK,(MISO,(MOSI,(CS).!

A"continuación"se"muestra"el"funcionamiento"de"la"lectura"y"escritura"de"datos"en"el"NRF24L01+:!

!

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

!

Page 4: 3 EL TRANSCEPTOR NRF24L01+ - Universidad de Sevillabibing.us.es/proyectos/abreproy/12159/fichero/3.pdf · 23!! 3 EL TRANSCEPTOR NRF24L01+ El#NRF24L01+,#de#la#empresa#Nordic#Semiconductor,#es#un#transceptor#de#radio"frecuencia)que)trabaja)a)un#

!! ! ! !

El!transceptor!NRF24L01+!

!

26!

!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&comunicación&con&él.!

!

3.4 Registros de configuración !

Los$registros$más$utilizados$en$la$configuración$del$NRF$son$el$registro$de$configuración$(CONFIG)$y$el$de$estado&(STATUS).&A&continuación&se&muestran&sus&bits&con&sus&correspondientes&funciones:!

!

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

!

Page 5: 3 EL TRANSCEPTOR NRF24L01+ - Universidad de Sevillabibing.us.es/proyectos/abreproy/12159/fichero/3.pdf · 23!! 3 EL TRANSCEPTOR NRF24L01+ El#NRF24L01+,#de#la#empresa#Nordic#Semiconductor,#es#un#transceptor#de#radio"frecuencia)que)trabaja)a)un#

!!

!

!

27!Diseño!y!Realización!de!un!Sistema!de!Procesamiento!de!Audio!con!Control!Inalámbrico!!

!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$dirección$de$escritura.$$El# comando# de# escritura& en& un& registro& cualquiera& es& el& valor& 0x20& en& hexadecimal,& llamado&NRF_CMD_WREG+en+el+código,+y+el+comando+de+lectura+es"el"valor"0x00"o"NRF_CMD_RREG."Para$“activar”$dicho&comando,&lo&que&se&hace&es&usar&la&función&de&envío&de&bytes&a&través&de&SPI,&enviando(el(byte(resultante(de#hacer#un#“OR”#lógico#entre#el#comando#de#“escritura)en)un)registro”!(o#de#lectura,#si#lo#que#se#quiere#es#leer#dicho&registro),&y&el&número&correspondiente)a)la)dirección)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 envía por SPI el byte resultante de hacer un “OR” lógico entre el comando NRF_CMD_WREG y la dirección del registro CONFIG que es la 0x00.

3. Se envía por SPI el byte correspondiente a la configuración 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* común* apagar* el* mismo* para* después*encenderlo(en(el(modo(deseado.(Para(ello,(utilizando(la(misma(función(de(escribir(en(un(registro,( lo(que(se(hace%es%mandar%el%byte%0x80!al#registro#CONFIG.!

Page 6: 3 EL TRANSCEPTOR NRF24L01+ - Universidad de Sevillabibing.us.es/proyectos/abreproy/12159/fichero/3.pdf · 23!! 3 EL TRANSCEPTOR NRF24L01+ El#NRF24L01+,#de#la#empresa#Nordic#Semiconductor,#es#un#transceptor#de#radio"frecuencia)que)trabaja)a)un#

!! ! ! !

El!transceptor!NRF24L01+!

!

28!

!

Figura'3.8!(Izq.)'–!Diagrama'de'flujo''del'procedimiento'de'configuración+del+modo+RX.!

Figura'3.9!(Der.)'–!Diagrama'de'flujo''del'procedimiento'de'configuración'del'modo'TX.!

!

!

En#el#caso#de#que#queramos#usar!el#NRF#en#modo#receptor,#también#hay#que#configurar#el#tamaño#de#la#trama#que$ se$ va$ a$ recibir.$ Para$ ello$ volvemos$ a$ hacer$ uso$ de$ la$ función$ de$ escritura$ en$ un$ registro,$ esta$ vez,$escribiendo*el*byte*TAM_PAYLOAD,*o*tamaño*del*dato*en*bytes,*en*el*registro*RX_PW_P0,(cuya(dirección(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"“tuberías”,"de"recepción"de"bytes"de" los"que"dispone"el"NRF24L01+."Se"puede"elegir&el&número&de"bytes"de!recepción,!entre%1%y%32%bytes.%En%nuestro%caso,%para%la%recepción%del%dato%del%botón%pulsado,)o)para)el)número)de)efecto)seleccionado)en)el)DSP,)sólo)nos)hace)falta)transmitir)un)byte.)Es)por)ello)que$aquí$escribimos$un$1$en$el$registro$RX_PW_P0."Además,"como"no"se"utilizan"más"pipes,"los"demás"se"dejan"sin$configurar,$ya$que$por$defecto$el$valor$que$tienen$es$0x00$(pipe!no#utilizado).#!

!

3.6 Envío 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#ocasión,#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% continuación,% se% le%manda% el% byte% con% el% dato% que% se%quiere&transmitir&por&radio.!

!

A"continuación"se"muestra"un"diagrama"de"flujo"del"funcionamiento"del"procedimiento"de"envío"de"un"dato"por$radio"frecuencia:!

Page 7: 3 EL TRANSCEPTOR NRF24L01+ - Universidad de Sevillabibing.us.es/proyectos/abreproy/12159/fichero/3.pdf · 23!! 3 EL TRANSCEPTOR NRF24L01+ El#NRF24L01+,#de#la#empresa#Nordic#Semiconductor,#es#un#transceptor#de#radio"frecuencia)que)trabaja)a)un#

!!

!

!

29!Diseño!y!Realización!de!un!Sistema!de!Procesamiento!de!Audio!con!Control!Inalámbrico!!

!Figura'3.10!–!Diagrama'de'flujo'de'la'operación'de'envío'de'un'dato'por'radio.!

!

3.7 Recepción de un dato !

Para$la$recepción$de$un$dato$por$radio"frecuencia,*el*procedimiento*es*similar,*salvo*por*el*hecho*de*que*hay*que$estar$comprobando#periódicamente#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#operación”!NRF_CMD_NOP,+ó"0xFF."Tras"recibir"por"SPI"el"valor"del"registro$STATUS,$comprobamos$su$bit$número$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 operación”, citado anteriormente: NRF_CMD_NOP, ó 0xFF.

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

5. Cuando no queden más bytes por recibir, volver a poner el pin de CS a nivel alto.

!

Para$terminar$con$la$operación$de$lectura,$se$debe$bajar$la$bandera$que$nos$informó$de$que$se$había$recibido$un#dato#por#radio"frecuencia.!Para$hacerlo,$simplemente$escribimos$un$1$en$el$bit$6$del$registro$STATUS.$De$otra%forma,%si%no%bajáramos%dicha%bandera,%estaríamos%siempre%entrando%en%la%función%de%lectura.!

!

Page 8: 3 EL TRANSCEPTOR NRF24L01+ - Universidad de Sevillabibing.us.es/proyectos/abreproy/12159/fichero/3.pdf · 23!! 3 EL TRANSCEPTOR NRF24L01+ El#NRF24L01+,#de#la#empresa#Nordic#Semiconductor,#es#un#transceptor#de#radio"frecuencia)que)trabaja)a)un#

!! ! ! !

El!transceptor!NRF24L01+!

!

30!

A"continuación"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'operación'de'lectura'de'un'dato'recibido'por'radio.!

!