fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Comunicación serie ...
 
Avisos
Vaciar todo

Comunicación serie entre PIC y PC en ASM

48 Respuestas
12 Usuarios
0 Reactions
41.4 K Visitas
mif
Respuestas: 1095
 Mif
Topic starter
(@mif)
Noble Member
Registrado: hace 19 años

Este hilo lo abro, porque no hay ninguno asi en el foro, y además de necesitar ayuda, pretendo resumir aqui lo que implica este tipo de conexión.

Materiales que nos hacen falta:
-Un pic, preferiblemente con USART, yo empleo un 16F876
-Un ordenador con puerto serie, o un adaptador USB Serie
-Max232 o 233 conectado del siguiente modo:

-Los componentes que necesitamos para hacer que todo esto funcione, especificados tb en el esquema.

Además de esto, para realizar la comunicación entre PC y PIC, debe haber un programa en el PC para comunicarse por RS232, y otro en el PIC para que haga lo mismo, cada uno de ellos en sus lenguajes.

En el PC lo más rápido para probar es usar el hyper terminal, que viene en todos los windows del mundo. Más adelante adaptaré un programa de Visión artificial para que pueda comunicarse con el PIC via RS232 y mandar ordenes a un par de servos.

En el PIC he elegido ensamblador, por costumbre. Peeero, aqui está mi problema, ¿cómo leches se configura el 16F876 para que haga esta comunicación? ¿Tenemos algun ejemplo básico de comunicación con este micro? Hay mucha información en internet, pero siempre de programas demasiado complicados para lo que tiene que ser, o muy mal explicados, o programas en los que se saltan la configuración...

en fin, que para seguir con mi proyecto necesito una ayuda de alguien que sepa cómo hacerlo, asi, además de desatascarme, conseguimos hacer un hilo aclarativo de este tipo de comunicación.

Muchas gracias por vuestra ayuda.
Ángel.

Responder
47 respuestas
acicuecalo
Respuestas: 652
(@acicuecalo)
Honorable Member
Registrado: hace 19 años

Con lo fácil que es usar un compilador que tenga alguna instrucción para envío y recepción de datos por puerto serie...
En esta página tenéis un compilador de prueba del pic basic pro de melabs, que tiene instrucciones de ese tipo, tanto para comunicaciones con emulación por software para pics sin usart como instrucciones para comunicaciones usando el hardware usart:
http://www.melabs.com/pbpdemo.htm

Responder
mif
Respuestas: 1095
 Mif
Topic starter
(@mif)
Noble Member
Registrado: hace 19 años

si, la verdad es que hay veces que usar ensamblador es un poco desesperante, pero cuando consigues que las cosas funciones te dices... ¡queeeeeeee guapooooo! y sientes que lo has hecho tu, y lo has entendido a fondo... bueno, al menos es lo que me pasa a mi, que no soy un experto en esto, casi estoy empezando...
Esta noche la dedicaré a arreglar esos problemills de comunicación, que sospecho que se deben al error que comentaba Mosvack:
Hola Mif
Como "X" debe ser un número entero, elegimos 15... pero, al no ser el número exacto, cometeremos un "error" en los 9600 baudios que habíamos planeado tener... en este caso sale:

Velocidad = (10*10^6)/(64*(15+1)) = 9765.625 Baudios

Dependiendo del sistema, este pequeño error será tolerable o no... puedes jugar con los parámetros de la fórmula, cambiando el cristal y el valor del bit, a fin de obtener un número lo más cercano posible a un entero... no obstante, los errores que se obtienen en la mayoría de los casos son despreciables...

Os informaré sopbre el tema.
Acicuecalo, algun dia tendre que dar el paso, porque es mucho más cómodo programar en C o Basic, pero entiendo que es mejor hacerlo cuando lo tienes dominado, y sabes lo que esta haciendo por debajo... ¿no crees?
¿En qué sueles programar tu? he hecho cosillas en CCS y MikroBasic, pero no se por cual decidirme...

Responder
acicuecalo
Respuestas: 652
(@acicuecalo)
Honorable Member
Registrado: hace 19 años

Yo uso Pic Basic Pro, con el Microcode Studio.

Responder
mif
Respuestas: 1095
 Mif
Topic starter
(@mif)
Noble Member
Registrado: hace 19 años

Ok, cuando me decida a dar el paso me lo pensaré seriamente...
Mientras tanto...
Alguien puede decirme por qué al mandar datos por rs232 en el micro muchas veces leo datos erroneos? cómo puedo corregir esto? puede ser debido al error que comenté antes?

Responder
juliovmd
Respuestas: 202
(@juliovmd)
Ardero
Registrado: hace 20 años

Hola mif, has de esperar a que se vacien los buffers, si la comunicacion es bidireccional te sugiero que hagas un control de tramado para controlar errores.

Yo empleo actualmente Mikrobasic, sencillo, rapido y... lo mejor...barato!

Saludos

Responder
Página 2 / 10
Compartir: