Autor Tema: pic16f877.Union terminal tx (com asincrona) de varios pics  (Leído 2042 veces)

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

Desconectado cheswik

  • PIC10
  • *
  • Mensajes: 14
pic16f877.Union terminal tx (com asincrona) de varios pics
« en: 06 de Agosto de 2007, 05:31:53 »
hola a todos,

mi problema es el siguiente, a ver si me podeis echar una mano:

Tengo 2 placas, una con 8 pics esclavos y otra placa con un pic maestro que se comunica con los anteriores a traves de un cable db9.

   - Para la comunicacion maestro -> esclavos se utilizan 4 lineas (3 para seleccionar a pic y una para indicar que nos queremos comunicar.
   - La comunicacion pics -> maestro utiliza el terminal rx (com asincrona) del maestro. Es decir todos los pics esclavos tienen su terminal tx unido.

Lo que hago en el programa de los esclavos es poner el terminal tx de todos los pics en alta impedancia (como in) excepto el seleccionado que lo pongo como salida. Esta placa no la he diseñado yo y no se si es correcto o no conectar entre si todos los terminales tx,¿que opinais? porque al probarlo me falla a veces, no siempre.

Otra cosa, he visto en algunos ejemplos que cuando se utiliza la tx/rx asincrona nunca se indica si estos bits rx/rx son salida/entrada respectivamente... es innecesario? Quien mantiene la linea a 5v ? 

A ver si me podeis ayudar

gracias
« Última modificación: 06 de Agosto de 2007, 05:44:39 por cheswik »
La estadística es la ciencia según la cual si una persona come dos pollos y otra ninguno, se deduce que cada una se ha comido un pollo

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: pic16f877.Union terminal tx (com asincrona) de varios pics
« Respuesta #1 en: 06 de Agosto de 2007, 06:02:05 »
Yo sólo lo haría poniendo todas las TX como entradas en alta impedancia, colgando una resistencia de pullup en la línea para que la mantenga a 5V. Cuando un esclavo quiera enviar un bit, tendrá que hacerlo bajando a 0 la línea.
De esta manera, si dos esclavos "hablan" a la vez, no debería haber problemas eléctricos.

Desconectado cheswik

  • PIC10
  • *
  • Mensajes: 14
Re: pic16f877.Union terminal tx (com asincrona) de varios pics
« Respuesta #2 en: 06 de Agosto de 2007, 06:54:14 »
gracias nocturno

he visto que el portc no tiene Rpull-up interna, luego en este caso debería ser externa con lo que tendría que modificar el hardware. 
No tengo muy clara una cosa:

 - si tenemos solamente maestro-esclavo comunicandose(siempre unidirecciconal esclavo ->maestro, maestro con puerto serie y recepción habilitada, esclavo con puerto serie y transmision habilitada)... entonces funciona bien sin Rpull-up, ¿quien pone entonces dicha linea a 5 V? Quizás el esclavo al ser hablitada la transmision?

He quitado todos los esclavos excepto uno y asi va bien, pero al colocar el segundo ya falla,  (la placa de maestro tb se comunica via rs232 con el pc para espiar la comunicación)

gracias¡
La estadística es la ciencia según la cual si una persona come dos pollos y otra ninguno, se deduce que cada una se ha comido un pollo

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: pic16f877.Union terminal tx (com asincrona) de varios pics
« Respuesta #3 en: 06 de Agosto de 2007, 07:11:02 »
¡Ah, un momento!, no habías dicho nada de RS232 ni comunicación serie; sólo hablaste de utilizar un DB9.
Que yo sepa el protocolo serie no admite un maestro y varios esclavos.

Desconectado cheswik

  • PIC10
  • *
  • Mensajes: 14
Re: pic16f877.Union terminal tx (com asincrona) de varios pics
« Respuesta #4 en: 07 de Agosto de 2007, 05:31:20 »
los esclavos se van turnando en la transmisión es decir solo un exclavo posee la linea al mismo tiempo; ya he conseguido que funcione introduciondo algunos retardos software.

Saludos
La estadística es la ciencia según la cual si una persona come dos pollos y otra ninguno, se deduce que cada una se ha comido un pollo