Vous êtes sur la page 1sur 23

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 1 de 23

MANUAL DE USUARIO DEL MDULO BZI-RF2GH4

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 2 de 23

Copyright (c) 2007 Bizintek Innova, S.L. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 3 de 23

ndice
ndice ................................................................................................................................ 3 1. Introduccin:................................................................................................................. 4 2. Especificaciones tcnicas ............................................................................................. 4 3. Descripcin general ...................................................................................................... 5 4. Librera para el mdulo BZI-RF2GH4 en ensamblador............................................... 6 Variables....................................................................................................................... 6 Funciones...................................................................................................................... 7 5. Ejemplos en ensamblador........................................................................................... 12 6. Librera para el mdulo BZI-RF2GH4 en C para CCS ............................................. 14 Variables..................................................................................................................... 14 Funciones.................................................................................................................... 14 7. Ejemplos en C para el compilador CCS ..................................................................... 19 8. Prcticas...................................................................................................................... 22 Programa 1.................................................................................................................. 22 Programa 2.................................................................................................................. 22 9. Regulador 3.3v (LE33CZ).......................................................................................... 22

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 4 de 23

1. Introduccin:
Este manual pretende ser una gua rpida para quienes se disponen a abordar una aplicacin haciendo uso del mdulo BZI-RF2GH4. En ella se irn exponiendo las caractersticas principales del dispositivo y se dar una orientacin acompaada de ejemplos prcticos para una mejor comprensin.

2. Especificaciones tcnicas
Parmetro Tensin mnima de alimentacin Tensin mxima de alimentacin Potencia mxima de salida Velocidad mxima de transmisin Corriente en modo transmisin @ 0dbm potencia de salida Corriente en modo recepcin @ 2000kbps Corriente en modo Power Down Frecuencia mxima del bus SPI Rango de temperatura Valor 1.9 3.6 0 2000 11.3 12.3 900 8 -40 a +85 Unidad V V dBm Kbps mA mA nA Mhz C

Tabla 1. Parmetros principales del mdulo BZI-RF2GH4

Pines Vcc Vss CE CSN SCK SDI SDO IRQ

N 1 2 3 4 5 6 7 8

Descripcin Tensin de alimentacin del mdulo GND Chip Enable Chip Select del SPI (Negado) Reloj del bus SPI Entrada de datos del bus SPI Salida de datos del bus SPI Salida interrupcin (negado)
Tabla 2. Pinout del mdulo BZI-RF2GH4

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 5 de 23

Fig. 1: Disposicin de componentes en la placa

3. Descripcin general
El mdulo de comunicacin por radiofrecuencia BZI-RF2GH4 est basado en el transceptor nRF24L01 fabricado por Nordic Semiconductors. En este circuito integrado se ha incorporado toda la lgica necesaria para establecer una comunicacin inalmbrica bidireccional con acuse de recibo. La comunicacin con el microcontrolador se realiza a travs de un bus SPI. Las principales caractersticas del mdulo BZI-RF2GH4 son: Bajo consumo. Frecuencia de trabajo de 2.4GHz, Potencia de emisin entre -18 y 0 dBm, Velocidad de transmisin entre 1 y 2 Mbps, 128 canales de transmisin seleccionables por el bus SPI,

El mdulo BZI-RF2GH4 incorpora, adems del CI nRF24L01, toda la electrnica anexa para su correcto funcionamiento y una antena microstrip en la misma placa con la red de adaptacin de impedancias. De esta manera el usuario se despreocupa por completo del hardware necesario para implementar la parte de radio de su aplicacin. Como interfaz dispone de cuatro pines accesibles para el bus SPI, dos pines ms para el control del mdulo y otros dos para la alimentacin. Con el objetivo de facilitar el manejo del mdulo se han desarrollado unas libreras que simplifican y acortan el tiempo de desarrollo de cualquier aplicacin inalmbrica con estos mdulos.

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 6 de 23

4. Librera para el mdulo BZI-RF2GH4 en ensamblador


Con esta librera es posible realizar fcilmente una comunicacin entre microcontroladores PIC16F87x i de Microchip Technology y el mdulo BZIRF2GH4. El conjunto de las funciones de la librera ocupan 530 palabras de memoria de programa, 25 bytes de memoria de datos. A su vez es importante tener en cuenta que para llamar a cualquier funcin de la librera son necesarios tres niveles de la pila libres y el watchdog desactivado. Dado que todas las funciones utilizan el protocolo SPI, es necesario habilitar el hardware del microcontrolador para este propsito. Para ello basta con aadir unas lneas de cdigo en la configuracin inicial del programa.

Variables
RF_STATUS Esta variable de solo lectura informa de la situacin de la comunicacin por el mdulo de radio. Bit7 Bit 7-4: Bit 3: Bit6 Bit5 Sin uso Bit4 Bit3 Bit2 RCVNW RCVOK Bit1 ACK Bit0 SNDOK

Sin uso RCVNW: Muestra si todava quedan datos por leer. 1 = Quedan tramas de datos por leer en la pila del mdulo de radio. 0 = Tras la ltima lectura, la pila de datos del mdulo qued vaca. No hay mensajes en espera. RCVOK: Informa que se han recibido datos correctamente y estn accesibles para ser tratados. 1 = Recepcin correcta. 0 = No se han recibido datos o la informacin recibida es corrupta. ACK: Muestra si se ha recibido el ACK (confirmacin) del receptor tras una transmisin. 1 = El receptor ha confirmado que ha recibido los datos correctamente.

Bit 2:

Bit 1:

Excepto el PIC16F870 y PIC16F871.


Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 7 de 23

0 = No se ha recibido la confirmacin del receptor. Puede ser causa de que no haya recibido la seal o de que tenga la pila llena y no pueda almacenar ms mensajes. Bit 0: SNDOK: Muestra si el ltimo envo de datos se ha realizado. 1 = El mdulo de radio ha enviado los datos. Este bit no indica que alguien lo haya escuchado. 0 = No ha sido posible enviar los datos. Puede ser debido a un fallo en la comunicacin con el mdulo de radio

RF_DATA_0, RF_DATA_1, RF_DATA_7 Este grupo de variables consta de 8 bytes. En cada transmisin se enva/recibe el contenido de los 8 bytes. RF_DIR Esta variable es de un solo byte. Indica el origen o destino del mensaje de 8 bytes de RF_DATA. En esta variable escribiremos la direccin del destinatario a la hora de realizar un envo. En el caso de la recepcin, en esta variable podremos ver la direccin de quien nos est enviando la informacin.

Funciones
La librera consta de nueve funciones que facilitarn bastante el trabajo a la hora de desarrollar una aplicacin de comunicacin con los mdulos BZI-RF2GH4. A continuacin se dar una breve descripcin de cada una de ellas. Funciones para el mdulo BZI-RF2GH4 Configura las entradas y salidas del microcontroladori as como RF_CONFIG parmetros del mdulo de radio. Configura las entradas y salidas del microcontrolador ii as RF_CONFIG_SPI como los parmetros necesarios para utilizar el bus SPI. Activa el mdulo de radiofrecuencia en modo escucha. RF_ON Desactiva el mdulo de radiofrecuencia y lo deja en modo de RF_OFF bajo consumo Enva una trama de datos (8 Bytes) a la direccin indicada. RF_SEND Comprueba si se ha producido una recepcin y de ser as, RF_RECEIVE recoge la trama. Realiza la misma funcin que RF_RECEIVE solo que por RF_RECEIVE_INT interrupcin.
i ii

El usuario puede cambiar estos pines modificando la parte de la librera donde se define el patillaje dem.
Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 8 de 23

RF_INT_EN

Esta rutina habilita en el microcontrolador la interrupcin externa para el mdulo de radio.


Tabla resumen de las funciones en ensamblador.

RF_CONFIG

Variables de entrada
RF_DIR RF_CHN Direccin del dispositivo. Debe ser un valor entre 0x01 y 0xFE. Canal a utilizar en la comunicacin. Debe ser un valor entre 0x00 y 0x7F (128 canales).

Esta funcin configura el transceptor habilitando su propia direccin de escucha y la direccin de broadcast. A su vez configura otros parmetros como pines del PIC, el canal, la velocidad de transmisin, la potencia de emisin, la longitud de la direccin, la longitud del cdigo CRC, etc. PIN RF
IRQ CSN CE

PIN PIC
RB0 RB7 RC2

Tabla 3. Configuracin mdulo RF puertos PIC

El canal debe ser comn a todos los mdulos que van a participar en la comunicacin. El usuario puede elegir cualquier canal de los 128 disponibles. Sin embargo, si en el entorno existe ms de una comunicacin entre mdulos en diferentes canales, hay que dejar un espaciamiento de 2 entre los canales a utilizar para evitar interferencias dejando as 32 canales tiles. Otra cuestin a tener en cuenta es la existencia de otras tecnologas que utilizan la banda ISM 2.4GHz (Wifi, Bluetooth,etc.) y que tambin pueden causar interferencias en alguno de los canales.

Fig. 2: Canales RF

La direccin que se asigna a cada dispositivo debe ser unvoca dentro de cada canal.

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 9 de 23

RF_CONFIG_SPI

La velocidad del SPI no debe superar los 8 Mhz por lo que la utilizacin de esta funcin queda limitada a microcontroladores PIC con una frecuencia menor de 32Mhz. En la funcin se configuran los diferentes parmetros del mdulo SPI y los pines del PIC. PIN RF
SCK SDI SDO

PIN PIC
RC3 RC4 RC5

Tabla 4. Configuracin SPI puertos PIC

RF_ON Esta rutina activa el mdulo de radio en modo escucha para poder recibir datos y/o realizar envos de datos. Es importante tener en cuenta que tras la llamada a esta rutina el mdulo necesita 2,5ms para estar listo. RF_OFF Esta rutina desactiva el mdulo de radio dejndolo en modo de bajo consumo. No borra la configuracin establecida. RF_SEND

Variables de entrada
RF_DIR RF_DATA_0 RF_DATA_7 Direccin a la que se quiere enviar los datos (1 byte). Variables que van a ser transmitidas (8 bytes).

Variables de salida
FLAGS: SNDOK y ACK

Esta funcin enva 8 Bytes de datos a la direccin indicada informando de la correcta recepcin en el destinatario. Tras su ejecucin el dispositivo volver al modo de escucha. RF_RECEIVE

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 10 de 23

Variables de salida
RF_DIR RF_DATA_0 RF_DATA_7 RCVOK y RCVNW Direccin de quien ha enviado la trama Trama recibida desde la direccin indicada.

Esta rutina se encarga de comprobar si se ha producido una recepcin y de ser as, devuelve los datos recibidos. Asimismo, informa si quedan datos sin leer en la FIFO de recepcin del mdulo. Cuando se reciba una trama se debe hacer una comprobacin del bit RCVNW de la variable RF_STATUS y si est activo se debe llamar a la funcin RF_RECEIVE de nuevo tras tratar los datos. El transceptor tiene una pila de tres niveles, por lo que si no se llama a la funcin recibir antes de que se llene la pila, el dispositivo no podr recibir ms datos. Al no utilizar interrupciones, la probabilidad de prdida de paquetes, con trfico elevado, es moderada. Es aconsejable utilizarla slo en entornos con pocos dispositivos y/o poco trfico de datos. Tambin se puede solucionar este problema haciendo que los emisores reenven la misma trama hasta que la comunicacin haya sido correcta, pero en entornos con mucho trfico las colisiones crecen exponencialmente aumentando considerablemente los tiempos de envo. RF_RECEIVE_INT

Variables de salida
RF_DIR RF_DATA_0 RF_DATA_7 RCVOK, RCVNW Direccin de quien ha enviado la trama Trama recibida desde la direccin indicada.

Es la rutina ptima de recepcin. Es una rutina prcticamente igual a RF_RECEIVE con la diferencia que esta funciona por interrupcin. Por ello debe ubicarse dentro del cdigo de la interrupcin y haber configurado las interrupciones anteriormente (RF_INTER_EN). Se encarga de comprobar si se ha producido una interrupcin externa (RB0) y si es as, limpia el flag de interrupcin. La probabilidad de prdida de paquetes es mnima. An as conviene que los emisores reenven si el flag de envo no se activa. RF_INT_EN Esta rutina se encarga de habilitar la interrupcin externa del microcontrolador (RB0) que utiliza el mdulo de RF en la recepcin de datos. Para ello se configura como entrada el pin RB0. Aunque se puede manejar el mdulo sin interrupciones no se garantiza el mnimo tiempo de respuesta.
Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 11 de 23

Diagrama de flujo para envo y recepcin de datos

IRQ=1

RF_RECEIVE

IRQ=0

RCVOK

Tratar datos

RCVNW

Salir recepcin

Diagrama 3. Recepcin sin interrupcin en ensamblador

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 12 de 23

5. Ejemplos en ensamblador
En este apartado se muestran fragmentos de cdigo a modo de ejemplo para orientar en la utilizacin de las funciones. ;--------[Rutina configuracin con interrupcin y activacin]-----;Habilitar interrupciones call RF_INT_EN ;Configurar mdulos SPI del PIC call RF_CONFIG_SPI ;Configurar mdulo RF (canal y direccin) movlw 0x01 ;Direccin propia movwf RF_DIR movlw movwf 0x40 RF_CHN ;Canal

call RF_CONFIG ;Activar el mdulo RF call RF_ON ;----------------------------------------------------------------------------;---------[Rutina configuracin sin interrupcin y activacin]-----;Configurar mdulos SPI del PIC call RF_CONFIG_SPI ;Configurar mdulo RF (canal y direccin) movlw 0x01 ;Direccin propia movwf RF_DIR movlw movwf 0x40 RF_CHN ;Canal

call RF_CONFIG ;Activar el mdulo RF call RF_ON ;----------------------------------------------------------------------------;----------------------[Rutina de envo de datos]----------------------;Preparacin de la direccin del receptor ;y de los datos. movlw 0x02 movwf RF_DIR ;Datos a enviar ;Direccin del receptor

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 13 de 23

clrf clrf clrf clrf clrf clrf clrf clrf

RF_DATA_0 RF_DATA_1 RF_DATA_2 RF_DATA_3 RF_DATA_4 RF_DATA_5 RF_DATA_6 RF_DATA_7

;Enviar trama call RF_SEND btfss RF_STATUS,SNDOK nop ;No enviado btfss RF_STATUS,ACK nop ;ACK no recibido ;----------------------------------------------------------------------------;--------- -[Rutina de recepcin de datos con interrupcin]--------LEER_MAS_DATOS call RF_RECEIVE_INT btfsc RF_STATUS,RCVOK ;Tratar datos nop btfsc RF_STATUS,RCVNW goto LEER_MAS_DATOS goto SALIR_INTERRUPCIONES ;-------------------------------------------------------------------------;----- Rutina de recepcin de datos sin interrupcin]------------RECIBIR call RF_RECEIVE btfsc RF_STATUS,RCVOK nop ;Tratar datos btfsc RF_STATUS,RCVNW goto RECIBIR goto PRINCIPAL ;---------------------------------------------------------------------------

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 14 de 23

6. Librera para el mdulo BZI-RF2GH4 en C para CCS


Con esta librera es posible realizar fcilmente una comunicacin entre microcontroladores PIC16F87x i de Microchip Technology y el BZI-RF2GH4. El conjunto de las funciones de la librera ocupan 1k palabras de memoria de programa, y 7 bytes de memoria de datos. A su vez es importante tener en cuenta que para llamar a cualquier funcin de la librera es necesario tener el watchdog desactivado. Dado que todas las funciones utilizan el protocolo SPI, es necesario habilitar el hardware del microcontrolador para este propsito. Para ello basta con aadir unas lneas de cdigo en la configuracin inicial del programa.

Variables
RF_DATA Es una variable de 8 bytes que es utilizada por la funcin de recepcin y transmisin. En ella estn los datos recibidos y transmitidos. RF_DIR Esta variable es de un solo byte. Indica el origen o destino del mensaje de 8 bytes de RF_DATA. En esta variable escribiremos la direccin del destinatario a la hora de realizar un envo. En el caso de la recepcin, en esta variable podremos ver la direccin de quien nos est enviando la informacin.

Funciones
Para manejar el paso de parmetros y el retorno de valores, se utilizan variables externas que hay que modificar antes o verificar despus de cada llamada. En cada funcin se expondr cules son y cmo actan. Funciones para el mdulo BZI-RF2GH4 Configura las entradas y salidas del void RF_CONFIG(int canal, int dir) microcontroladorii as como parmetros del mdulo de radio. Configura las entradas y salidas del microcontrolador i as como los parmetros void RF_CONFIG_SPI() necesarios para utilizar el bus SPI.
i ii

Excepto el PIC16F870 y PIC16F871. El usuario puede cambiar estos pines modificando la parte de la librera donde se define el patillaje
Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 15 de 23

void RF_ON() void RF_OFF() int RF_SEND() int RF_RECEIVE() void RF_INT_EN()

Activa el mdulo de radiofrecuencia en modo escucha. Desactiva el mdulo de radiofrecuencia y lo deja en modo de bajo consumo Enva una trama de datos (8 Bytes) a la direccin indicada. Comprueba si se ha producido una recepcin y de ser as, recoge la trama. Esta rutina habilita en el microcontrolador la interrupcin externa para el mdulo de radio.

Tabla resumen de las funciones en ensamblador.

void RF_CONFIG(int canal, int dir)

Variables de entrada
RF_DIR RF_CHN Direccin del dispositivo. Debe ser un valor entre 0x01 y 0xFE. Canal a utilizar en la comunicacin. Debe ser un valor entre 0x00 y 0x7F (128 canales).

Esta funcin configura el transceptor habilitando su propia direccin de escucha y la direccin de broadcast. A su vez configura otros parmetros como pines del PIC, el canal, la velocidad de transmisin, la potencia de emisin, la longitud de la direccin, la longitud del cdigo CRC, etc. PIN RF
IRQ CSN CE

PIN PIC
RB0 RB7 RC2

Tabla 5. Configuracin mdulo RF puertos PIC

El canal debe ser comn a todos los mdulos que van a participar en la comunicacin. El usuario puede elegir cualquier canal de los 128 disponibles. Sin embargo, si en el entorno existe ms de una comunicacin entre mdulos en diferentes canales, hay que dejar un espaciamiento de 2 entre los canales a utilizar para evitar interferencias dejando as 32 canales tiles. Otra cuestin a tener en cuenta es la existencia de otras tecnologas que utilizan la banda ISM 2.4GHz (Wifi, Bluetooth,etc.) y que tambin pueden causar interferencias en alguno de los canales.

dem.
Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 16 de 23

Imagen 1. Canales RF

Antes de llamar a esta funcin el mdulo SPI debe estar configurado. void RF_CONFIG_SPI() La velocidad del SPI no debe superar los 8 Mhz por lo que la utilizacin de esta funcin queda limitada a microcontroladores PIC con una frecuencia menor de 32Mhz. En la funcin se configura los diferentes parmetros del mdulo SPI, y los pines del PIC. PIN RF
SCK SDI SDO

PIN PIC
RC3 RC4 RC5

Tabla 6. Configuracin SPI puertos PIC

void RF_ON() Esta rutina activa el mdulo de radio en modo escucha para poder recibir datos y/o realizar envos de datos. Es importante tener en cuenta que tras la llamada a esta rutina el mdulo necesita 2,5ms para estar listo. void RF_OFF() Esta rutina desactiva el mdulo de radio dejndolo en modo de bajo consumo. No borra la configuracin establecida. int RF_SEND()

Variables de entrada
RF_DATA Es una variable de 8 bytes. (RF_DATA[0 - 7]). Se debe actualizar obligatoriamente por cada envo.

RF_DIR
Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 17 de 23

Retorno de la Funcin
0: Envo correcto (ACK OK) 1: Recepcin incorrecta de ACK (NO ACK) 2: No enviado Se ha realizado el envo y se ha recibido el ACK del receptor. Se ha enviado la informacin pero no se ha recibido ACK (receptor mal configurado, canal diferente en el receptor, direccin incorrecta). No se ha realizado el envo.

Esta funcin enva 8 Bytes de datos a la direccin indicada informando de la correcta recepcin en el destinatario. Tras su ejecucin el dispositivo volver al modo de escucha.

int RF_RECEIVE()

Variables de salida
RF_DATA

RF_DIR Retorno de la Funcin


0 1

Es una variable de 8 bytes. Presenta la informacin recibida (RF_DATA[0 - 7]). Es una variable de byte. Indica la direccin del emisor. Recepcin nica. No hay ms datos en la pila de recepcin. Recepcin mltiple. Hay ms datos en la pila de recepcin. Ocurre cuando el emisor enva ms de una trama antes de que el receptor la recoja. No se han recibido datos.

23

Esta rutina se encarga de comprobar si se ha producido una recepcin y de ser as, devuelve los datos recibidos. Asimismo, informa si quedan datos sin leer en la FIFO de recepcin del mdulo. Cuando se reciba una trama se debe hacer una comprobacin de la salida de la funcin. Si la funcin devuelve un 1 se debe llamar a la funcin RF_RECEIVE() de nuevo pero antes es necesario tratar los datos o se perdern. El transceptor tiene una pila de tres niveles, por lo que si no se llama a la funcin RF_RECEIVE() antes de que se llene la pila, el dispositivo no podr recibir ms datos. void RF_INT_EN() Esta rutina se encarga de habilitar la interrupcin externa del microcontrolador que utiliza el mdulo de RF en la recepcin de datos. Para ello se configura como entrada el pin RB0. Aunque se puede manejar el mdulo sin interrupciones no se garantiza el mnimo tiempo de respuesta.

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 18 de 23

Diagrama de flujo para envo y recepcin de datos


Interrupcin ext

RF_RECEIVE()

Retorno

23

Tratar datos

Tratar datos

Salir interrupcin

Diagrama 5. Recepcin con interrupcin en C

RF_RECEIVE()

Retorno

23

Tratar datos

Tratar datos

Salir recepcin

Diagrama 6. Recepcin sin interrupcin en C

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 19 de 23

7. Ejemplos en C para el compilador CCS


En este apartado se muestran fragmentos de cdigo a modo de ejemplo para orientar en la utilizacin de las funciones. //----------[Rutina de configuracin y activacin con interrupcin]----------//Habilitar interrupciones RF_INT_EN(); //Configurar mdulos SPI del PIC RF_CONFIG_SPI(); //Configurar mdulo RF (canal y direccin) RF_CONFIG(0x40,0x01); //Activar el mdulo RF RF_ON(); //--------------------------------------------------------------------------------------//----------[Rutina de configuracin y activacin sin interrupcin]---------//Configurar mdulos SPI del PIC RF_CONFIG_SPI(); //Configurar mdulo RF (canal y direccin) RF_CONFIG(0x40,0x01); //Activar el mdulo RF RF_ON(); //--------------------------------------------------------------------------------------//-----------------------------[Rutina de envo de datos]-------------------------//Preparacin de la direccin del receptor //y de los datos. RF_DIR=0x02; for(i=0;i<8;i++) { RF_DATA[i]=0x00; } //Envio de los datos ret=RF_SEND(); if(ret==0){ //Envio realizado y ACK recibido } else if(ret==1){
Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 20 de 23

//Envio realizado y ACK no recibido } else{ //Envio no realizado } //--------------------------------------------------------------------------------------//--------------[Rutina de recepcin con interrupcion]-------------------------//Interrupcin del mdulo RF #int_ext void int_externo() { //Recepcion de los datos ret = RF_RECEIVE(); if (ret == 1) { //En caso de recepcin mltiple ** Sustituir por cdigo necesario para tratar los datos ** while (ret == 1) { ret = RF_RECEIVE(); ** Sustituir por cdigo necesario para tratar los datos restantes ** } } //En caso de recepcin nica else if (ret == 0) { ** Sustituir por cdigo necesario para tratar los datos ** } else{ //no se ha producido recepcin } } //--------------------------------------------------------------------------------------//----------------[Rutina de recepcin sin interrupcin]-------------------------while(1){ ret=2; while(ret==2 || ret==3){ ret = RF_RECEIVE(); } if (ret == 1) //En caso de recepcin mltiple { RF_DIR=0x02; ** Sustituir por cdigo necesario para tratar los datos ** while (ret == 1)
Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 21 de 23

{ ret = RF_RECEIVE(); ** Sustituir por cdigo necesario para tratar los datos restantes ** } } else if (ret == 0) //En caso de recepcin nica { ** Sustituir por cdigo necesario para tratar los datos ** } //---------------------------------------------------------------------------------------

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 22 de 23

8. Prcticas
El usuario tiene disponibles 2 programas ejemplo en ensamblador y en C.

Programa 1
Envo de una trama con ceros a la direccin 0x02 cada 5 segundos. Tambin tiene implementada la rutina de recepcin con interrupcin.

Cada 5 seg. 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

Direccin=0x01 Canal=0x40 Programa 1

Direccin=0x02 Canal=0x40

Programa 2
Al recibir una trama desde cualquier direccin la retransmite a la direccin 0x02. Este programa recibe las tramas sin interrupcin, chequeando continuamente si se produce una nueva recepcin.

Trama

Trama

Direccin= Canal=0x40

Direccin=0x01 Canal=0x40 Programa 2

Direccin=0x02 Canal=0x40

9. Regulador 3.3v (LE33CZ)


Con el mdulo RF se distribuye tambin un regulador lineal de salida a para la alimentacin. En las siguientes tablas se describen las principales caractersticas elctricas y el pinout.

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

BIZINTEK INNOVAS.L.

Ttulo: Manual Mdulo BZI-RF2GH4 Rev: OR Feb 2007 Pgina 23 de 23

Tabla 7. Principales caractersticas del regulador

Pines Vout GND Vin

N 1 2 3

Descripcin Tensin de salida Tierra Tensin de entrada


Tabla 8. Pinout regulador

La conexin del regulador con el mdulo se realizar de la siguiente manera.

Vin

+ 0.1uF

2.2uF

Regulador

1 2 3 4 5 6 7 8

Mdulo RF

Vista superior

Avda. Altos Hornos de Vizcaya, 33 CEDEMI 48902 Barakaldo www.bizintekinnova.com info@bizintekinnova.com

Vous aimerez peut-être aussi