• Sábado 21 de Diciembre de 2024, 10:52

Autor Tema:  Pic Y Trf2.4 Ghz Marca Laipac  (Leído 8842 veces)

oldkami

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Pic Y Trf2.4 Ghz Marca Laipac
« en: Miércoles 15 de Junio de 2005, 20:14 »
0
Estoy realizando un proyecto en donde se necesita monitorear las variables de vuelo de un aeromodelo(velocidad,altura,etc), para transmitir los datos desde el avion y ya que no tengo experiencia en RF opte por adquirir el modulo TRF2.4 ghz marca Laipac, pero tengo problemas en hacerlos funcionar, ¿alguien A trabajado con estos Modulos?  Agradezco toda la Informacion que me puedan suministrar.


Suerte

oldkami

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #1 en: Sábado 25 de Junio de 2005, 14:08 »
0
Hola, lo estuve mirando pero no encuentro su hoja de datos, lo has conseguido?.. me interesaria colaborarte ya que esto de la RF es un terreno resfaloso y me di varios palos en el :( .. Saludos
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

oldkami

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #2 en: Martes 28 de Junio de 2005, 17:34 »
0
si, tengo la hoja de datos,  Tiene 2,2 MB y me la enviaron del almacen en donde lo compre (no esta en la pagina de Laipac), si me obsequia la dirección e-mail o FTP con gusto se la envio...

Suerte

oldkami

oldkami

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #3 en: Martes 28 de Junio de 2005, 17:50 »
0
ok ya subi la hoja de datos al ftp de solocodigo  (datasheet)...  no habia visto lo del servidor ftp del foro :)


Suerte

oldkami

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #4 en: Martes 28 de Junio de 2005, 21:38 »
0
Bueno, los estuve viendo, cuentame un poco de lo que ya tienes implementado, por empezar... la comunicacion sin modulos (via cable) funciona?.. que protocolo utilizas?.. RS232??.. cuentame y le buscamos la solucion. Saludos :)
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

oldkami

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #5 en: Miércoles 29 de Junio de 2005, 02:38 »
0
bueno, basicamente estoy utilizando el MSSP de un PIC 16F873 con xtal de 4MHZ.  estoy trabajando a 250 kb de velocidad de transmision.

ya que el codigo que utilizo un poco extenso, subi el codigo como Avion.rar al Ftp de solocodigo.  como utilizo modulos, es mejor abrir el proyecto RX_Avion y TX_Avion que los archivos individuales. PORB,4 es un led para saber si vive el programa.


crei haber encontrado el error al darme cuenta que habia olvidado apagar el Brown Out Detect, ya que tengo alimentados el PIC y el TRF a 3V. pero de todas formas no trabaja.

Basicamente el problema es que no estoy del todo seguro de como transmitir la palabra de configuración del PIC al TRF, creo que en este procedimiento esta el truco para hacer funcionar el sistema, la idea es que al recibir la trama de datos correcta el TRF genera una interrupción colocando en alto un pin, más la interrupción nunca llega lo cual me indica que tal vez no quedo bien configurado o se estan enviando mal los datos, una vez consiga hacer funcionar la interrumpción proporcionada por el TRF lo demas es sencillo.

Bueno, esto es todo lo que tengo hasta ahora, ojala sea suficiente para que me puedan ayudar con este problema..

Gracias y Suerte
oldkami

Suerte

oldkami

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #6 en: Jueves 30 de Junio de 2005, 04:16 »
0
Bien, ya consegui hacer funcionar el sistema, realmente era más sencillo de lo que pensaba, aunque debi olvidarme de la idea de utilizar el MSSP, coloque los archivo del proyecto en el ftp de solocodigo para quien quiera mirar mas detalles. Tenia algunos errores en la interrupción pero sobretodo en el envio de los datos de la configuración.
 
los datos recibidos son enviados via serial al PC a 19200 bps


El rendimiento de este dispositivo es verdaderamente excelente, la transmision es muy confiable y la implementación es simple.  lo recomiendo para todos los que como yo no tienen experiencia alguna en RF. lo unico en contra es el conector, necesariamente hay que probarlo sobre un circuito impreso.

Gracias por todo. :)


Suerte
oldkami

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #7 en: Jueves 30 de Junio de 2005, 19:28 »
0
huuuuuu... bueno!!!.. yo me super alegro!!!!!!!  :comp:  :smartass:  :D  :D  :lol:  :lol:  :lol: ... te felicito y me alegra mucho que todo haya funcionado, viste que una vez descubierto el problema uno mismo se da cuenta de lo facil que era la solucion  :blink: ... queria consultarte.. en tu comunicacion.. usas solo el micro y el modulo o utilizas algun otro integrado para codificar/decodificar  los datos que envias??. Saludos y Felicitaciones!  :smartass:  :lightsabre:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

oldkami

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #8 en: Martes 5 de Julio de 2005, 21:11 »
0
Solo utilizo el micro y el modulo,  el modulo mismo se encarga de la verificación CRC de los datos, por lo que se puede retirar muchas lineas de codigo en el micro. :). en cuanto a la codificación (portadora?, ancho de banda?) todo eso lo hace el modulo si se envia la trama de configuración correcta :) simplemente se transmiten o reciben los datos y se hace con ellos lo se requiera.

Lo unico que he notado, es que los paquetes, como se configuran antes de iniciar la transmision, son  todos siempre del mismo tamaño(ej: 4 bytes ),  si se desea variar el tamaño de la trama (ej: de 4bytes a 6bytes) hay que reconfigurar ambos dispositivos.  Existe un modo especial de trabajo para estos casos de tramas variables (modo directo), pero entonces se necesita implementar un algoritmo CRC en el micro y el modulo pierde la capacidad de generar interrupciones.

Suerte
Oldkami

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #9 en: Miércoles 6 de Julio de 2005, 14:04 »
0
Agradesco tu informacion, es muy util, no pense que los modulitos de laipac fueran tan buenos, yo utilizo de ellos modulos de UHF en 868Mhz y no son muy eficaces que digamos, pero veo que los de 2,4gb ya vienen muy mejorados. Gracias por tus comentario, un abrazo  :D
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

Chibchombiano

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #10 en: Domingo 25 de Junio de 2006, 02:49 »
0
Hola, soy nuevo en el foro y estoy trabajando en mi proyecto de fin de carrera y es modulos roboticos nalambricos y tengo el modulo Laipac trf 2.4ghz, vi que y apudieron trabajar con el, pero no se cual es la pagina de solocodigo para ver ese archivo y tener una guia.... o de dode puedo descargar los ejemplos de este transeiver ocnectado al pic, porque no he podido hacer que mis modulos funcionen........ gracias

ARLES QUICENO

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #11 en: Miércoles 2 de Mayo de 2007, 17:02 »
0
Cita de: "© Jonathan ©"
Hola, lo estuve mirando pero no encuentro su hoja de datos, lo has conseguido?.. me interesaria colaborarte ya que esto de la RF es un terreno resfaloso y me di varios palos en el :( .. Saludos
quisiera saber tu correo?
mi correo es arlesqui51@hotmail.com

Emperor

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #12 en: Miércoles 9 de Abril de 2008, 00:54 »
0
Cita de: "oldkami"
Estoy realizando un proyecto en donde se necesita monitorear las variables de vuelo de un aeromodelo(velocidad,altura,etc), para transmitir los datos desde el avion y ya que no tengo experiencia en RF opte por adquirir el modulo TRF2.4 ghz marca Laipac, pero tengo problemas en hacerlos funcionar, ¿alguien A trabajado con estos Modulos?  Agradezco toda la Informacion que me puedan suministrar.


Suerte

oldkami
Hola

Mira estoy comenzando a trabajar con los modulos laipac trf 2.4 y ya que ud. ya ha trabajado con ellos le agradeceria enviarme a mi correo la informacion que poseas y que esre a disposicion

gracias por la atencion

DIEGO

ing_diegofercho@hotmail.com

alcidesramos

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #13 en: Lunes 14 de Julio de 2008, 15:01 »
0
Hola me puedes ayudar no ubico el codigo fuente del que hablas del trf2.4  yo aun no los hago funcionar.
mi mail es alcidesramos@yahoo.es
gracias.

alcidesramos

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #14 en: Viernes 18 de Julio de 2008, 05:23 »
0
Hola ya puse a funcionar los TRF2.4.

Oara aclarar un poco la  dificultad es que solo trabajan a 3V los mciros pueden trabajar a ese voltaje siempre tengan las iniciales L ejemplo el 16LF874a trabaja de 2 a 5v pero el 16F877A  no.

Haci que alimente el micro a 5V y con un zener de 3.3V a un vatio el TRF.

Al trabajar con un solo canal quedaria.

* Los pines de entrada del TRF (CK1,CE,CS) irian del micro sale una resistencia de 680 en serie a 1k  que va a tierra y de la union de esta a la entrada deseada del micro.

* los pines  de salida del TRF(DR1) salen con el negativo de un diodo 1n4148 al micro que va con una resistencia de 10k al positivo.

* el pin entrada salida (DR1) iria similar con la resistencia de 680 y 1k pero cuando actua de salida iria algo diferente  con un trasistor

Adjunte un dibujo ilustrativo pero si tienen dudas me pueden escribir a mi correo: alcidesramos@yahoo.es.
[attachment=0:1z8zl30y]trf.JPG[/attachment:1z8zl30y]

El programa lo hice con un compilador llamado mikropascal la verdad siempre programe en ensamblador pero por cuestiones de tiempo y como se delphi que es pascal orientado a objeto inicie con este compilador y la verdad es poderosisimo.
el codigo lo hice de clarando contantes para facil entendimiento si alguien le interesa se lo envio para que lo analice no debe ser dificil pasarlo a otro compilador.
utilice pura instrucciones para el SPI.
La verdad en la RED Hay muy poca informacion de poner a funcionar los TRF por eso estoy dispuesto a compartir si alquien tiene  problemas como ayudarlo.
Mi proyecto con el TRF2.4 es un radio telefonio digital de varios canales. con el DAC mcp4821 de microchip.
Por ultimo utilicen el TRF2.4 con minimo 2 bytes de direcciones no se porque presenta algo de ruido al configurar solo uno.

Bueno no es mas solo a la orden a quien pueda colaborarle nunca habi participado en un foro y me vi en apuros con esto y trate buscar ayuda pero la verdad no fue muy valiosay ahora que ya los manejo quisiera ayudar a otros. chao.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

alcidesramos

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Pic Y Trf2.4 Ghz Marca Laipac
« Respuesta #15 en: Viernes 18 de Julio de 2008, 05:53 »
0
El codigo esta hecho en micropascal pero anexo declaraciones y funciones psra que analicen es facil de interpretar.
La instruccion shl rota a la izquierda  ejemplo shl 2 rota dos casillas: creo que es lo unico a aclarar lo otro se puede deducir analizando elcodigo.

las declaraciones para el programa son:
const
//pines en el micro
cs=0;
ce=1;
ck1=2;
dato1=3;
dr1=5;
ck2=2;
dato2=6;
dr2=7;


//para la configuracion trf

nbyte_1=2;  // numero de bytes canal 1
nbyte_2=2;  // numero de bytes canal 2
nbytedir=2; // numero de byte de las dirreciones a usar

// para crc
l_crc=1
e_crc=0;
crc_8=1 shl 1;
crc_16=0 shl 1;
crc_on=1;
crc_off=0;
// para la potencia

rf_20=0;
rf_10=1;
rf_5=2;
rf0=3;
// para el cristal
cristal_4=0 shl 2;
cristal_8=1 shl 2;
cristal_12=2 shl 2;
cristal_16=3 shl 2;
cristal_20 =4 shl 2;
// la velocidad
rata_250k=0 shl  5;
rata_1m=1 shl  5;
// el modo
modo_direct=0 shl 6;
modo_burst=1 shl 6;
//recibe 2 o un canal
rx_2=1 shl 7;
rx_1=0 shl 7;

//trasmite o recibe
txmodo=0;
rxmodo=1;
// canal deseado
canal=16 shl 1;   //2464GHz
// bit superios de configuracion
test_1=%10001110;
test_2=%00001000;
test_3=%00011100;
// pin recibe datos 2 porque sera el puero c,2
DATO1IN=2;

var
dir1_1,dir1_2,dir1_3,dir1_4,dir1_5:byte;
dir2_1,dir2_2,dir2_3,dir2_4,dir2_5:byte;
trf : byte; absolute $08; volatile;   //defino trf en el puerto d;
trfin : byte; absolute $07; volatile;   //defino trfin en el puerto c;
nbit_1,nbit_2:byte;
nbitdir:byte;
byte_c1,byte_c2,byte_c3:byte;
datos1:array[nbyte_1] of byte;
var
 txt:string[5];

Los procedimientos y funciones implemantadas son:

procedure delay_ck();//
begin
delay_us(1);
end;

procedure delay_cs();
begin
delay_us(4);
end;

procedure delay_setup();
begin
delay_ms(4);
end;

procedure envia_spi(b:byte);
var
i:byte;
begin

   for i:=7  downto 0 do
   begin
   trf.ck1:=0;
    if testbit(b,i) then trf.dato1:=1
    else trf.dato1:=0;
    delay_ck();
    trf.ck1:=1;
    delay_ck();
   end; // for
    trf.ck1:=0;
end;

function recibe_spi :byte;
var i ,buffer: byte;
begin
    result:=0;
//    result := Soft_Spi_Read(buffer);
      for i:=7 downto 0 do
   begin
   trf.ck1:=0;
delay_ck();
  trf.ck1:=1;
delay_ck();
   if testbit(trfin,dato1in) then result.i:=0
   else result.i:=1;
   end;//for
      trf.ck1:=0;
end;


function recibe_spi2 :byte;
var i ,buffer: byte;
begin
    result:=0;
//    result := Soft_Spi_Read(buffer);
      for i:=7 downto 0 do
   begin
   trf.ck2:=0;
delay_ck();
  trf.ck2:=1;
delay_ck();
   if testbit(trf,dato2) then result.i:=0
   else result.i:=1;
   end;//for
      trf.ck2:=0;
end;


procedure configrtf();
begin
   trisd.dato1:=0;
   nbit_1:=nbyte_1 shl 3;
   nbit_2:=nbyte_2 shl 3;
   dir1_1:=17;
   dir1_2:=21;
   dir1_3:=0;
   dir1_4:=0;

   dir2_1:=17;
   dir2_2:=21;
   dir2_3:=0;
   dir2_4:=0;
   nbitdir:=nbytedir shl 5;
   byte_c1:=nbitdir or crc_8 or crc_on;   // primer byte configuracion
   byte_c2:=rx_2 or modo_burst or rata_250k or cristal_16 or rf0;// segundo byte de configuracion
   byte_c3:=canal or rxmodo;  // tercer byte de configuracion  para transmision sera: or txmodo

 // comienza a enviar informacion
    trf.ce:=0;
   trf.cs:=0;
   trf.ck1:=0;
    trf.dato1:=0;
   delay_setup();
   trf.cs:=1;
   delay_cs();
   envia_spi(test_1);
   envia_spi(test_2);
   envia_spi(test_3);
   envia_spi(nbit_2);
   envia_spi(nbit_1);
   envia_spi(dir2_5);
   envia_spi(dir2_4);
   envia_spi(dir2_3);
   envia_spi(dir2_2);
   envia_spi(dir2_1);
   envia_spi(dir1_5);
   envia_spi(dir1_4);
   envia_spi(dir1_3);
   envia_spi(dir1_2);
   envia_spi(dir1_1);
   envia_spi(byte_c1);
   envia_spi(byte_c2);
   envia_spi(byte_c3);
   trisd.dato1:=1;  // debe pasar a entrada aunque el dato se lee por el portc,2
   trf.cs:=0;
   trf.ck1:=0;
   trf.ce:=1;
end;

procedure tx_modo;
begin
trisd.dato1:=0;
trf.ck1:=0;// puede ser opcional
trf.ce:=0;
trf.cs:=1;
delay_cs();
trf.dato1:=1;
trf.ck1:=1;
delay_ck();
trf.ck1:=0;
delay_ck();
trf.cs:=0;

end;

procedure rx_modo;
begin
trisd.dato1:=0;
trf.ck1:=0;// puede ser opcional
trf.ce:=0;
trf.cs:=1;
delay_cs();
trf.dato1:=0;
trf.ck1:=1;
delay_ck();
trf.ck1:=0;
delay_ck();
trf.cs:=0;
trisd.dato1:=1;  // muerto
trf.ce:=1;
end;

procedure tx_modocanal(c:byte);
begin
trisd.dato1:=0;
trf.ck1:=0;// puede ser opcional
trf.ce:=0;
trf.cs:=1;
delay_cs();
envia_spi((c shl 1)or 0) ;
trf.cs:=0;
trf.ck1:=0;
end;


procedure rx_modocanal(c:byte);
begin
trisd.dato1:=0;
trf.ck1:=0;// puede ser opcional
trf.ce:=0;
trf.cs:=1;
delay_cs();
envia_spi((c shl 1)or 1) ;
trf.cs:=0;
trisd.dato1:=1;
trf.ck1:=0;
trisd.dato1:=1;  // muerto
trf.ce:=1;
end;

procedure enviatrf(var b:array[nbyte_1] of byte);
var
i:byte;
begin
   trf.ce:=1;
   delay_cs;
    envia_spi(dir1_2);
    envia_spi(dir1_1);
   for i:=0 to nbyte_1-1 do
   begin
   envia_spi(b);
   end;// for
   trf.ce:=0;
   trf.ck1:=0;
end;

procedure recibetrf();
var
i:byte;
begin
   for i:= 0 to  nbyte_1-1 do
   begin
   datos1:=recibe_spi;
  end;
   trf.ck1:=0;
   end;

procedure recibetrf2();
var
i:byte;
begin
   for i:= 0 to  nbyte_2-1 do
   begin
   datos1:=recibe_spi2;
   end;
   trf.ck2:=0;
   end;

* el procedimiento principal  para trasmitir implementado en un 16f919 es utilizando puerto b:


begin
OSCTUNE:=0;
OSCCON.IRCF2:=1;
OSCCON.IRCF1:=1;
OSCCON.IRCF0:=1;
PIE1:=0;
PIR1:=0;
PIE2:=0;
PIR2:=0;
PCON:=0;

 OPTION_REG := $0;
 intcon:=0;
  ADCON1     := $06;
  TRISA      := $00;
  trisb.cs:=0;
  trisb.ce:=0;
  trisb.ck1:=0;
  trisb.dato1:=0;
  trisb.dr1:=1;
  trisb.ck2:=0;
  trisb.dato2:=1;
  trisb.dr2:=1;
   portb:=0;
   porta:=0;
    configrtf();
    txmodo();
    repeat
     datos1[0]:=31;   // primer dato a trasmitir
     datos1[1]:=33;   // segundo dato a trasmitir
     enviatrf(datos1);
      porta:=not(porta); // indica que se estan enviando datos
      delay_ms(300);
     
    until 0=1;// pincipal

* el codigo para recibir los datos en este caso solo es una prueba y se recibenn el dato 31 y 33 y se muestran en un display si no hay señal se vera el mensaje ayudame dios mio (este mensaje lo vei todo un dia de verdad que me ayudo y ya no salen sino los datos) si si hay enlace los datos enviados, utilizo un pic16f877a.


begin
 OPTION_REG := $80;
  ADCON1     := $06;                // configure VDD as Vref, and analog channels
  TRISA      := $FF;                // designate porta as input
PIE1:=0;
PIR1:=0;
PIE2:=0;
PIR2:=0;
PCON:=0;
OPTION_REG := $0;
intcon:=0;
trise:=0;
trisd:=0;
trisb:=0;
TRISC.DATO1IN:=1;

  trisd.cs:=0;
  trisd.ce:=0;
  trisd.ck1:=0;
  trisd.dato1:=0;
  trisd.dr1:=1;
  trisd.ck2:=0;
  trisd.dato2:=1;
  trisd.dr2:=1;

   portd:=0;
   portb:=0;
   delay_ms(1000);
   configrtf();
    rx_modo();
   

Lcd_Config(PORTb,7,6,5,4,PORTb,3,2,1);
Lcd_Cmd(LCD_CLEAR);                //  send command to LCD "clear display"
 Lcd_Cmd(LCD_CURSOR_OFF);           //  send command cursor off
Lcd_Out(1, 1, 'AYUDAME DIOS MIO'); // Si no hay datos solo se pide ayuda
delay_ms(5);
    repeat
     if trf.dr1=1 then
     begin

              datos1[0]:=0;
              datos1[1]:=0;

              recibetrf(); // recibe el dato y queda guardado en el buffer datos1
               Lcd_Out(1, 4, 'Datos enviados'); // Wr
                  wordToStr(datos1[0], txt);   //convierte a cadena eldato
                      Lcd_Out(2, 1, txt  ); // Wr     // lo muestra en display linea 2
                          wordToStr(datos1[1], txt);
                              Lcd_Out(3, 1, txt  ); // Wr  line 3´
                               delay_ms(500);
                                Lcd_Cmd(LCD_CLEAR); // limpia el display

        end;//dr1=1;
until 0=1;// pincipal



* es todo espero que sea de su ayuda y les ayude aclarar dudas y solucionar algun problema.