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.5 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

Mif, lo que yo creo que te está ocurriendo es que tu estás enviando datos en binario a través del puerto serie, y has de tener en cuenta que el hyperterminal lo que hace es representar los caracteres correspondientes al código ascii (o la tabla de caracteres que elijas) del código binario en cuestión, y es por ello que muchas veces, si no se trata de letras en ese código, lo que aparece en pantalla es un conjunto de caracteres sin sentido.

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

Ya, eso si que lo sabia, y contaba con ello, de hecho siempre que trabajo con esto lo ahgo con una tabla ASCII, pero aun asi, manda bastante basura, y no entiendo porqué... no dejo que pase ningfun dato mientras el bit RCIF del registro PIR1 me da paso

btfss PIR1,RCIF ;¿Ha terminado la transmisión?
goto Señales ;No, pues Continúa la ejecución normal ;Si, pues pone el nuevo valor en PosS1

pero aun asi, hay muchas veces, que manda basura... qué puedo hacer?
Además de eso, me he dado cuenta de que VS2005 trabaja con caracteres de la primera parte de la tabla ASCII, es decir, bytes desde el 0 al 127... qué hay de los demás valores? cómo los puedo mandar por el PC?

Bueno, parece que no hace nada, pero esto empieza a tomar forma, aunque aun le quedan unso dias para llegar a ser un buen control Pan & Til.

Gracias por las ideas

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

ahora tengo otra duda aun mas rara...
Porqué con Visual Studio, programando en VB solo envio caracteres que tienen los valores decimales entre el 0 y el 127? donde esta la otra mitad de la tablña ascii? para pasar un dato uso esto en VB
SerialPort1.Open()
SerialPort1.Write(Chr(180))
SerialPort1.Close()

pero el puerto solo envia un 127 como máximo, de modo que no cubro todo el rangop que necesito de resolucion para el servo, ya que necesito mandar datos entre 30 y 180.
Al mandar caracteres por Hyperterminal si que recibo la tabla completa de ASCII en el micro, pero no con VB... alguna idea?

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

Vale, creo que he encontrado el origen de todos mis problemas de comunicacion... el caso es que nunca me ha funcionado bien la comunicacion serie, y ahora que me tengo que poner con ello... me he puesto a mirar el cto... ¡joder si esque los condensadores del MAX estan montados todos del revés... putos condensadores de tantalo que la marca esta en la pata + y no en la -... joder, pues que la marca sea un + y no una raya que lo primero que te lleva a pensar es que es la -... ademas de eso el condensador que va entre la pata 2 y masa... por alguna razon decidi que tenia que ir entre la 2 y +V...
Entonces yo ahora me pregunto... y como es que de vez en cuando me funcionaba la comunicación?
ale, otra vez me podeis llamar inutil... ja ja ja

Responder
ionitron
Respuestas: 98
(@ionitron)
Trusted Member
Registrado: hace 19 años

yo pongo de 100nF sin polaridad y rula pm

Responder
Página 4 / 10
Compartir: