TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: maser84 en 01 de Julio de 2004, 21:09:00

Título: ayuda con hserin y hserout para un proyecto
Publicado por: maser84 en 01 de Julio de 2004, 21:09:00
Bueno mi idea es aprender a usar bien los comandos hserin y hserout entonces necesitaria a alguien con la voluntad y si podria enceñarme lo que intento hacer despues de aprender es tener un PIC16F877A como microcontrolador maestro del cual sus señales o pines de puerto serie sean un bus de datos al cual se encuntren conectanos otros pic por ejemplo PIC16F877A y PIC16F84A este pic maestro manejara las entradas y salidas de cada uno de los pic esclavos y a la vez no se como enviara los datos a un pc para monitorear el estado general de la red de micros sus salidas y sus entradas, los micros esclavos tendran pequeños programas que ayudaran al pic master a disminuir su trabajo.
Pero claro primero debo enpaparme de sirtos comandos del PBP
otra cosa

el pic maestro podria ser programado o reproramado rapidamente con un bootloader y eso es otra pregunto de como haria yo para decirle al PBP que el micro ya se encuantra programado y que tiene un bootloader para que no halla conflictos al tratar de escribir el programa y este no se encriba encima del bootloader
otra cosa esta red debe ser de alta velozidad coal seria la maxima velozidad usando estos micros?

si alguien tiene una ayuda lo agradeceria

Título: RE: ayuda con hserin y hserout para un proyecto
Publicado por: Abago en 01 de Julio de 2004, 21:40:00
para poder activar el bootloader, solo tienes que poner la siguiente linea al principio del programa

DEFINE LOADER_USED 1

con esto lo que haces es bloquear la parte de memoria definida para el prograama loader...

Título: RE: ayuda con hserin y hserout para un proyecto
Publicado por: Abago en 01 de Julio de 2004, 21:49:00
Sobre el tema del hserin/hserout...
pensando en el 16f877A, vas por buen camino...
solo tienes que configurar los datos para hacer la comunicación serie...
la comunicación, ya depende de lo que quieras complicar el programa...
Si quieres comunicación sin control de flujo... es muy sencillo de manejar...
si quieres control de flujo.... lo complicas un poco mas...

en segundo lugar... hay que tener en cuenta que lo que quieres, es que ambos circuitos hablen entre si... por lo que deberás crearte un pequeño protocolo, para gestionar los posibles errores de comunicación, y el entendimiento entre ambos...
algo asñi como una comunicación humana....
1.- hola, que tal estas???
2.- bien, y tu???
3.- yo tambien...



primer problema que he detectado en tu consulta...
el 16f84, no tiene usart, por lo que no podrás usar el hserin/hserout... tendrías que usar serin/serout con su correspondiente configuración....
pero el problema, es que estos comandos ocupan muchísimas words... y se coment el tamaño de programa a la primera de cambio...

para solucionar el problema, te recomiendo que busques pics con usart para tu proyecto.

Título: RE: ayuda con hserin y hserout para un proyecto
Publicado por: Leonsport en 02 de Julio de 2004, 13:40:00
Yo necesito algo de estos comandos también para una hacer una placa de adquisicion de datos por rs232.
El comando hserin con q parametros hay q definirlo?
HSERIN {paryty label}{timeout label},{item...} esto lo ví en el manual de pic basic pero no lo tengo claro.
Mi intención es hacer la placa para ver el estado de interruptores,leds,sensores....
Si teneis algun ejemplo de este comando q me aclare como utilizarlo mejor.
salu22222

Título: RE: ayuda con hserin y hserout para un proyecto
Publicado por: Abago en 02 de Julio de 2004, 22:27:00
La función Hserin, no precisa de parámetros...
son opcionales...
hserin[variable]
hserout["EL VALOR DE LA VARIABLE ES: ",varable]

tan solo hay que definir al principio del programa, los registros de:
* Estado de recepción/transmisión habilitada
* Baudrate
* Paridad
el formato de transmisión es el standart... 8N1

el timeout,label utilizado en el hserin es util en caso de necesitar estar a la espera de recibir datos.... en caso de que pase el tiempo de recepción, hserin, salta a la etiqueta seleccionada...

Título: RE: ayuda con hserin y hserout para un proyecto
Publicado por: RGL en 04 de Julio de 2004, 06:39:00
Para ajustar HSERIN HSEROUT tienes que usar los define siguientes:

DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h "BRGH a 0 para 2400,-->20, para 9600 ponerlo a 24
DEFINE HSER_BAUD 9600 "Velocidad de transmision 9600

Luego transmites y recibes con el comando que te ha explicado Abago.

Saludos
Ricky
Madrid-Espa~a
Título: RE: ayuda con hserin y hserout para un proyecto
Publicado por: maser84 en 04 de Julio de 2004, 21:43:00
Bueno gracias por sus respuestas me sirvierosn de mucho, pero al iguial que algunas personas de este foro yo les pediria el favor de explicarme detayadamente los comando de hserin y hserout con diferentes ejemplos y explicaciones para asi poder ablar todos el mismo idioma me han comentado de que cree un bufre de datos, pero no se como al igual queria decirle cual es la maxima velocidad de comunicacion con los hserout y hserin.
Una explicacion mas detallada es que cada micro de la red posee una identificacion entonces el protocolo de datos seria asi sin control de flujo

1.enviar la identificacion del micro
2.responderia si se encuantra en la red
3.envio de identificacion del micro y pregunta del master acerca del dato que decee.
4.contesta del micro slave hcia el mater
5.el micro master empiesa la trasmmision por el mismo bus de datos hacia el pc de momitoreo devariables (entradas y salidas)
6.los datos de salida que se decen variar seran enviados del pc al pic master y este a su vez transmite a los slaves correspondientes

otras de las preguntas que me hago es si a la vez por este bus de datos podria reprogramar en pic master o cualquiera de estos como haria yo para solo reprogramar el que yo quiero y que no contesten otros pic slaves necesitaria alguien que me diera una idea de hacer esta red pues yo tenia en mente que el master tiene resepcion y emision lanzar una trama o como la llamo yo el bus de datos y los slaves estarian todos en paralelo a este bus pense yo que esto seria lo mas facil pero realmente funcionaria bien si alguien puede ayudarme se lo agradeceria


otra pregunta seria cual bootloader usar?

y todos los pic serian con usart por supuesto

las personas que decean tomar cualquiera de mis preguntas le agradeceria la idea es colaborarnos cada persoan puede hacerce a una pregunta que domina mas digo yo


Gracias
Proximamente envio un documento mas expicativo
Título: RE: ayuda con hserin y hserout para un proyecto
Publicado por: RGL en 05 de Julio de 2004, 03:55:00
Vas por buen camino.

La idea la tienes clara. Te falta organizar los comandos que necesitas para la transmisión y recepción del protocolo. Bien en este punto tienes que hacer la siguiente reflexión:

En este sistema de comunicaciones tienes una capa física: el hardware y una capa lógica: el protocolo.

En cuanto al hard, estás describiendo la necesidad de un bus 485 o un CAN bus. Ambos son diferentes en funcionamiento y velocidad pero se asemejan en los problemas que solucionan. Ambos son un montón de nodos (32, 128 o 256) que cuelgan de 2 o 4 hilos en paralelo y llegan una considerable distancia hasta 1200 m nominalmente. Si tienes una comunicación a corta distancia puedes usar I2C. Debes elegir el sistema Hard más apropiado. Yo he usado 485 en este tipo de comunicaciones y va muy bien.

El protocolo ya lo tienes pensado, tienes que pasar a definirlo completamente. Te aconsejo que cacharrees un poco con la puerta serie para ir tomando contacto del modo que se pueden ir haciendo las cosas. La puerta serie , al igual que todo, se aprende pegandose con ella. Creo que a todos nos ha pasado lo mismo. Puedes ver los ejemplos de comunicaciones que hay en www.melabs.com que parecen sencillos pero son la base del funcionamiento de cualquier proyecto de este tipo.

Te aconsejo unas pruebas entre un micro y el hiperterminal de Windows o cualquier otro terminal. Ahí verás con ejemplo s prácticos el funcionamiento y se te irá el miedo. después prueba con el interfaz de comunicaciones 485 o can y así. Los proyectos pueden dividirse en microtareas tan pequeñas que son fáciles de hacer, pero si pretendes abarcar todo el proyecto de golpe y no tienes experiencioa en ese tema te puede resultar complicado.

Puedes luego probar la comunicación entre el maestro y el esclavo a nivel TTL por la puerta serie de ambos micros, sin los adaptadores de linea para ver como te comunicas y estableces el protocolo.

Saludos
Ricky
Madrid-España