TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: nacho687 en 18 de Agosto de 2013, 20:19:07

Título: Comunicacion entre varios PICs
Publicado por: nacho687 en 18 de Agosto de 2013, 20:19:07
Hola a todos. Soy nuevo en esto y tengo una duda con un proyecto. Quiero comunicar varios pic, 8 por ejemplo, con otro pic. Osea lo que quiero hacer es mandar el valor que tiene cada pic en un contador, a un solo pic "central" que recibe todos los valores y hace un calculo con ellos. ¿esto se podria hacer de alguna forma? ¿me podrian ayudar con alguna idea?

Muchas gracias
Título: Re: Comunicacion entre varios PICs
Publicado por: ppyote en 18 de Agosto de 2013, 20:33:06
hola bienvenido al foro nacho687
lo primero es pensar en la dintancia entre pic maestro y los pics esclavos, despues mirar la velocidad de trasferencia.... y asi muchas cosas....

si no necesitas de mucha velocidad y los pic estan cercanos al maestro, por usart puedes al igual que por spi.... este segundo gana algo mas de velocidad aunque la distancia se reduce :(

si estan distanciados los pics esclavos dem maestro, lo mejor son modulos Xbee por bluetooh

que tipo de pics vas a usar? danos alguna pista mas
Título: Re: Comunicacion entre varios PICs
Publicado por: nacho687 en 18 de Agosto de 2013, 20:59:26
muchas gracias por responder ppyote.. En cuanto a las distancias serian de dos o 3 metros, y no necesitaria mucha velocidad. En cuanto a lo de usart lo habia pensado, pero esto se podria hacer entre dos pics, no entre varios como quiero hacer, o estoy equivocado? lo que por ahi se me habia ocurrido era usar algun tipo de multiplexor para ir comunicando de a 1 pic con el pic central.
Y en cuanto al los pics no los tengo definidos todavia porque no se como se podria hacer.
Título: Re: Comunicacion entre varios PICs
Publicado por: Suky en 18 de Agosto de 2013, 21:05:48
Hola! Podes usar RS485 mas algún protocolo que te permita distinguir entre distintos esclavos... Lo podes armar vos uno sencillo.


Saludos!
Título: Re: Comunicacion entre varios PICs
Publicado por: RALF2 en 18 de Agosto de 2013, 21:26:11
Pudieras comunicar los pic como te dicen, via RS232, si utilizas el CCS por ejemplo seria bastante sencillo.   :mrgreen:

Pero que compilador piensas emplear?

Para que podamos darte alguna sugerencia de como hacerlo  :mrgreen:
Título: Re: Comunicacion entre varios PICs
Publicado por: nacho687 en 18 de Agosto de 2013, 21:29:26
Muchas gracias de nuevo. Uso el CCs
Título: Re: Comunicacion entre varios PICs
Publicado por: RALF2 en 18 de Agosto de 2013, 22:12:04
Bueno si empleas el CCS podrias hacer algo como esto:
Utilizar el FLOAT_HIGH (con esta instruccion deberias utilizar una resistencia de pull up, como en el I2C, evitas cortos y detectas colisiones en el buff   :mrgreen:), el RETURN y pudiera ser el MULTI_MASTER y asi podrias comunicarte por RS232  :mrgreen:
Esa es una forma pero no es la unica  ;-)

Revisa la ayuda del CCS alli lo explica mejor y puedes ir haciendo pruebas  :mrgreen:

Saludos
Título: Re: Comunicacion entre varios PICs
Publicado por: ppyote en 19 de Agosto de 2013, 03:27:42
Por I2C También se podría hacer, pero todo depende del los pic a usar
Título: Re: Comunicacion entre varios PICs
Publicado por: nacho687 en 19 de Agosto de 2013, 14:53:40
Por I2C También se podría hacer, pero todo depende del los pic a usar

Como lo podria hacer y con que pic?
Título: Re: Comunicacion entre varios PICs
Publicado por: ppyote en 19 de Agosto de 2013, 15:24:35
Lo primero que debes hacer es configurar la comunicación i2c al maestro, este se comunica por el mismo bus con todos los pic esclavos
cada pic esclavo tiene asignado un valor, el maestro va preguntando por el bus a cada valor de pic esclavo asignado
el esclavo sólo tiene que contestar, y una vez ha contestado, esperar un tiempo para evitar la colisión de datos... Y el maestro a volver a preguntar al siguiente valor de esclavo asignado... La comunicación i2c los dos cables llevan conectadas resistencias pullups...
En cuanto a lo de que pics usar, por software yo nunca he conseguido comunicar en modo esclavo y no se sí se podrá... O era spi? Ya no me acuerdo Jajaja
Título: Re: Comunicacion entre varios PICs
Publicado por: Suky en 19 de Agosto de 2013, 17:18:16
Para la distancia que se quiere utilizar evaluar la velocidad de I2C a usarse.


Saludos!
Título: Re: Comunicacion entre varios PICs
Publicado por: AKENAFAB en 19 de Agosto de 2013, 17:55:39
Yo iría con rs485

Saludos!
Título: Re: Comunicacion entre varios PICs
Publicado por: Picuino en 19 de Agosto de 2013, 19:39:56
Por lo que has descrito hasta ahora, parece que la red más adecuada sería una red lin:
http://www.ni.com/white-paper/9733/es/

Utiliza un maestro y muchos esclavos, velocidad relativamente lenta y hardware sencillo (se puede implementar con la uart).

Saludos.
Título: Re: Comunicacion entre varios PICs
Publicado por: Picuino en 19 de Agosto de 2013, 20:01:46
Si lo quieres hacer más fácil aún, puedes conectar todas las patillas Rx y Tx a un mismo hilo y conectar todas las masas entre sí (sólo te hace falta un bus de dos hilos)

Las patillas Tx deben estar todas inactivas (en alta impedancia o configuradas como entradas) y unidas al hilo mediante una resistencia (por si acaso, para que no haya cortocircuitos).

El maestro comienza la transmisión activando su patilla Tx y enviando un dato a un esclavo. Después el maestro desactiva Tx y espera al esclavo. En ese momento el esclavo activa su patilla Tx y envía el dato. Por último el esclavo desactiva su patilla Tx y el ciclo puede volver a comenzar.
Es simple pero efectivo.

Saludos.
Título: Re: Comunicacion entre varios PICs
Publicado por: Picuino en 19 de Agosto de 2013, 20:10:11
Para evitar el ruido eléctrico puedes poner una capacidad entre la patilla Rx y masa de cada uno de los pic.
También hay que llevar a positivo la línea conectando una resistencia de 1kohm a Vdd para evitar que quede al aire al desactivar todas las salidas Tx.

Por ejemplo 10 pics unidos de esta forma, con una resistencia en Tx de 100 ohms y capacidades en Rx de 1nF podrían soportar con facilidad velocidades de 115kbauds.

Saludos.
Título: Re: Comunicacion entre varios PICs
Publicado por: RALF2 en 20 de Agosto de 2013, 00:22:18
Exacto picuino a eso me referia en mi post anterior   :D
Título: Re: Comunicacion entre varios PICs
Publicado por: nacho687 en 20 de Agosto de 2013, 12:40:54
Muchas gracias a todos. Voy a evaluar todas las opciones y ver que sale
Título: Re: Comunicacion entre varios PICs
Publicado por: KALLITOS en 20 de Agosto de 2013, 13:03:10
rs232
Título: Re: Comunicacion entre varios PICs
Publicado por: aqpic en 24 de Agosto de 2013, 12:17:06
yo tambien te sugeriria por rs232 con una configuracion de este tipo (si el numero de pics es fijo):

PIC-MASTER Pin-TX ---- Pin-Rx PIC-SLAVE1 Pin-Tx ---- Pin-Rx PIC-SLAVE2 Pin-Tx ---- (etc) ---Pin-Rx PIC-SLAVEN Pin-Tx ---- (regresa a Rx de PIC-MASTER)

Cada PIC-slave envia la info de este tipo. byte0 (PIC-ID), byte1(VALOR-DATO),byte(OTRO-VALOR)
Todos los retransmiten el dato hasta que llegue al PIC
Si el PIC-MASTER solo recibe los datos entonces se puede omitir el primer lazo.

Me parece q seria lo mas sencillo de implementar si no deseas meterte con SPI o I2C o buses con colector abierto en general.
suerte.