Autor Tema: XBEE PRO + PIC + CCS DESDE CERO  (Leído 3478 veces)

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

Desconectado darkaice

  • PIC10
  • *
  • Mensajes: 6
XBEE PRO + PIC + CCS DESDE CERO
« en: 29 de Enero de 2019, 20:52:01 »
Hola compañeros:
quiero su ayuda para ir haciendo un método de como usar tanto los módulos XBEE, como escribir su programa en CCS  utilizando algún microcontrolador de microchip (sugerido el 18F2550).

En la primera parte sugiero el código únicamente para el envió de datos hacia la computadora y poderlo visualizar desde el XCTU, pero hasta el momento no he podido hacer que funcione, apreciaría mucho su apoyo y si es posible que dieran instrucciones y pasos detallados seria mucho mejor.

Bueno amigos comenzamos...

empiezo con el código, favor de decirme si hay algún error. :oops:
//*********************************************************************************************************//
 #include <18F2550.h>                          // pic a utilizar.
#fuses Hs,NOWDT,NOPROTECT,NOMCLR // fuses utilizo cristal físico de 20MHz, no uso perro guardián, no protejo el código, no usare el
                                                                                                                                                                                           reset
#use delay (clock=20M)                         // CRISTAL fisico de 20MHz

#use rs232(baud=9600, xmit=PIN_c6, rcv=PIN_c7) 
// utilizo protocolo rs232 ( aquí hago un paréntesis no se si este bien usar rs232 //dado que los voltajes son distintos y me parece que //el XBEE utiliza UART, aunque en muchos códigos que no me han servido lo //utilizan.) por defecto el pin c6 es transmisión de datos y //pin c7 es recepción.


BYTE tramaout[27]={0x7E, 0x00, 0x17, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00 ,0x00, 0x48, 0x4F ,0x4C, 0x41, 0x20, 0x48, 0x55, 0x47, 0x4F, 0x7A};

 //trama que quiero que reciba el xbee que esta conectada a la computadora y
//lo pueda ver en el XCTU, EL CODIGO ASCCI DICE HOLA HUGO.


int i=0 ; // entero para que funcione el programa

 
   void main()                                 //inicio del programa
   {
      while (true)  {
         
     delay_ms(1000);  // retardo
     
     
 
 for(i=0;i<=28;i++) {
 PUTC(tramaout [  i  ] );  // ENVIA DATOS POR EL PIN C6 el dato de nuestra variable "valor"
 
 delay_ms(1);          //espera un ms antes de enviar el siguiente dato
 
 
 }
i=0;                    // al salir del ciclo for reinicio la variable i y nuevamente vuelve a empezar el ciclo while
 
         
          }
}
//*********************************************************************************************************//
ESTE PROGRAMA LO HE QUEMADO EN EL PIC PERO NO HAY COMUNICACIÓN ENTRE LOS XBEE

El objetivo de este programa es verificar que el pic este conectado correctamente al xbee y que pueda enviar datos a otro xbee conectado a una laptop y pueda mostrar la trama recibida en el XCTU.
 
EXPLORADOR XBEE (PROGRAMADOR) : LA DUDA ES SE PODRÁ CONECTAR SU TX AL RX DEL PIC ? Y DE IGUAL FORMA EL RX DEL EXPLORADOR AL TX DEL PIC SIN NECESIDAD DE HACER UN DIVISOR DE VOLTAJE O PARA ADAPTAR LOS 3.3V,  favor de ver la ilustración (conexion al pic0 ) y opinar cual es la mejor forma .

INFORMACION ADICIONAL: los XBEE están configurados como coordinador API el que esta conectado a la LAPTOP y el que esta conectado al pic esta configurado como ROUTER API

LA TRAMA utilizada en el programa fue sacada directamente de la comunicación entre estos dos xbee ver foto TRAMA DESDE XBEE.

si alguien puede pasarme un programa funcional para comunicar xbee configurado como API se lo voy a agradecer

dejo también un esquema de conexión (esquema de conexión. y conforme valla tomando forma este método lo estera subiendo paso por paso y con fotos y datos de los resultados ya probados y todo documentado y comentado.

saludos

« Última modificación: 30 de Enero de 2019, 11:43:13 por darkaice »

Desconectado darkaice

  • PIC10
  • *
  • Mensajes: 6
Re:XBEE PRO + PIC + CCS DESDE CERO
« Respuesta #1 en: 02 de Febrero de 2019, 19:44:28 »
Hola Compañeros. he tenido problemas en hacer que funcionen xbee conectado al pic les comento que he quitado los MÓDULOS EXPLORER  ahora el diagrama queda como en la imagen (2550axbee) también cambie de programa y de cristales

el nuevo programa es este :
//********************************************************************************************************//
 #include <18F2550.h>                          // pic a utilizar.
#fuses HS,NOWDT,NOPROTECT,NOMCLR                     // fuses
#use delay (clock=4M)                         // CRISTAL DE 8MEGAS
#use rs232(baud=9600,parity=N, xmit=PIN_c6, rcv=PIN_c7, bits=8) 
#use standard_io(all)
 
int xbeein=0,xbeeout=0,pum=0;

#Int_RDA
 RDA_isr()
{
xbeein=getc ();
}

   void main()                                 //inicio del programa
   {
  enable_interrupts(int_RDA);
  enable_interrupts(global);
   while (true)
              {
   
   //** recepcion de datos numericos del uno al 3 **//
   if (xbeein==1)
              {
   output_high(pin_b0);
         
            }
    else
  if (xbeein==2)
              {
   output_high(pin_b1);
         
            }
 else
  if (xbeein==3)
  {
   output_high(pin_b2);
           
  }
 else
  if (xbeein==0)
  {
   output_low(pin_b0);
   output_low(pin_b1); 
   output_low(pin_b2);
   delay_us(1);
  }
  //** ENVIO DE DATOS NUMERICOS POR PULSADOR **/////
 
    if (input(pin_a0)==0)
      pum++;
      delay_us(1);   
    if (input(pin_a0)==1)
      pum =0;
           
      if (pum ==1)
     
      {
     xbeeout++;
       }
           PUTC(xbeeout);  // ENVIA DATOS POR EL PIN C6 el dato de nuestra variable "valor"
           if(xbeeout==5)
               {
              xbeeout=0;
              PUTC(xbeeout);
               }
           
           
}
           
   }     
//********************************************************************************************************//
MONTE DOS PICS 18F2550 COMO LO MUESTRA EN EL DIAGRAMA (PRUEBASERIE2550) cargo el programa que esta en este apartado en ambos pics 18f2550 y si funciona. 
Agrego archivos para la simulación. archivos (COM2550 .pdsprj) , (xbee pic03.c) y (xbee pic03.hex) dentro del zip simulacion.zip
en la foto 2550axbee se muestra un bosquejo de como es la conexion que hago del PIC AL XBEE.

INFORMACION ADICIONAL: los XBEE están configurados como coordinador AT el que esta conectado a la LAPTOP y el que esta conectado al pic esta configurado como ROUTER AT


OBSERVACIONES: Al usar un cristal de 20MHz no se veia nada en la pantalla del XCTU.
                           
                           Al usar un cristal de 8MHz se observan 80´s en la pantalla como lo muestra la imagen  80ENXBEE, pero solo eso se
                           observa y en el apartado de console loq del XCTU no hay nada.
                           
                           Al usar un cristal de 4MHz se observan cambios en la recepción como lo muestra la imagen 78yF8XBEE, pero sigue 
                           sin mostrarme los valores que le estoy enviando, cuando presiono un push cambia el dato de 80 a F8 pero sigue sin
                            mostrar los datos que estoy enviando y solo cambia entre esos dos valores.
                             
                          Cuando cambie un cristal de 4MHZ y deje uno de 8MHZ la comunicación por cable dejo de funcionar aunque en los
                           pics tenia configurado 9600 baudios



PREGUNTAS: porque cuando uso un cristal mas bajo obtengo envió de datos, aunque no sean los que mando, el xbee los recibe y los muestra en el XCTU?.

es necesario que todos los pics usen el cristal del mismo valor cuando hago comunicación serial entre ambos pics?

como debo enviar los datos desde el pic hasta el xbee ?


saludos



« Última modificación: 03 de Febrero de 2019, 23:28:03 por darkaice »

Desconectado darkaice

  • PIC10
  • *
  • Mensajes: 6
Re:XBEE PRO + PIC + CCS DESDE CERO
« Respuesta #2 en: 03 de Febrero de 2019, 08:06:56 »
Hola Compañeros, acabo de responderme una pregunta, espero a ustedes también les sirva
PREGUNTA:
¿Es necesario que todos los pics usen el cristal del mismo valor cuando hago comunicación serial entre ambos pics?

RESPUESTA:
tanto el transmisor como el receptor deberán tener los mismos parámetros de configuración (velocidad, número bits del dato, paridad y bits de parada) SI ESTOS DATOS NO COINCIDEN ENTRE EL TRANSMISOR Y EL RECEPTOR, LA COMUNICACIÓN NO VA A FUNCIONAR.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:XBEE PRO + PIC + CCS DESDE CERO
« Respuesta #3 en: 03 de Febrero de 2019, 08:49:21 »
No es necesario que tengan el mismo cristal, solo que respeten las velocidades. Si hay una diferencia entre velocidades podrias llegar a tener problemas con el envio de tramas largas.

Desconectado darkaice

  • PIC10
  • *
  • Mensajes: 6
Re:XBEE PRO + PIC + CCS DESDE CERO
« Respuesta #4 en: 05 de Febrero de 2019, 00:02:20 »
Hola compañeros he estado buscando  todo el día y no encuentro la forma de hacer que esto funcione.
contacte a la ayuda tecnica de DIGI y esto fue lo que me respondieron:
//*******************************************************************************\\
cuestionamientos:
Hi, may name is DARKAICE and a am trying send some charters by 2 xbee modules (pro s2b) this is the conections between a MCU PIC18F2550 and XBEE at the moment bouth xbee are configurated like coordinator AT and routher AT 2550axbee.png
 for now i want sent a string and watching on XCTU. but only watch weird symbols and my string is lost.
 can you help to me? 78Y80XBEE.png

respondieron esto:
Thank you for contacting Digi.  If this is not what your application is sending, then either you have a baud rate mismatch or a voltage level issue on your TX/RX lines.
Sincerely,
Eric Flanders
Digi RF Technical Support 

//*******************************************************************************\\

básicamente me dijeron que los símbolos raros que aparecen en el XCTU se puede deber a 2 cosas:
1 tiene una discrepancia en la velocidad en baudios
2 un problema de nivel de voltaje en sus líneas tx rx

¿Alguien ha hecho exitosa mente una comunicación entre MCU Y XBEE en ccs? y si es asi, podría dar detalles de como replicarlo.
me refiero a que comparta su código, su diagrama de conexión.

saludos




Desconectado darkaice

  • PIC10
  • *
  • Mensajes: 6
Re:XBEE PRO + PIC + CCS DESDE CERO
« Respuesta #5 en: 05 de Febrero de 2019, 03:31:59 »
Hola compañeros, metí un código como el que esta en la imagen (programaarduino) y el resultado fue completamente satisfactorio como se muestra en la imagen (holaarduino) con esto me aseguro que ninguno de los XBEE que he estado usando esta dañado o defectuoso, (es un alivio porque están muy caros y comenzaba a creer que alguno de ellos estaba dañado)

Pero si es decepcionante que en Arduino halla quedado a la primera la transmisión de datos.

ahora ya es personal, les solicito su apoyo para hacer que los pics18f2550 transmitan una señal por medio de xbee y que sea legible.

¿¿¿¿ALGUNA IDEA?????

saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:XBEE PRO + PIC + CCS DESDE CERO
« Respuesta #6 en: 05 de Febrero de 2019, 09:09:50 »
Poco a poco lo vas descubriendo....

Si el XBEE unicamente le envias datos que el otro PIC recibe... entonces podes probar conectar los 2 PICs solos. Si estos envian y reciben correctamente, entonces los baudios son correctos.

Y el problema lo tenes en los niveles de tension.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re:XBEE PRO + PIC + CCS DESDE CERO
« Respuesta #7 en: 05 de Febrero de 2019, 09:33:57 »
Usa printf("Hola mundo"); en vez de putc
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado darkaice

  • PIC10
  • *
  • Mensajes: 6
Re:XBEE PRO + PIC + CCS DESDE CERO
« Respuesta #8 en: 05 de Febrero de 2019, 10:20:13 »
Hola KILLERJC gracias por tu interés y tus sugerencias, ya hice una comunicación entre dos pics 18f2550 serial de forma alambrica, el programa y el diagrama están en el archivo simulacion.zip mas arriba; lo he corrido en proteus y hecho físicamente y si funcionan en ambas partes.

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
OBSERVACIONES realizadas en el circuito de comunicación serial por cable.
                             
Cuando cambie el cristal de un pic18f2550 a 4MHZ y deje el otro pic con un cristal de 8MHZ la comunicación por cable dejo de funcionar aunque en los pics tenia configurado 9600 baudios

porque solo con cambiar el cristal junto con las lineas delay(4000000) en vez de delay(8M) y no modificar algo mas en el código, la comunicación entre estos dos pics deja de funcionar??????

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
por otra parte voy a implementar el printf en lugar del putc
también voy a ver los voltajes de alimentación y colocar fuentes separadas y a hacer mediciones.

saludos.
« Última modificación: 05 de Febrero de 2019, 10:27:37 por darkaice »


 

anything