Comunicacion rs-232 con el PC

Hola, buenas. Estoy haciendo un diseño con el PIC16f628A. Concretamente esto.
Comunicacin - Prueba de conexin serie entre un PIC y una PC - Robots Argentina

Estoy utilizando el mismo PIC y el mismo diseño a excepción de los LEDs. Bueno contar que soy nuevo en esto de la programación de los PIC así que os explicaré lo que estoy haciendo.

Primero he montado el PIC como en el esquema anterior (ya digo sin los LEDs), pero el resto igual, con la misma configuracion que se indica (oscilador interno..). He conectado mi PICKIT3 al micro de la siguiente forma: PIN1 ->MCLR, PIN->2 VCC, PIN3->GND, PIN4->PGD y PIN5-> PGC, dejando sin conectar el PIN6 del PICKIT3 que es LVP . Aunque tengo dudas con esto. Porque MCLR esta desabilitado, entonces no conecto esa patilla al pickit3??

Así que enchufo MAPLAB, selecciono el PIC y meto el archivo .asm que nos dan en 'Source FIles' y el archivo .inc en 'Header Files'. Selecciono PICKIT3 como programador y enciendo el hyperterminal con la configuración que se indica.

Pero no va. El hyperterminal no marca nada. ¿Donde puede estar el fallo? ¿Qué he hecho mal?

Gracias de antemano!
 
aunque MCLRE este desabilitado debes conectarlo al pickit. hay varias cosas que no dices y no se si las estas haciendo o no, perdona si son demasiado obvias pero. . conectas el cable serie db9? programas el pic? ya te digo que perdona por si son cosas demasiado obvias. . . otra cosa puede ser que no selecciones bien el com adecuado.
Un saludo
 
Hola, lo primero gracias por las respuestas. Pablet, no te preocupes, es mejor que me digais las cosas aunque sean obvias. Ya digo que estoy empezando en esto e igual estoy cometiendo algún error de bulto y no lo se.

Bueno sigo sin ver nada en el hiperterminal pero he cambiado alguna cosa. Estoy utilizando un PIC18F242, basándome en este circuito. http://www.zonabot.com/electronica/2-comunicaciones/6-transmisierie-con-pic-16f84a.html. En mi caso la patilla que va al MAX232 es la RC6 (TX). Con dos patillas del DB9 conectadas, una al micro (patilla 2 del db9) y la 5 a masa. Con un par de condensadores entre masa y Vcc del pic (uno de 100nF y otro de 1uF electrolítico). Además estoy utilizando un cristal de cuarzo de 4Mhz y 2 condensadores cerámicos de 22pF casa uno como se indica en el datasheet. Además tengo el PICkit3 conectado como dije antes.

Lo conecto todo, compilo, eligo 'Program' en el menu 'debugger' del MAPLAB y le doy a 'run'. Voy al hiperterminal y eligo el puerto donde está conectado el DB9 y una configuración de 9600 bits/s, 8 bits de datos, paridad ninguna, 1 bit de parada y control de flujo: ninguno.

Pero eso, que sigue sin verse ningún dato. Os dejo el programa a ver si veis algun fallo porque me estoy volviendo loco. No se si he utilizado bien el tiempo de retardo, eso es cierto.

Gracias de antemano por la ayuda!

NOTA: aunque lo he incluido en 'header files' el P18F242.INC en el MAPLAB, si pongo..list p=18f242 #include <p18f242.inc> y le doy a compilar, se queda a mitad y no la termina de hacer y da un error. Así que he decido dejar el inicio del programa como.. list p=18f242 no list; como aparece en el .asm.
 

Adjuntos

  • P18F242.rar
    8.3 KB · Visitas: 24
hola! una pregunta, si estas en debug, debe estar habilitado el fuse del debug y no lo está, la verdad es que no se como se hace en asm pero porque en vez de hacer un debug no pruebas a programarlo y dejarlo correr a ver si asi funciona?
un saludo
 
Gracias por responder! He conseguido hacer que se vea algo en el hyperterminal. Pero solo son caracteres extraños esto es debido a los bits/s que he elegido en el hyperteminal o mis tiempos de retardo del programa estarán mal?

saludos.
 
si recibes caracteres extraños lo mas normal seria que la velocidad de ambos dispositivos no sea la misma, bien por la configuracion, o bien por que la velocidad del oscilador no sea la correcta. Otra opcion seria que se mete ruido en la comunicacion pero no es lo mas probable.
Un saludo
 
Hola lapot

Quise revisar tu codigo para ver exactamente es que dice Pablet, los parametros de configuracion de comunicaciones, es muy importante; revise el codigo y no es posible averiguar todos los parametros necesarios.

Son 8 bits de datos, un bit de parada pero la velocidad depende del cristal que estes usando. La otra es que pruebes valores diferentes para la velocidad.

Prueba tu software de PC con 300, 600, 1200, 2400, 4800, 9600 bps, 8 bits de datos, 1 de parada, sin paridad.

Saludos
 
Hola otra vez. Lo primero es daros las gracias a todos por vuestra ayuda. Esto por fin funciona aunque tengo que terminar unas cosas. He logrado después de mucho probrar y reprobar enviar el caracter 'E' de manera permanente al hyperterminal. Al final no he utilizado cristal externo, simplemente todo se solucionó cambiando el código a absoluto (lo tenía en rolocatable), ya veis... fallos de principiante supongo.

Bueno subo los archivos por si me podeis echar otra mano. El de envío caracter 'E' va perfectamente. Ahora lo que quiero hacer es enviar la palabra 'prueba' haciendo uso de una tabla. Aunque ese no he conseguido que me funcione todavia. Además el problema en el PIC que utilizo, el 16F628A, es que no viene implementada la función debugger.
O sea que si alguien me puede echar una mano sería de agradecer.

Cuando lo tenga hecho y funcione todo, subo el archivo por si alguien lo necesita en un futuro.

Saludos.
 

Adjuntos

  • rs232.rar
    1.5 KB · Visitas: 45
Atrás
Arriba