Autor Tema: RS232 con Proteus VSPE y Hercules  (Leído 239 veces)

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

Desconectado CoralGM

  • PIC10
  • *
  • Mensajes: 4
RS232 con Proteus VSPE y Hercules
« en: 17 de Mayo de 2020, 18:06:41 »
Hola amigos,
Buenos dias a todos.
Quisiera saber si alguien me puede ayudar a solventar un problema que tengo con la comunicacion RS232.
Estoy tratando de hacer un programa en donde todo corre bien, pero la transmision de datos mediante RS232 no la logro.
El puerto SI envia datos, mas estos son erroneos (Envio K y recibo F8F8)
Realmente no se si es un problema del simulador o no.
Agradezco la ayuda de ustedes y muchisimas gracias.
Les cuelgo el codigo y capturas.
Estoy usando proteus 8.8.
Solia trabajar con el 8.1 y no tenia ningun tipo de problemas,
no se si sea el simulador, o la programadora jaja..
Gracias

CODE:
#INCLUDE <16f887.h>
#device adc=10
#USE DELAY(CRYSTAL=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,NOPUT,NOLVP
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)

 
long bits;     //Variable almacena los bits
float tem;     //Almacena la temperatura
char caracter='K';
 
void main()
{
   set_tris_a(0b00000001);          //Pongo el RA0 como entrada
   setup_adc_ports(all_analog);     //Pongo todo el puerto a analogo
   setup_adc(adc_clock_internal);   //Selecciono reloj interno para conversion
   
   while(1)
   {
       set_adc_channel(0);          //Selecciono el canal 0 (RA0)
       delay_ms(1);                 //llamo retardo de 1 ms
       bits=read_adc();             //Guarde el dato del LM en tempe
       
       tem=bits*0.4882;              //Conversion de bits a temperatura
       //printf("\rLa Temperatura es: %2.3f C\r\n",tem);
       printf("%c",caracter);         //QUIERO ENVIAR SOLO ESTE DATO. DEBERIA RECIBIR K o DECIMAL 75 o 0x4B
       delay_ms(1000);
   }



Desconectado Eduardo2

  • PIC18
  • ****
  • Mensajes: 355
Re:RS232 con Proteus VSPE y Hercules
« Respuesta #1 en: 17 de Mayo de 2020, 18:43:34 »
....
El puerto SI envia datos, mas estos son erroneos (Envio K y recibo F8F8)
Realmente no se si es un problema del simulador o no.

Al terminal lo tenés listando en hexadecimal, de cualquier forma  'K' = 0x4E

El problema parece ser la configuración del terminal, yo a tu código lo copypego y sin tocar nada ejecuto:
 

* testcomm.jpg
(22.04 kB, 500x277 - visto 46 veces)


Terminal: 9600 8 N 1  Polaridad normal

Citar
Estoy usando proteus 8.8.
El mismo que yo

Desconectado CoralGM

  • PIC10
  • *
  • Mensajes: 4
Re:RS232 con Proteus VSPE y Hercules
« Respuesta #2 en: 20 de Mayo de 2020, 14:57:59 »
Hola Eduardo,
Muchas gracias por tu pronta respuesta, y disculpa mi tardanza.
Tengo problemas con la conexion a internet.
Te anexo la configuracion de mi terminar y de mi COMPIM para ver si das con el error.
Realmente tambien pienso que es eso, solo que no doy con la falla.
Ademas,  estando en Hexadecimal deberia ver el valor Hexadecimal de 'K', pero veo son otros valores.
Muchas Gracias por tu colaboracion.
Aqui te lo cuelgo

Desconectado Eduardo2

  • PIC18
  • ****
  • Mensajes: 355
Re:RS232 con Proteus VSPE y Hercules
« Respuesta #3 en: 20 de Mayo de 2020, 15:03:26 »
Hola!

Mejor subí el archivo en Proteus.

Desconectado CoralGM

  • PIC10
  • *
  • Mensajes: 4
Re:RS232 con Proteus VSPE y Hercules
« Respuesta #4 en: 20 de Mayo de 2020, 16:33:38 »
Eduardo aqui te envio el Proyecto de Proteus.
El codigo te lo habia anexado en el primer post.

Desconectado Robert76

  • PIC18
  • ****
  • Mensajes: 300
Re:RS232 con Proteus VSPE y Hercules
« Respuesta #5 en: 20 de Mayo de 2020, 16:38:38 »
Hola, Supe tener problemas con la comunicación UART. Al parecer el problema estaba en la versión del compilador.
Ante la situación decidí escribir directamente en el registro Tx para enviar.
Y leer el registro UART para recibir.
« Última modificación: 20 de Mayo de 2020, 16:42:00 por Robert76 »

Desconectado Eduardo2

  • PIC18
  • ****
  • Mensajes: 355
Re:RS232 con Proteus VSPE y Hercules
« Respuesta #6 en: 20 de Mayo de 2020, 16:54:32 »
Tenés mal puesta la frecuencia del procesador:
 

* rs232-test.jpg
(98.44 kB, 821x553 - visto 29 veces)


En el programa declarás 4MHz  -->  En lugar de 9600baud te va a sacar a 9600/4=2400baud  , como podés comprobar con el terminal a 2400


Ojo con las palabras de configuración y la seleccion de la fuente del clock,  a veces no importa en la simulación pero otras te la hace a diferente velocidad.

Las veces que he tenido problemas simulando la comunicación, conectando el osciloscopio virtual ves el real baudrate virtual ;)


Desconectado CoralGM

  • PIC10
  • *
  • Mensajes: 4
Re:RS232 con Proteus VSPE y Hercules
« Respuesta #7 en: 20 de Mayo de 2020, 17:30:02 »
MADRE MIA!!!!
Era eso?
Muchisimas Gracias!!!! Dios mio, habia revisado todo, menos eso.
Muchas Gracias a los dos por los aportes!


 

anything