Autor Tema: SOLUCIONADO: Comunicacion RS232 CCS  (Leído 3648 veces)

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

Desconectado Ranculche

  • PIC12
  • **
  • Mensajes: 74
SOLUCIONADO: Comunicacion RS232 CCS
« en: 02 de Diciembre de 2014, 18:29:39 »
Hola a todos, estoy tratando de hacer funcionar una comunicación RS232 (para enviar datos a una PC) por software, de CCS. La cual debajo de los fuses declaro de la siguiente manera

Código: C
  1. #use rs232(BAUD=9600,XMIT=PIN_C3,RCV=PIN_C2,STREAM=Serie)

El problema que tenia en primer lugar, era que no recibía, supuse que era la placa, y cuando revise la pata 2 del conector DB9 con el osciloscopio, me encontré que el tiempo que duraba un bit era 1.04 mseg cuando en realidad debería ser 104 useg (todo esto hablando de 9600 baudios). Se me ocurrió agregarle un 0 mas y poner 96000. A partir de ahí empeze a recibir, pero no recibía lo que mandaba, cuando revise la trama, me di cuenta que era mucho las larga que lo que debería ser. La verdad no se que puede ser, pensé que podría ser el oscilador, pero igualmente no se porque es tan larga la trama, probé la uart por defecto del pic, y tambien funciona asi, por favor ayuda. A continuación dejo el simple programa que uso para probar la comunicación.


Código: C
  1. #include <18f4620.h>                    //PIC A UTILIZAR
  2.  
  3. #fuses xt,MCLR NOWDT, NOPUT, NOBROWNOUT, NOCPD, NOPROTECT                              //CRISTAL
  4.  
  5. #use delay(clock=10000000)               //A 10MHZ
  6.  
  7.  
  8. #use rs232(BAUD=96000,XMIT=PIN_C3,RCV=PIN_C2,STREAM=Serie)  
  9.  
  10. #USE FAST_IO (D)
  11. #USE FAST_IO (c)
  12. #USE FAST_IO (b)                    
  13.  
  14.  
  15.  
  16. main() {
  17. SET_TRIS_A( 0x02 );
  18. SET_TRIS_D( 0x00 );
  19. SET_TRIS_C( 0x88 );
  20. SET_TRIS_B( 0x00 );
  21.    
  22. char a='B';
  23.  
  24. while(1)
  25.         {
  26.         delay_ms(100);
  27.         fprintf(Serie,'B');
  28.         }
  29. }

PD: El cable usb-serie que uso lo probe puenteando la pata 2 con la 3 y verifique que funciona, y tambien lo use para compar las tramas, tanto la frec como la longitud

MUCHAS GRACIAS!

Saludos.-
« Última modificación: 04 de Diciembre de 2014, 14:56:48 por Ranculche »

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Comunicacion RS232 CCS
« Respuesta #1 en: 02 de Diciembre de 2014, 18:40:05 »
Cambia el fuse XT por HS.

Pruebalo...


Comenta todas las sentencias Set_Tris
Y tambien las Use_Fast_io

Pruebalo...
« Última modificación: 02 de Diciembre de 2014, 18:42:38 por MGLSOFT »
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Comunicacion RS232 CCS
« Respuesta #2 en: 02 de Diciembre de 2014, 18:49:13 »
Me parece que te falta la instrucción para trabajar por software, FORCE_SW, asi:

#use rs232(BAUD=96000,XMIT=PIN_C3,RCV=PIN_C2,FORCE_SW,STREAM=Serie)   
Nunca se deja de aprender

Desconectado Ranculche

  • PIC12
  • **
  • Mensajes: 74
Re: Comunicacion RS232 CCS
« Respuesta #3 en: 02 de Diciembre de 2014, 18:56:54 »
Gracias por responder tan rapidoooooo!! Pude solucionar lo de la velocidad con el fuse HS, pero sigo con el problema de el largo de la trama, Quiero manda una 'B' pero me manda como 60 bits!! ñññññññññññ, me parece muy raro

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Comunicacion RS232 CCS
« Respuesta #4 en: 02 de Diciembre de 2014, 19:09:59 »
Vuelve a poner tu código, a ver como quedo...

Usa Geshi y elige C
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Ranculche

  • PIC12
  • **
  • Mensajes: 74
Re: Comunicacion RS232 CCS
« Respuesta #5 en: 02 de Diciembre de 2014, 19:18:30 »
Hola! este es el codigo que quedo. Les cuento que probe poner la uart por defecto (rc6 y rc7) y usar la funcion putc, y anda bien. pero en esta funcion no puedo especificar la UART QUE ESTOY UTILIZANDO, ya que necesito mas de una. Asique supongo que no me esta funcionando la funcion fprintf o la estoy utilizando mal.

#include <18f4620.h>                    //PIC A UTILIZAR

#fuses HS,MCLR NOWDT, NOPUT, NOBROWNOUT, NOCPD, NOPROTECT                              //CRISTAL

#use delay(clock=10000000)               //A 10MHZ

#use rs232(BAUD=9600,XMIT=PIN_C2,RCV=PIN_C3,FORCE_SW,STREAM=Serie)  

#USE FAST_IO (D)
#USE FAST_IO (c)
#USE FAST_IO (b)                    



main() {
SET_TRIS_A( 0x02 );
SET_TRIS_D( 0x00 );
SET_TRIS_C( 0x88 );
SET_TRIS_B( 0x00 );
  
char a='B';

while(1)
   {
   delay_ms(100);
   fprintf(Serie,'B');
   }
}

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Comunicacion RS232 CCS
« Respuesta #6 en: 02 de Diciembre de 2014, 20:15:07 »
es correcto usar comillas simples ?

Aca en esto:
#use rs232(BAUD=9600,XMIT=PIN_C2,RCV=PIN_C3,FORCE_SW,STREAM=Serie)

En algunos veo que incluyen la paridad y los bits. Ejemplo sacado del foro:

#use rs232(baud=9600,parity=N,xmit=PIN_C5,rcv=PIN_C4,bits=8,stream=Dispositivo)

Desconectado Ranculche

  • PIC12
  • **
  • Mensajes: 74
Re: Comunicacion RS232 CCS
« Respuesta #7 en: 02 de Diciembre de 2014, 20:25:51 »
Si, Tambien probe eso  :(. Y cada vez me manda mas basura. Es una trama muy larga, no entiendo porque. Con comillas simple usando la UART fisica, y la funcion putc me funciona bien. En cuanto a las comillas tambien use:


char a='B';
fprintf(Serie,a)

y manda lo mismo.  :?

Desconectado Ranculche

  • PIC12
  • **
  • Mensajes: 74
Re: Comunicacion RS232 CCS
« Respuesta #8 en: 02 de Diciembre de 2014, 20:33:07 »
KILLERJC!!! Perdon, Retiro lo dicho!! Puse lo siguiente:

fprintf(Serie,"HOLa");

Y anduvo bien...
El Problema eran las comillas simples, que se usaría con funciones como putc.
Muchas Gracias a todos!!

Saludos!

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Comunicacion RS232 CCS
« Respuesta #9 en: 04 de Diciembre de 2014, 11:33:04 »
Si esta solucionado, por favor edita el titulo del tema y agrégale (Solucionado) así se enteran y no siguen contestando sobre el tema.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Ranculche

  • PIC12
  • **
  • Mensajes: 74
Re: SOLUCIONADO: Comunicacion RS232 CCS
« Respuesta #10 en: 04 de Diciembre de 2014, 14:57:21 »
OK!! Gracias por avisar.

Saludos.-