Autor Tema: Enviar/recibir datos numéricos entre dos PICs sin UART  (Leído 1637 veces)

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

Desconectado josemb

  • PIC10
  • *
  • Mensajes: 6
Enviar/recibir datos numéricos entre dos PICs sin UART
« en: 28 de Febrero de 2015, 20:32:13 »
Hola a todos!

Estoy empezando en el mundo de los microcontroladores, por lo que mi pregunta puede parecer un poco tonta pero no consigo dar con una solución robusta. Estoy desarrollando un proyecto que involucra dos PICs (digamos PIC_A y PIC_B): El primero de ellos, PIC_A, recibe una cadena de caracteres cada 100 milisegundos procedente de una máquina, procesa la información y envía de vuelta otra cadena de texto. Esta parte la tengo completamente desarrollada y funciona bien. Ahora necesito un segundo microcontrolador, PIC_B, que de alguna forma "controle" la manera en la que el PIC_A procesa esos datos que le entran. Dicho control lo realizaría de la siguiente manera: Un sotware instalado en un PC envía al PIC_B una cadena de texto conteniendo los parámetros de control para el PIC_A via rs232 y  debe recibir otra cadena conteniendo parte de la información que el PIC_A envía a la máquina.

Como digo, la primera parte (comunicación PIC_A<->Máquina) la he conseguido utilizando los puertos TX y RX  de la UART del PIC. Para llevar a cabo la segunda parte no tendría ningún problema en utilizar los mismos puertos UART para la comunicación PIC_B<->PC. Mi problema lo encuentro en cómo hacer que el PIC_B "envíe" los valores numéricos de los parámetros de control (una vez extraidos de la cadena recibida del PC) al PIC_A, así como que el PIC_A "envíe" al PIC_B parte de la información enviada a la máquina para enviársela a su vez al PC y registrar la información en una base de datos.

Para el envío de los parámetros no puedo utilizar las UARTs porque ya están ocupadas. Imagino que debería utilizar las salidas y entradas como analógicas pero estoy muy perdido sobre cómo llevarlo a cabo. Un ejemplo simple de código CCS sobre cómo enviar un valor numérico por uno de los pines de un PIC sería suficiente para conseguir lo que pretendo, ya que tan solo tendría que extenderlo a tantas salidas como parámetros necesite enviar

Adjunto una imagen que esquematiza mi problema. Espero haberme explicado bien y que alquien me pueda ayudar. Por cierto, estoy utilizando el PIC 16F876A, CCS Compiler y PROTEUS para las simulaciones.

Muchísimas gracias de antemano!

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Enviar/recibir datos numéricos entre dos PICs sin UART
« Respuesta #1 en: 28 de Febrero de 2015, 20:45:24 »


Puedes utilizar I2C o SPI, si las placas no están muy alejadas la una de la otra. Si están alejadas mira a ver si para ese compilador hay rutinas que te permitan crear un puerto serie por software, aunque lo ideal en ese caso sería que uses un micro con CAN bus.


Desconectado Nano_T

  • PIC10
  • *
  • Mensajes: 36
Re: Enviar/recibir datos numéricos entre dos PICs sin UART
« Respuesta #2 en: 01 de Marzo de 2015, 11:49:57 »
Ese inconveniente me recuerda a una "llave electrónica" que fue publicada en inventable hace algunos años. Tal vez puedas usar la base de esto para la comunicación entre los PICs y combinarla con tu código. Llave electrónica - Inventable
Saludos!

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Enviar/recibir datos numéricos entre dos PICs sin UART
« Respuesta #3 en: 01 de Marzo de 2015, 14:40:02 »
Yo creo que lo que dice planeta9999 es lo mas acertado.

Ademas sino me equivoco si vos definis en CSS usas la directiva #use RS232() a unos pines que no tiene UART por hardware, crea una UART por software y lo manejas de la misma forma que el otro.

En fin todo depende de la lejania de los dispositivos y de la forma que quieras comunicarlo. Al igual que el ambiente que se encuentre.


 

anything