RS232 problema envio PC a PIC

Estoy realilzando un proyecto en el que deseo usar comunicación por el puerto serie con un PIC 16F876. Utilizo el hyperterminal para probar la comunicación. La transmisión de la información del PIC al PC me va perfectamente, pero cuando quiero ennviar del PC al PIC, no consigo que el programa funcione en el chip. En cambio, el programa en el proteus me va sin problemas.

Dejo código que uso en la recepción:

INTER btfss PIR1,RCIF ;¿Interrupcion por recepcion?
goto VOLVER ;No. Falsa interrupcion
bcf PIR1,RCIF ;Si. Reponer Flag
movf RCREG,W ;Lectura dato recibido
movwf PORTB ;Visualiza dato recibido

call PDelay ;espera 2 segundos
call PDelay
clrf PORTB ;Borra el dato en PortB


VOLVER retfie ;retorna de la interrupcion.

Esto es haciéndolo por medio de interrupciones

No se me ocurre donde puede estar el error, lo que más raro me resulta es que en el proteus me vaya perfectamente, y cuando lo progrma no haga nada. Si alguien me pudiera ayudar se lo agradecería mucho.

Saludos, Kartelo.
 
Hola, por el lado del circuito revisa si llega alimentacion, si esta a Vcc el MCLR, si el cristal esta oscilando.
Por el lado de la grabacion del micro verifica si los fuses (tipo de oscilador, wachdog, etc) estan bien definidos.
Saludos
 
He estado analizando con el osciloscopio la salida del pc, cuando envio algo desde el pc hacia el pic, al pic le llega la señal (previo paso por el MAX), pero le llegan pulsos de 2,5 voltios, imagino que siendo TTL, deberían ser 5. ¿alguien me lo puede confirmar?

Saludos.
 
He estado investigando, para probar el funcionamiento puenteo las salida con el entrada que va desde el MAX al PIC, y miro que en el hyperteminal me funcione. Es curioso, porque me funciona si no le suministro tensión, en cuanto le pongo la tension TTL con la fuente de alimentación, me deja de funcionar.

¿Sabe alguien a que se debe esto?

Saludos.
 
He estado investigando

Lo primero que hice fue probar que el programa, que simplemente hace un eco, estaba funcionando correctamente, para comprobarlo lo que hice fué coger un generador de señales, y generar una señal cuadrada de 5v a 1250 Hz, introducirla por el RX del PIC, y lo que me da es una 'U' a 2400 baudios en el hiperterminal, esta prueba me funcionó a la perfección, pude comprobar que el programa funciona.

Lo siguiente que hice fué volver a montar todo, es decir, el montaje para el normal funcionamiento, y mirar con el osciloscopio la señal que le llega al RX del PIC proveniente del MAX, y cual fue mi sorpresa al ver que esta solo variaba entre 0 y 3v. por lo tanto, el PIC ni se entera.

Di un paso más y decidi observar que señal llegaba al MAX desde el RS232, y me sorprendio bastante porque en vez de variar entre -12 y +12 voltios (que es como tengo entendido que funciona el puerto serie), variaba en un rango mucho mayor. Parece que el puerto serie esta mal (lo cual me parece raro). El próximo día quiero ver si el PC tiene algun otro puerto serie, o ver si me consigo un conversor USB-RS232y probar si así me va bien.

En conclusión. ¿qué opinan?, alguien sabe porque pasa esto, le ha sucedido algo similar, o puede darme cualquier tipo de información al respecto.

Gracias, y saludos. Ya seguiré contando lo que me vaya sucediendo.

PD: A continuación pongo el montaje del MAX233, es bastante simple:

Max233sch.jpg

Además tengo un condensador de 1uF de Vcc a tierra
 
Hi kartelo,
checaste el cable serial sin conectar o conectado a tu tarjeta?
y los capacitores entre c1 y c2 no los colocaste?

:)

ok es 233 no 232, me confundi...
 
Última edición:
Buenos días,

Habia dejado el tema un poco apartado pq lasemana pasada estuve liado, y le lunes lo retome, y encontré el problema en cuestión de minutos.

La solución resultó la mas obvia. Resulta que se habia partido un cable de la protoboard, a veces hacia contacto y daba cosas (raras) y otras no, cambiar el cable, y listo. Me habia obsecado probando multitud de opciones, y debi empezar por lo básico. En cuanquier caso me sirvío para trastear un poco con los equipos del laboratorio y probar cositas.

Saludos y gracias a todos.
 
Atrás
Arriba