Autor Tema: Whait for bus...  (Leído 2169 veces)

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

Desconectado delirio

  • PIC12
  • **
  • Mensajes: 64
Whait for bus...
« en: 09 de Marzo de 2016, 12:23:13 »
Hola muchachos, como están? Estoy queriendo implementar comunicación RS-485 en varios micros 16F1826, la idea es utilizar sus usart, con el fuse
#use rs232(baud=57600,xmit=PIN_B2,rcv=PIN_B1,bits=8) y usar un tercer pin para la selección de transmisión / recepción del SN75176.
La idea es que estén todos en la misma red, y a medida que el host le envía las peticiones, ellos respondan... ahora bien, en algún momento, necesito que los slave envíen una pequeña porción de datos sin que el host se los pida... entiendo que en las librerías de 485 de CCS implementan el whait for bus, una rutina que chequea el pin de RX para ver que no esté en uso el bus... y de ahi las dudas:
1) cuando el bus no se usa, el pin RX debería estar a 1 verdad?
2) cuanto tiempo sería prudente esperar para que el slave chequee el pin, siendo que la comunicación será a 57600, y la trama mas larga no llegará a los 12 char?

Agradecería mucho sus comentarios ! Gracias

Desconectado delirio

  • PIC12
  • **
  • Mensajes: 64
Re:Whait for bus...
« Respuesta #1 en: 09 de Marzo de 2016, 13:25:48 »
perdon x la H en wait !!  :?

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Whait for bus...
« Respuesta #2 en: 12 de Marzo de 2016, 00:55:58 »
Te contesto ya que nadie contesto. Lo que buscas vos es un "protocolo" multi maestro. Pero para RS485 significa muchos cambios mas en software y hardware (deteccion de colisiones, asegurarse que no se destruya nada al conmutar 2 juntos etc), Algo para nada simple de hacer. Te diria que intentes implementarlo con un solo maestro y mas que obvio tenes que crear tu propio protocolo.

Otra cosa mas, esto no es un fuse:

Código: C
  1. #use rs232(baud=57600,xmit=PIN_B2,rcv=PIN_B1,bits=8)

Un FUSE, es lo que se le llama a la bits de configuracion para el micro, eso que tenes ahi es una directiva para que el compilador genere codigo por si solo, basado en las opciones agregadas.

El SN75176 dice:

Citar
meets ANSI Standard EIA/TIA-422-B

RS422. Que no es lo mismo que RS485.

Desconectado delirio

  • PIC12
  • **
  • Mensajes: 64
Re:Whait for bus...
« Respuesta #3 en: 14 de Marzo de 2016, 10:23:08 »
Gracias KILLERJC, es verdad, no es un fuse, es una directiva !
Respecto al SN75176, si bien cumple con dicha norma (ANSI Standard EIA/TIA-422-B),  en su datasheet habla que puede utilizarse en configuración RS485 con hasta 32 LU  (Unit Loads). Es así o entendí cualquier cosa ?  :shock:

Respecto a mi pregunta del post, recomiendo leer una AN de microchip donde hablan sobre implementar multi-maestro.

http://ww1.microchip.com/downloads/en/AppNotes/01230A.pdf

Saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Whait for bus...
« Respuesta #4 en: 14 de Marzo de 2016, 12:30:49 »
Si tal ves no me extendi demasiado en lo que decia el datasheet, obviamente se puede usar para RS485, ya que es diferencial y puede soportar lso cambios. La diferencia principal que noto entre 422 y 485 es el voltaje que se usa, la resistencia de entrada y velocidad. Dejo la primer tabla comparativo que encontre en google

http://images.slideplayer.com.br/1/336407/slides/slide_60.jpg

Aunque obviamente de informacion a informacion puede variar un poco.

PD: Gracias por el AN


 

anything