Consejos para interconectar varios PICS 16f877a por puerto serie

Hola a todos les comento cual es mi duda:

programo en .asm
programa: MPLAB

*Quiero interconectar varios PIC'S 16f877a por puerto serie, es decir habra un modulo principal que recibe la informacion de los demas modulos individuales.

*Al momento de montar la simulacion en proteus y conectar los modulos individuales al mismo pin de recepcion del modulo principal este se bloquea y no me muestra los datos.

Lo que pido son consejos o ideas para tener en cuenta al momento de realizar la transmision y evitar el problema del bloqueo del modulo principal, ademas quiero evitar combinacion de datos, es decir mientras un modulo individual esta enviando informacion , esta no se mezcle con la informacion de los otros modulos. Como dato extra el modulo principal recibe informacion de un modulo individual a la vez.

Gracias por tomarse la molestia de leer este post y bienvenidos todos los comentarios.

saludos.
 
Hola, pudiste hacer la comunicacion serie entre los pics en isis?
pregunto porque un amigo trabajaba en un proyecto en que tenia dos pics 16f877 que se comunicaban por rs232 y funcionaba todo menos la comunicacion, y en la realidad si le andaba.
 
Hola, la simulacion que tengo en el isis puede simular la comunicacion entre un modulo individual y el principal, por medio del puerto serie de los pics es decir solo uso RC6 y RC7, mi problema radica cuando conecto otro modulo a la misma terminal de recepcion del modulo principal, no cuenta se bloquea, aun asi le siga mandando mas datos..:cry:
saludos.

Alguno me puede orientar, he leido algo acerca de comunicaciones entre esclavo y maestro pero no entiendo muy bien,en este caso mis modulos individuales que serian maestros o esclavos? lo pregunto ya que el pic principal solo lee los datos que le envian los demas pics.
agradeceria cualquier aporte....
 
Última edición:
RS232 es un protocolo punto a punto... es decir solo puedes transmitir de un unico lugar a otro unico lugar

Si necesitas transmitir de un maestro a varios esclavos tienes que usar RS422 o mejor aun RS485 que es un estandar industrial muy usado y ademas soporta de multiples maestros a multiples esclavos... y practicamente no hay cambios de software de RS232 a RS485,

O si la comunicacion es en cortas distancias es mejor usar I2C

Ahora... aclarando tu duda... el maestro es el PIC que coordina toda la informacion, usualmente tambien es el encargado de mantener el reloj si el protocolo lo exige, usualmente un maestro manda una orden por el bus y espera hasta que el esclavo le responda, pero en algunas ocasiones algunos esclavos estan autorizados a enviar informacion sin esperar la orden

El esclavo es el que obedece al maestro... normalmente ejecuta su proceso individual y mantiene los resultados hasta que el maestro se los solicite...
 
Gracias por responder Chico3001, me parece bastante apto el protocolo rs485, en mi caso el modulo principal solo recibe informacion de los modulos individuales, mientras que estos solo transmiten informacion no necesitan recibir, mi pregunta es: ¿ como conecto los max485 a los pics16f877a y como seria un ejemplo en la programacion para poder usarlos? programo en leguanje ASM y uso MPLAB. Aclaro, mi modulo principal solo recibe informacion no necesita transmitir y los modulos individuales solo transmiten no necesitan recibir. Cualquier ayuda o comentario es bienvenido. Saludos.
 
Forzosamente alguien tiene que coordinar todas las comunicaciones o tendras casos donde varios esclavos hablan al mismo tiempo... asi que ambas partes deben poder transmitir y recibir, a menos que le pongas su linea dedicada a cada esclavo para que pueda enviar los datos....
 
*Al momento de montar la simulacion en proteus y conectar los modulos individuales al mismo pin de recepcion del modulo principal este se bloquea y no me muestra los datos...
La conexion fue directa ? esto es, de los pines de salida de los micros al unico pin de entrada en el micro "master" ?
Si es asi, menos mal, que era simulado, en la vida real hubieras puesto en conflcito todos los micros. Para poder interconectar los puertos seriales de los diferentes micros lo haces mediante una compuerta lógica OR con tantas entradas como puertos seriales "esclavos" hayan. Esto evitar conflictos a nivel hardware pero queda otro problema por resolver: que dos o mas micros envien simultaneamente datos, lo cual dañaria los datos, pero eso tiene otra solucion.

Saludos
 
Gracias a todos por responder, si los conectaba directamente ese era el problema, pero ya lo solucione con el protocolo rs485!, gracias a todos otravez!
 
Atrás
Arriba