Autor Tema: Conectar PIC en red? (Consulta)  (Leído 2447 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gabotronic

  • PIC12
  • **
  • Mensajes: 57
Conectar PIC en red? (Consulta)
« en: 18 de Agosto de 2004, 14:50:00 »
Amigos:
Alguien sabe (o si lo ha hecho mejor), como conectar varios pic (con comunicacion 232 o similar) en red (485, 232, etc) a una puerta serial del PC. Me imagino que será con un conversor 232/485 o algo por el estilo.
Saludos y Gracias de antemano.

Desconectado gauchosuizo

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 457
RE: Conectar PIC en red? (Consulta)
« Respuesta #1 en: 19 de Agosto de 2004, 01:01:00 »
hola gabotronic

Vos podes conectar varios PIC"s juntos con la RS485. Yo estoy trabajando en un proyecto en el que se comunican dos Pic"s mediante la RS485 y con el protocollo Modbus. En la pkagina de Pacalaconcurso hay un projecto con la RS485 y Modbus muy bien explicado. Asi que para empezar miraria ahi.
El protocolo lo puedes escribir tu mismo, si quieres!

Espero que te ayude.

Aloha
Saludos desde Suiza, Pablo.

Desconectado Tec_Claudio_Perez

  • PIC12
  • **
  • Mensajes: 62
RE: Conectar PIC en red? (Consulta)
« Respuesta #2 en: 19 de Agosto de 2004, 17:55:00 »
Hola,,
Existe un pequeño truco de hardware para que 4 pics compartan un solo enlace RS-232 a una PC (Esto lo publicaron en la PicList):

How to have four PIC16F87x chips on one RS232 bus

Hi, I am investigating the possibillity to have 4 PIC 16F877 connected
to the same PC on a RS232 "bus".
I am using MAX220CPE, can they be connected in parallell or will they go
up in flames ?

> -----Original Message-----
> From: pic microcontroller discussion list
> [mailto:PICLIST@MITVMA.MIT.EDU] On Behalf Of Bob Ammerman
> Sent: Tuesday, 3 July 2001 9:53 a.m.
> To: PICLIST@MITVMA.MIT.EDU
> Subject: Re: [PIC] RS232 BUS ?
>
> If all of the following are true:
>
> - The PC is going to act as a master
>
> - The F877"s will only speak when spoken to
>
> - The F877"s are physically close to each other (ideally sharing the same
> power supply).
>
> Then there is a low-cost simple way to be your network...
>
> Take the TD signal from the PC and route it thru the RS232 to TTL channel of
> the MAX220 to the RD signals of all four PICS.
>
> Connect a signal diode (IN4148 is fine) from the TD pin of each of the PICs
> to the TTL to RS232 channel of the MAX220. The cathode of the diode should
> be connected to the PIC pin.
>
> Connect a 10k resistor from the junction of all the diodes with the MAX220
> pin to the positive supply rail.
>
> Connect the output of the TTL to RS232 channel of the MAX220 to the PC.
>
> All the F877"s will be able to "hear" the PC.
>
> The PC will be able to "hear" any F877.
>
> As long as only one F877 at a time "talks" everything will be well.
>
> If more than one F877 tries to talk at the same time the PC will get garbled
> data, but no hardware damage will be done.
>
> Bob Ammerman
> RAm Systems


Si no te llevas bien con el inglés paso a explicarte: las lineas RX de cada micro se conectan a la salida RXOUT del MAX, en cambio a las lineas TX se le agrega un diodo en serie, para que no se quemen si alguno envia un bit diferente, y ademas se agrega una resistencia de pullup de 10K, para mantener por defecto la linea en 1.

Otra posibilidad es convertir las salidas TX de cada micro a open collector, usando un buffer de un 7407, luego a las salidas se le agrega un pullup y de ahí va directamente al TXIN del MAX.

Cualquiera de los circuitos anteriores permite que el hardware no se queme si se activan mas de un TX a la vez. Sin embargo la información si se corrompe, es decir que hay que utilizar algun tipo de mecanismo que evite esto. La forma mas comun es hacer que todos los micros sean esclavos, y la PC el maestro. Los micros por defecto no envian nada, a menos que se lo pida expresamente el maestro. A cada micro se le asigna una direccion. La PC envia 3 bytes, el primero con la direccion del esclavo, el segundo con la funcion que se quiere realizar (leer o escribir), y el ultimo puede ser  el dato u otra cosa dependiendo de la funcion. Por lo general tambien se agrega un byte inicial que indica el inicio del paqute.
Lo primero que hace el esclavo es verificar si el byte de direccion coincide con su propia direccion, es decir verifica si le estan hablando a él, sino simplemente descarta el paquete y espera el próximo.  
De esta forma todos conviven de forma armoniosa.

Espero te sirva.

Téc. Claudio J. Pérez
interrupt_request@hotmail.com

Desconectado gabotronic

  • PIC12
  • **
  • Mensajes: 57
RE: Conectar PIC en red? (Consulta)
« Respuesta #3 en: 19 de Agosto de 2004, 18:18:00 »
Claudio, Pablo:
Muy agradecido por las respuestas. Me fueron sumamente utiles.

Saludos

Gabriel Correa