Autor Tema: Ayuda para identificar tipo de interfaz serie.  (Leído 867 veces)

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

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2161
Ayuda para identificar tipo de interfaz serie.
« en: 02 de Marzo de 2017, 15:49:41 »
Hola,

le he echado mano a una centralita que se comunica por serie (USART) con los esclavos, las características son estas:

* multipunto
* topología "bus"
* Diferencial.
* Niveles 0V,12V
* La misma línea de datos alimenta a los esclavos (hasta 40 en unos 100mts de distancia).

Es una USART porque ajustando la frecuencia el osciloscopio me lo reconoce (ajustando a 37Kbaudios):



No me acabada de cuadrar con 232,422 y 485: ¿alguna idea?.

Gracias.
Saludos!
« Última modificación: 02 de Marzo de 2017, 16:15:13 por manwenwe »
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7805
Re:Ayuda para identificar tipo de interfaz serie.
« Respuesta #1 en: 02 de Marzo de 2017, 17:11:40 »
Creo que ya la parte de Differencial y multipunto descarta automaticamente RS232.

Solo queda determinar si es RS422 o 485, y la caracteristica principal creo que es el voltaje
Ambos pueden ser multi-drop. Ambos son diferenciales. La tension de 12V y GND que observas parece ser un Power over RS-4xx, es decir se envia esos 12V y la fuente deberia tener un filtro para eliminar las señales diferenciales y el dispositivo de comunicacion deberia tener un filtro de DC.

En si creo que lo unico que difieren es el voltaje con que se manejan. RS485 habla sobre la diferencia entre voltajes si superan los 200mV entre ellas se toma 0 o 1 segun cual es la mas grande. En fin parece RS485 para mi. Lo que si deberias ver si es correctamente eso.

Lo que si hay que ver si tiene sentido xD lo que se esta enviando y recibiendo ( a 37K), y si siempre se cumple, por que es bastante raro esa frecuencia. Siempre se atienen a un valor de los comunes. Y la otra que me causa duda es que el bit de start al comienzo es MUY largo, demasiado largo y no lo toma desde el comienzo al start ese.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2161
Re:Ayuda para identificar tipo de interfaz serie.
« Respuesta #2 en: 02 de Marzo de 2017, 17:44:31 »
Perdón, la frecuencia es 38.4K (lo escribí de memoria): subí la frecuencia al máximo en el decodificador del osciloscopio, luego como ví que los datos no tenían sentido capturé y medí el ancho de pulso y calculé la frecuencia (redondeando). Yo también pensaba que era 485 pero lo de los niveles 0V,12V y lo de alimentar toda la red me despistaba (no conocía el concepto "power over" en serie): por eso pedí consejo :-).

Lo que no he entendido es lo del bit de start. Es cierto que es más largo que los de stop y re-start pero no sé porqué...

Gracias KILLERJC!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7805
Re:Ayuda para identificar tipo de interfaz serie.
« Respuesta #3 en: 02 de Marzo de 2017, 20:31:00 »
Como dijiste que funcionaba con esos 2 cables nomas, pense que por ahi iba la alimentacion, asi que lo primero que pense fue PoE ( Power over Ethernet ) y si existe la interfaz 1-wire en el que transita señal + alimentacion, porque no se podria implementar sobre RS485 ¿?, entonces busque Power over RS485 y salio un PDF de TI y ahi todo cobro sentido.

Citar
Lo que no he entendido es lo del bit de start. Es cierto que es más largo que los de stop y re-start pero no sé porqué...

Me parecio que el START era mas largo en la segunda onda, pero No es un bit de START a los 2ms, el bit de START se encuentra cuando el rojo baja :P

Lo que si, parece ser un Half-Duplex, por que esos 12V deben ser del transmisor y el que provee la alimentacion. Luego la segunda trama 20-91-22-01-82-32-03 parece como una respuesta. ( Si es que decis que es un solo cable ) solo deducciones que puedo sacar de la forma de ondar que veo.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2161
Re:Ayuda para identificar tipo de interfaz serie.
« Respuesta #4 en: 03 de Marzo de 2017, 03:45:29 »
Gracias. Ahora que lo dices, había notado la diferencia de niveles pero no había caído en que sería que el de los niveles más bajos es un esclavo contestando. De hecho no sabía que 485 pudiese ser full-duplex: siempre se aprende algo nuevo jeje.

Bueno, ahora viene la pregunta del millón... tengo que hacer un sniffer a TTL 3.3V: ¿recomendaciones?. Con sólo coger una de las líneas y el neutro de la centralita ya puedo coger datos pero: ¿los niveles?. Con un divisor resistivo no me vale ya que los niveles del maestro y los esclavos no son los mismos. No le voy a poner un Zener porque te deforma la señal... ¿uso un level shifther o un integrado especializado en eso?. ¿Conocéis algunos que os haya funcionado antes o googleo directamente?

Saludos,
« Última modificación: 03 de Marzo de 2017, 03:54:15 por manwenwe »
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7805
Re:Ayuda para identificar tipo de interfaz serie.
« Respuesta #5 en: 03 de Marzo de 2017, 14:52:38 »
Citar
o un integrado especializado en eso

Si detectamos que es diferencial y que es o puede ser RS485, por que no usar un integrado para RS485 y te olvidas de los niveles ?

Un MAX485 que discrimina cuando ya poseen una diferencia de 200mV como lo dice las espcificaciones del RS485 (Para entradas entre -7 y 12V), y que la tension maxima de entrada va de -8 a 12.5V. Solo usarias la parte del receptor. Lo que no se es si deberias adaptar impedancias del bus a la entrada del , tenes que fijarte por que el dentro de esa flia esta el MAX487 que posee slew rate y el maximo son 250 kbps, pero posee mas impedancia de entrada, los otros son 12K y este es de 48K, veras tu circuito

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2161
Re:Ayuda para identificar tipo de interfaz serie.
« Respuesta #6 en: 03 de Marzo de 2017, 15:44:47 »
Me vale me vale KILLERJC, al final lo que quiero es una entrada USART con niveles TTL. Lo malo es que en ese chip los niveles TTL son de 5V y yo quiero 3.3V para pasarselo a un cable FTDI y de ahí al USB del PC (así no tengo que comprar el cable de RS485 que vale 35€).

Lo más barato que encuentro en Digikey (de Maxim) es este:

https://datasheets.maximintegrated.com/en/ds/MAX3280E-MAX3284E.pdf

Es sólo receptor. Es un poco "coñazo" de soldar los cables al ser SMD pero es que los DIP se suben a más de 3€...

Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2161
Re:Ayuda para identificar tipo de interfaz serie.
« Respuesta #7 en: 24 de Marzo de 2017, 17:34:15 »
Al final usé un transceiver (SN75176BP) que son bastante más baratos que los receptores múltiples. Se quedó bastante chula la prueba: con un PIC32... una interrupción captura los mensajes del RS485 (a través del transceiver), los va analizando en "modo ventana" y de las tramas de 6 bytes filtra las que tienen los bytes que me interesan, luego los saca por otra UART y los envia al PC con un cable FTDI.

Si a alguien le interesa cuelgo el código.

Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -