Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Comunicación dos pic16f87x con el protocolo USART

8 Respuestas
5 Usuarios
0 Reactions
5,668 Visitas
wallen1974
Respuestas: 5
Topic starter
(@wallen1974)
Active Member
Registrado: hace 18 años

Buenas noches,

Estoy intentando diseñar un programa para comunicar entre si varios pic 16f87x a través del protocolo USART. Es por ello necesitaría algún esquema de como se comunican dos pic, tanto hardware como el programa en lenguaje ensamblador.

Hasta ahora lo único que he conseguido es comunicar un pic con el pc utilizando el integrado MAX232. Supongo que también tendré que utilizar dos MAX 232, pero el programa. Como se identifica al Maestro y esclavo. Se utiliza interrupciones para detectar si el eslavo ha recibido un dato ... ??

Gracias de antemano

Un saludo.


Responder
7 respuestas
juanjo
Respuestas: 451
(@juanjo)
Ardero
Registrado: hace 19 años

Buenas,

No no tienes que usar ningún driver MAX, este chip es un conversor TTL/CMOS a RS-232 (-VCC, +VCC). Los dos PICs Seguramente tendrán una UART DTE (Data Terminal Ready), Puedes verlo por que el RING y el DCD son salidas. Los dos tendrán salidas TTL o CMOS, por lo tanto los puedes conectar directamente. Lo único que has de hacer es conectar la salida de uno a la entrada del otro. Es decir el RXD de uno al TXD del otro, el CTS del uno al RTS del otro, y el DSR al DTR. ( TXD, RXD son para la comunicación de datos), (RTS, DTS son para el control de flujo vía hardware) y (DSR, DTR son para indicar si los terminales están listos para comunicar, "control hardware también"). Te has de asegurar que el pin con input de un PIC va al pin Output del otro.

Si Te es necesario ahorrarte conexiones te recominedo que uses SSP, solo usa tres conductores (+ CS opcional) o de lo contrario usa el RS-232 sin control de hardware, tendras que poner los pines correspondientes a "1" o "0" según proceda localmente, en este caso tendrías solo dos conductores.

Sobre el software no puedo ayudarte mucho por que no he programado ningún PIC para usar el RS-232, lo que si te digo es que el SSP es muy sencillo de programar.

Saludos.


Responder
heli
Respuestas: 748
 Heli
(@heli)
Ardero
Registrado: hace 20 años

Como dice Juanjo, si los PIC están cerca el uno del otro no necesitas driver de ningún tipo, usa las señales TTL del PIC simplemente uniendo el pin TX de uno con el RX del otro y viceversa. No es obligatorio usar el resto de señales (RTS, CTS etc).
No existe marstro ni esclavo: es una comunicación de igual a igual, cualquiera de los dos puede transmitir y recibir en cualquier momento. Si quieres que uno de ellos sea el maestro basta con que sea el que inicie la comunicación y el otro se limite a responder, pero este roll se puede cambiar en cualquier momento por software.
Primero tienes que confgurar adecuadamente los parámetros de comunicación en los dos PIC, igual que si fueras a comunicar con un PC . Después cualquier dato que coloques en el registro TXREG de un pic aparecerá (tras un tiempo determinado por la velocidad de comunicación) en el registro RCREG del otro PIC y generará una interrupción si esta habilitada. Si no lo esta puedes comprobar el bit RCIF que indica, poniendose a 1, que hay un dato recibido.
Si sólo vas a usar dos pic y en la misma placa será más óptimo usar SPI o I2C, como también te ha dicho Juanjo.


Responder
beamspot
Respuestas: 1132
(@beamspot)
Noble Member
Registrado: hace 18 años

Creo que hay un pequeño detalle que debería quedar muy claro: dos micros no son varios. Me refiero a que si pretendes interconectar más de dos micros, el esquema que tienes no es válido, y tienes que empezar a usar otros métodos, como por ejemplo el RS-485 con protocolo ModBus.

Por supuesto, esto último también te permite conectar sólo dos micros, dejando margen para ampliar la comunicación a muchos más, y con la ventaja de ser un protocolo gratuito muy usado en el mundo industrial.


Responder
wallen1974
Respuestas: 5
Topic starter
(@wallen1974)
Active Member
Registrado: hace 18 años

Agradecer las respuestas ....

Es cierto, he modificado el asunto. Mi intención es conectar varios pic en una placa de control, estarán relativamente cerca entre si.

Mi duda es la siguiente: Que protocolo me recomendáis para establecer la comunicación entre todos los pic; SCI o USART, SSP (SPI) y SSP (I2C). La idea es que exista un Master y el resto los Esclavos.

Cierto es que he utilizado I2C y estoy bloqueado en un sitio (de hecho colgué en este foro la consulta pero nadie me ha respondido). Entonces pensé en otras posibilidades.

Donde puedo encontrar información sobre RS-485 Modbus aplicado a microcontroladores PIC

Muchas gracias,

Wallen


Responder
Página 1 / 2
Compartir: