Autor Tema: Ayuda No consigo trasmitir con unos módulos de RF 915MHz  (Leído 1948 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado zeusjorg

  • PIC10
  • *
  • Mensajes: 36
Ayuda No consigo trasmitir con unos módulos de RF 915MHz
« en: 10 de Noviembre de 2010, 22:40:28 »

Hola

Necesito vuestra ayuda. Adquirí dos módulos de RF 915MHz FSK.
La referencia del vendedor es: GP-GC011
Referencia del fabricante es: Cy2196R
E buscado información por san Google y e leído las hoja de datos tanto del fabricante como del vendedor.
Por lo que e entendido funcionan de esta manera:

PIN1: VCC. 2.4V ~ 4.2V requiere por lo menos 100 Ma y un filtrado de alimentación adecuado, como mino con un rizo de 20mV.
PIN2: GND
PIN3: RXD. de entrada de serie, la velocidad de transmisión 19200. (entrada)
PIN4: TXD. Salida serial, velocidad de transmisión 19200 (salida)
PIN5: Para poner en bajo 1 consumo o 0 activarlo (entrada)
PIN6: Indicador de estado 0 ocupado. 1 desocupado (Salida)
PIN8: 0 configuración. 1 funcionamiento normal (entrada)

MICRO RX -> TX Transmisor
MICRO TX-> RX Receptor

Para transmitir y recibir:
Pin5 poner a nivel bajo (entrada)
Pin8 a nivel alto con resistencia 4k7 o al aire (entrada)
Pin6 esta en nivel bajo cuando esta ocupado y alto cuando esta desocupado (salida)
Hay que esperar al menos 15ms una vez se detecte el estado desocupado, para poder transmitir
(Corriente máxima por el pin6 20ma)

Para configurar el canal de transmisión:
Pin 8: poner bajo
Mandar por el puerto serie:
1 dato: en hexadecimal: AF
2 dato: en hexadecimal: 00-3f corresponde al numero canal de 0 a 63 canales
Pin 6: se pondrá a bajo nivel bajo durante la configuración y alto nivel una vez finalizado la configuración
Pin 8: poner alto
915M:-915.18M 924.63M diferencia entre canal 150 kHz

Después de entender todo esto, me puse a realizar un programa de prueba, mirando 2 ejemplos que encontré.
Realice un programa usando la usart por hardware del micro. Por cierto uso el pic16f876.
Viendo que no me funcionaba, provee por software con la instrucción debug. Pero sigo sin recibir absolutamente nada.
Si los conecto directamente por cable. Los dos programas funcionan correctamente.

Os pongo el último programa que e realizado haber si me podéis ayudar.
Muchas gracias por adelantado.

Hojas de datos:

GP-GC011:
http://www.zonemikel.com/wordpress/wp-content/uploads/2010/07/GP-GC010.pdf

Cy2196R traducido al ingles:
http://translate.google.com/translate?hl=en&sl=zh-CN&tl=en&u=http%3A%2F%2Fwww.zonemikel.com%2Fwordpress%2Fwp-content%2Fuploads%2F2010%2F07%2FCy2196R_chn.pdf


Transmisor:

Código: [Seleccionar]

'****************************************************************
'*  Name    : TRANSMISOR 9-11-10.BAS                            *
'*  Author  : *
'*  Notice  : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 09/11/2010                                        *
'*  Version : 1.0                                               *
'*  Notes   : 16F876                                            *
'*          : PULSADOR PARA AUMENTAR EL VALOR                   *
'****************************************************************
CCP1CON = %00000000 ' Disable CCP
SSPCON.5 = 0 ' Disable SSP Module
CMCON = %00000111 ' Turn off comparator

DEFINE OSC 8

INCLUDE "modedefs.bas"
DEFINE DEBUG_REG PORTC
DEFINE DEBUG_BIT 1
DEFINE DEBUG_BAUD 19200
DEFINE DEBUG_MODE 0
define DEBUGIN_REG PORTC
define DEBUGIN_BIT 2
define DEBUGIN_BAUD 19200
define DEBUGIN_MODE 0
DEFINE DEBUG_PACING 10000

'------------------------ Port Initialization -------------------------------

TRISB = %10010011
TRISC = %10000100
PULSADOR VAR PORTB.1
PCONFIGURACION VAR PORTB.7
LED VAR PORTB.2
LEDCONFIGURACION VAR PORTB.6
PIN5 VAR PORTB.3  ' ACTIVO 0. REPOSO 1.
PIN6 VAR PORTB.4  ' OCUPADO 0. DESOCUPADO1.
PIN8 VAR PORTB.5  ' CONFIGURAR 0. NORMAL 1.
RX var PORTC.2 ' out
TX var PORTC.1 ' in
VALOR VAR BYTE
VALOR=0

pause 400
debug $55
PIN5=0
INICIO:
IF PCONFIGURACION=0 THEN GOSUB CONFIGURACION
high tx
high rx
pause 400
PIN5=0 : PIN8=1
IF PULSADOR=1 THEN INICIO
LED=1
VALOR=VALOR+5

 ' Data sent to the wireless transceiver for remote module

debug "ok", VALOR
LED=0
PAUSE 300
GOTO INICIO

CONFIGURACION:
LEDCONFIGURACION=1
pause 15
chann:
low PIN8
pause 50
while PCONFIGURACION=1
debug $af, $20
wend
HIGH PIN8
PAUSE 300
LEDCONFIGURACION=0
RETURN
END

Receptor:

Código: [Seleccionar]
'****************************************************************
'*  Name    : RECEPTOR 9-11-10.BAS                              *
'*  Author  : *
'*  Notice  : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 09/11/2010                                        *
'*  Version : 1.0                                               *
'*  Notes   : 16F876                                            *
'*          : LCD 4X20                                          *
'****************************************************************
DEFINE OSC 4 ' tell program we are using a 4mhz oscillator
@ DEVICE PROTECT_OFF
@ DEVICE DEBUG_OFF
@ DEVICE WRT_OFF
@ DEVICE CPD_OFF
@ DEVICE LVP_OFF
@ DEVICE BOD_OFF
@ DEVICE PWRT_ON
@ DEVICE WDT_ON
@ DEVICE XT_OSC

INCLUDE "modedefs.bas"
DEFINE DEBUG_REG PORTC
DEFINE DEBUG_BIT 6
DEFINE DEBUG_BAUD 19200
DEFINE DEBUG_MODE 0
define DEBUGIN_REG PORTC
define DEBUGIN_BIT 5
define DEBUGIN_BAUD 19200
define DEBUGIN_MODE 0
DEFINE DEBUG_PACING 10000

CCP1CON = %00000000 ' Disable CCP
SSPCON.5 = 0 ' Disable SSP Module
CMCON = %00000111 ' Turn off comparator

'LCD
Define LCD_DREG portb
Define LCD_DBIT 4
DEFINE LCD_RSREG PORTc
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTc
DEFINE LCD_EBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2

TRISB = %11100100
TRISc = %00010000
VALOR VAR BYTE
PIN5 VAR PORTB.1  ' ACTIVO 0. REPOSO 1.
PIN6 VAR PORTB.2  ' OCUPADO 0. DESOCUPADO1.
PIN8 VAR PORTB.3  ' CONFIGURAR 0. NORMAL 1.
LEDDATOS VAR PORTC.2
LEDCONFIGURACION VAR PORTC.3
PCONFIGURACION VAR PORTC.4
RX var PORTC.5 ' out
TX var PORTC.6 ' in
valor=0

INICIO:
IF  PCONFIGURACION=0 THEN GOSUB CONFIGURACION
PIN5=0
PIN8=1
high tx
high rx
pause 400
LCDOUT $FE,1
LCDOUT $FE, $C0, "ESPERANDO DATOS..."

DISPLAY:
LEDDATOS=1
pause 15 ' Give module time to wake
debugin [wait ("ok"),VALOR]
LCDOUT $FE,1
LCDOUT $FE, $C0, "EL DATO ES:", DEC VALOR
LEDDATOS=0
PAUSE 300
GOTO INICIO

CONFIGURACION:
LEDCONFIGURACION=1
low PIN8
pause 50
while PCONFIGURACION=1
debug $af, $20
wend
HIGH PIN8
PAUSE 300
LEDCONFIGURACION=0
RETURN
END


 

anything