Autor Tema: ¿Cómo puedo comunicar dos 16f84?????????????????????????????????  (Leído 4053 veces)

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

Desconectado looplp

  • PIC10
  • *
  • Mensajes: 14
Hola amigos!!!
Haber si alguien me puede dar una manito. Les cuento que, necesito comunicar dos 16f84 que en un futuro van a estar en una sola placa (por el momento los tengo en 2 protoboards y por separado, funcionando con cristal de 4 Mhz). Uno transmite y el otro recibe, nada más!!!

La idea es que, el transmisor (PIC1), debe enviar 8 bits por el pin rb0 y el receptor (PIC2), los tiene que recibir si o si por algún pin del puertoA, por ejemplo ra3. Quiero hacerlo, en lo posible, sin utilizar interrupciones.
En base al dato transmitido por el pic1 (sean 8 o 10 bits que salgan por rb0) se prenderá una serie de 8 leds, conectados a los 8 pines del puertoB del pic2, el cual recibirá los datos por ra3 u otro.
Luego, ¿se necesita alguna resistencia o cable especial para esta comunicación entre pics?, por que más o menos, una idea del código tengo, pero del hard necesario, no.

Bueno, les agradecería cualquier tipo de información que me hagan llegar por el foro o por looplp@yahoo.com.ar

Saludos!!!


Desconectado pendexgabo

  • PIC16
  • ***
  • Mensajes: 222
    • www.SosaGabriel.com.ar
RE: ¿Cómo puedo comunicar dos 16f84?????????????????????????????????
« Respuesta #1 en: 15 de Marzo de 2004, 14:31:00 »
buenas, no se que lenguaje de programacion utilizas pero si utilizas CCS y dispones de dos pines podrias utilizar el protocolo de comunicacion I2C que es muy sencillo y no requiere mucha configuracion. en cuanto al hard de este protocolo solo requiere que esten conectadas las patillas entre si y unas resistencia al pull-up ese es todo el hardware. tambien tenes que tener en cuenta que la distancia entre los dispositivos no puede ser muy grande.

bueno espero que esto te sirva de algo saludos

Desconectado looplp

  • PIC10
  • *
  • Mensajes: 14
RE: ¿Cómo puedo comunicar dos 16f84?????????????????????????????????
« Respuesta #2 en: 16 de Marzo de 2004, 07:48:00 »
Hola Pendexgabo, gracias por responder!!!
Mira, el lenguaje que utilizo es el assembler y es como tú dices, la distancia entre ambos pics es muy poca (aprox 10 cm), ya que van a estar en una misma plaqueta. Para practicar, los tengo en 2 protoboards distintos, pero yo había arrancado a ver un poco del RS232, nada que ver, no???.
Me parece que arranqué para otro lado, así que te agradecería si me pudieras orientar un poco en este código, es decir, donde puedo obtener un poco de información o algo por el estilo. No es tan complicado lo que necesito, simplemente que un pic le pase al otro, un dato de 8 bits y  por un solo pin.
Bueno, desde ya muchas gracias por preocuparte por mi problema.
Un abrazo!!!
Gabriel.

Desconectado pendexgabo

  • PIC16
  • ***
  • Mensajes: 222
    • www.SosaGabriel.com.ar
RE: ¿Cómo puedo comunicar dos 16f84?????????????????????????????????
« Respuesta #3 en: 16 de Marzo de 2004, 08:10:00 »
como para comenzar aca tenes algo:

http://www.todopic.com.ar/asm/I2C/

aca un poco de teoria
http://www.pablin.com.ar/electron/cursos/i2c/index.htm

de todas formas si pones I2C en google vas a encontrar muy variada informacion

saludos

Desconectado Ignite

  • PIC16
  • ***
  • Mensajes: 107
RE: ¿Cómo puedo comunicar dos 16f84?????????????????????????????????
« Respuesta #4 en: 16 de Marzo de 2004, 09:21:00 »
Si solo uno recibe y el otro transmite no requieres de ningún protocolo complejo. La verdad es que lo pones un poco difícil si no quieres emplear interrupciones y además quieres transmitir con solo un pin. La única forma que veo para lo que pides es buscar unas rutinas que simulen una USART e ir comprobando mediante pooling (creo que se escribe así si se recibe o no.

Saludos.

Desconectado eRickK11

  • PIC10
  • *
  • Mensajes: 2
RE: ¿Cómo puedo comunicar dos 16f84?????????????????????????????????
« Respuesta #5 en: 17 de Marzo de 2004, 02:26:00 »
Apenas voy a empezar un proyecto de un sistema domotico utlizando el pic 16f84 atraves de visual basic usando un modulador de 5 entradas 5 salidas y con esto solo voy a controlar el apagado y encendido de algunos aparatos electricos (television, microondas, luz, refrigerador) me gustaria tener información sobre como se usa visual basic para un sistema domotico e informacion sobre el modulador que antes menciono, gracias por su atención y espero me haya explicado, bye!!

Desconectado looplp

  • PIC10
  • *
  • Mensajes: 14
RE: ¿Cómo puedo comunicar dos 16f84?????????????????????????????????
« Respuesta #6 en: 17 de Marzo de 2004, 09:17:00 »
Ignite:
El PIC1 que es el emisor debe transmitir si o sí por RB0 los datos (8 Bits). Siempre en assembler!!!
El PIC2 que es el receptor, debe recibir los datos si o sí, por algún pin del puerto A puesto que, el puerto B lo tengo todo ocupado y necesito sus 8 salidas juntas en un instante de tiempo.
Estuve probando con un código casero en donde pongo el dato a transmitir en una variable, lo voy rotando y pregunto si es un 1 o un 0; luego, si es 1, activo RB0 durante un tiempo y vuelvo a preguntar hasta terminar los 8 bits del dato.
Con la recepción hago más o menos lo mismo, pregunto el estado de RA3 por ejemplo, y voy guardando el dato que llega en una variable, rotándola.
Pero en algo debo tener un error y no se si es de hard o del código que, quizás sea demasiado complicado para algo tan simple.
Bueno, igualmente gracias por tu preocupación!!!
Saludos!!!!

Desconectado Ignite

  • PIC16
  • ***
  • Mensajes: 107
RE: ¿Cómo puedo comunicar dos 16f84?????????????????????????????????
« Respuesta #7 en: 17 de Marzo de 2004, 16:04:00 »
Como ya tienes utilizado RB0 solo puedes hacer polling. Otra opción sería la de mediante hard externo hacer que genere una interrupción al pic para cualquier de los casos que tu deseas y luego comprobar de que tipo de interrupción se trata con la lectura de pins.
En todo caso, como comentas, alguna cosa no has hecho correctamente. Posiblemente no llegas a sincronizar correctamente la emisión con la recepción. Hace cosa de un año yo hice un código en asm que me permitía comunicar el pic con el pc de forma asíncrona, pero he estado buscando el código y creo que lo perdí cundo me petó el disco duro. Yo te recomiendo que busque algunas rutinas en asm que te permita comunicar un pic con otro, ya que hay muchas y funcionan correctamente.
Otra cosa, si te decides por hacer el polling, tienes que tener en cuenta el tiempo que tardas en hacer la lectura del puerto, ya que esto es lo que hace que no sincronices correctamente con el emisor.

Saludos.

Desconectado looplp

  • PIC10
  • *
  • Mensajes: 14
RE: ¿Cómo puedo comunicar dos 16f84?????????????????????????????????
« Respuesta #8 en: 22 de Marzo de 2004, 12:39:00 »
Gracias


 

anything