Autor Tema: max485 como ayuda para transmitir señales....  (Leído 7222 veces)

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

Desconectado damago

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 320
max485 como ayuda para transmitir señales....
« en: 12 de Marzo de 2008, 09:40:09 »
Hola,

simplemente comentar a ver si parece buena idea usar un max485 para enviar datos a una cierta distancia (2 metros), aunque no se use ningun tipo de protocolo 485.

Comento el origen de la idea y el porque:
- se ha diseñado una maquina (en mi trabajo) con un esquema basico similar a este dibujo:

La cpu tiene un micro de 8 bit (renesas), y anteriormente iba a otro tipo de placas. Ahora para adaptarlo a esta, he colocado una placa de interface que tiene conectores para ir a las 4 esquinas. Cada conector (cable plano) lleva unas cuantas señales (4-7 de datos, y 3 de control (reloj, strobe y oe)). En cada esquina, hay unas placas con displays, y leds (controlados por driver de leds). Ademas tambien hay algunos electroimanes. A parte de lo visto en el dibujo hay algunas placas mas con leds y tal...

La cuestion es que los cables son medianamente largos (sobre 2m), y la maquina funciona bien (despues de algunos retoques en los cableados), pero no me gusta. Pienso que no es un sistema robusto, aunque se trate de leds, pues queda feo que en el agun momento se les vaya la pinza.

Principalmente se les podria ir la pinza a los driver de leds si interpretan mal las señales de control (reloj, strobe, oe) o las de datos. Porque? la longitud de los cables puede producir caidas de tension, que haria perder la correcta referencia '0' de las señales. Mas bien me refiero al momento de conmutaciones (tanto de los drives, como de los propios leds (de apagado a encendido simultaneo por ej.)), que debido a la 'gran' inductantacia del cable de masa (hilos de cable plano) podria provocar caidas de tension en ese cable. Estos transistorios en la señal de referencia podrian llevar a interpretar mal alguna señal de datos y control.

Despues de este rollo, y teniendo en cuenta, que esas placas alejadas tendrian su adecuado desacoplamiento (cosa que minimizaria este problema), estaba pensando en llevar estas señales de forma diferencial, para evitar tanto problemas de interferencias externas al cable de señal, como evitar una mala interpretacion de los drivers (ya que la señal diferencial en el receptor se reconstruiria bien tomando como referencia la propia masa de esa placa).

Pues una de las cosas que habia pensado era poner unos drivers de 485 (modo transmisor en la placa interface y modo receptor en la de las esquinas). Ningun protocolo, ya que las placas de las esquinas no llevan microcontrolador (ni quiero añadirselo). Simplmente seria como un medio transparente de llevar las señales a los drivers de esas placas de una manera mas limpia y segura. He visto que hay tb drivers que llevan 4 trasnmisores 485 en un integrado.

Otra opcion, podria ser dejarlo como esta jeje ya que funciona, y asegurar un buen desacoplamiento en las placas receptoras (aunque no me acaba de convencer). Por cierto, a parte de los 10 electroimanes, hay una motor funcionando a 220V. Los electroimanes tienen una fuente independiente del resto de la electronica.

Bueno se acabo el rollo. Podria ser buena idea usar estos drivers 485 para estos temas?

Un saludo. Dani.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1295
Re: max485 como ayuda para transmitir señales....
« Respuesta #1 en: 12 de Marzo de 2008, 12:25:07 »
Hola damago,

tu opcion es buena, por supuesto que lo es. Si tu sistema esta instalado en ambiente ruidoso existe la posibilidad de que este falle debido a algun ruido. Una manera como tu menciona es usando niveles RS-485, defenitivamente yo si te lo recomiendo.

Saludos.

Elreypic.

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4917
Re: max485 como ayuda para transmitir señales....
« Respuesta #2 en: 12 de Marzo de 2008, 12:39:59 »
Hola Dani!
si usa el protocologo del MAX485 te puedo decir que usando cable de 120 ohmio no deberia darte problema y si lo quiere ir mas seguro te recomiendo que haga Booster,CRepetidor) osea amplicadore, claro te recomiendo Opto acopladores , yo uso 2 protocolo en mi empresa RS485 y el DMX512 de esta forma y a 1000 metro de distancia con Booster y va de maravilla

Saludo
« Última modificación: 12 de Marzo de 2008, 13:46:42 por stk500 »

Desconectado damago

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 320
Re: max485 como ayuda para transmitir señales....
« Respuesta #3 en: 13 de Marzo de 2008, 06:58:50 »
Creo que tomare un conjunto de medidas:
- alimentare las placas de las esquinas con +12V (y les colocare un regulador local de +5V), para mantener localmente unos +5V estables.
- utilizare max485 o similar para llevar las señales a traves de esos cables larguillos
- es posible que tb añada mas señales de OE (solo hay 1, la misma para todos.  Si es cierto que hay cierta cantidad de buffers por el camino para las señales comunes, para que no se debiliten. No puedo llevar la misma señal a 25 integrados). Al añadir mas OE, puedo hacer que actualizen los datos los leds/displays por fases y evitar que todos los de la maquina conmuten simultaneamente (esto minimizaria tb los transistorios).
- Tb meditare la opcion de los optos. Eso me evitaria tb los problemas de falsa deteccion de la señal por tener una referencia (0V) incorrecta (en transistorios).

De todos modos, cuando este delante de la maquina, hare pruebecillas, y veremos por donde le meto mano.
Gracias por vuestros comentarios.

Un saludo.

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4917
Re: max485 como ayuda para transmitir señales....
« Respuesta #4 en: 13 de Marzo de 2008, 08:15:26 »
lo que te recomiendo y para que no tenga problema es nunca pasar ningun tipo de corriente AC/CD en un cable de 120 Ohm, eso nunca, intenta como te comento arriba poner Repetidores , yo uso en un Rack 19`Soll, 6 Booster, con 2 input y 6 output cada 500 metro en y pasando el Cable por Canales de Corriente etc y sin ningun problema ,  sin respecta todos eso que te digo te lo garantizo 100%
Saludo

Desconectado damago

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 320
Re: max485 como ayuda para transmitir señales....
« Respuesta #5 en: 13 de Marzo de 2008, 19:14:17 »
Hola skt500,

por los 2 cables del 485 solo iria la señal diferencial de 485, no entiendo que quieres decir con no llevar ningun tipo de corriente AC/DC. Para esta aplicacion, creo que con usar un cable plano con todas las señales diferenciales debe valer (es mas comodo un solo cable, y la distancia es relativamente corta -> menos de 2metros). Como mucho hare los cables con pares trenzados, pero no creo. Cables apantallados seguro que no.
El sistema ya funciona bien con señales 'single ended' todas en un cable plano (diferencial como minimo, mejoraria la inmunidad), y no me permitiran transformar el sistema demasiado. Sobretodo no encarecerlo mucho mas jeje
No creo (seguro) que ni siquiera emplee cables de 120ohm (como deberia ser en un bus 485 serio), sino un simple cable plano. Las velocidades son lentas y creo que no me voy a encontrar con problemas de reflexiones de las señales.

No se trata de una aplicacion seria de 485 (ni mucho menos 500m como en tu caso), ni siquiera utilizaria ningun tipo de protocolo 485, solo el driver para el nivel fisico (un bus 485 para cada señal: oe, clock, data1, data2,....... mmm conforme lo leo me parece una aberracion poner tantos buses 485 jeje, pero al menos si ayudaria a inmunizar el tema). Respecto a los repetidores que comentas, supongo que seran utiles en las distancias que comentas, pero en mi caso es muy pequeña.

Un saludo.

Desconectado damago

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 320
Re: max485 como ayuda para transmitir señales....
« Respuesta #6 en: 16 de Abril de 2008, 13:36:37 »
Primeras pruebas satisfactorias:

bueno, os comento un poco las pruebas que realizado al final sobre la maquina. Dado que solo la CPU es la que envia señales (maestro) y el resto de placas las recibe (receptores), he optado por usar driver RS422 (que son mas baratos que los RS485). He usado unos integrados que tienen 4 drivers cada uno, en conreto:
- AM26LS31 (driver transmisor)
- AM26LS32 o AM26LS33 (driver receptor)

Son unas 16 señales en total, por eso es un alivio tener un integrado que lleve 4 de estos dentro.

He hecho unas placas caseras con estos integrados para convertir las señales unidireccionales a diferenciales, que son señales que recorrian mas de 1.5m por los cableados. Les he colocado los conectores adecuados, para poder conectarlas como algo intermedio a las placas que ya existen en la maquina. Osea, como un pequeño adaptador colocado a cada placa, para que las señales en los cableados sean diferenciales.

Por otra parte, he añadido un regulador 7805 a cada una de estas placas, para regular localmente los +5V en cada placa receptora (a partir de +12V de entrada).

Resultados:
- He eliminado los reguladores y he llevado directamente los +5V desde la CPU. Realmente pierdo sobre 0.5V por el camino, pero teniendo en cuenta la cantidad de placas adaptadoras, cables, etc... Cuando este bien arreglado, y con 2 cables para masa y 2 para VCC (en lugar de 1), la caida oscilara entre 0.2V y 0.3V. Como parto de 5.1V estables, me parece correcto. De hecho con la caida actual funciona bien.
- Las señales diferenciales han sido como un santo caido del cielo. Antes, los leds que manejaban las placas receptoras, hacian cosas raras incluso simplemente acercando la mano segun a que parte del cable. Tb fallaba cuando habia cambios importantes de consumo (muchos leds pasan de apagado a encendido o viceversa), o incluso tambien al activar algun electroiman (lleva 10 electroimanes utilizados para golpear en movimiento lineal).
Ahora, funciona muy bien. No le afecta nada, al menos en las condiciones de laboratorio, sin sacarla a la calle. Y es cierto que la probamos un rato solo jeje, pero la mejoria es visible, tal como esperabamos.

PASO 2:
- Ahora estoy rediseñando tanto la cpu, como las placas receptoras de nuevo, para integrar estos drivers y no poner diez mil plaquitas. En un par de semanas, tendre unas de prototipo para probar (mas que nada por la presion que mete el jefe jeje). Espero que sea la definitiva.

Simplemente os cuento el rollo, ya que empece el hilo, para dar fe de que ha funcionado el uso de señales diferenciales para señales que viajan por cables relativamente largos, aunque sea sin salir del propio equipo.

Por cierto, aprovechando que habia señales comunes (como clk, strobe y OE), una vez convertidas a diferenciales, las lleve en serie (daisychain creo que se dice jeje) de una a otra placa (estilo comunicaciones RS485), en lugar de cuatriplicar en la cpu (a base de buffers) esas señales para cada una de las 4 placas receptoras. Por una parte el cable plano lleva mas hilos al ser diferencial, y por otra le quitamos al llevar las mismas señales comunes de una a otra placa, asi que al final el resultado no ha sido unos cables mas grandes.


Un saludo.

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4917
Re: max485 como ayuda para transmitir señales....
« Respuesta #7 en: 16 de Abril de 2008, 14:06:33 »
perdona pero yo pienso que si hubieras usados los Xbee  como Wireless te ahorrarias todos esos y mas seguros con Xbee
Saludo
 

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18269
    • MicroPIC
Re: max485 como ayuda para transmitir señales....
« Respuesta #8 en: 16 de Abril de 2008, 15:21:24 »
Me gusta mucho tu idea, Damago, y quizás te la robe en una tragaperras que me ocupa.
Entiendo que el esquema no es complejo, ¿verdad?, ¿sólo usas esos integrados en las salidas y en las entradas?

Desconectado damago

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 320
Re: max485 como ayuda para transmitir señales....
« Respuesta #9 en: 16 de Abril de 2008, 15:26:55 »
Hola stk500,

en algun momento me gustaria probar esos modulos Xbee, sin duda suenan muy interesantes.

Pero en este caso, siento discrepar  :D y pienso que es mejor tal como esta. Los cables de alimentacion no me los ahorraria, unicamente los cables planos de las señales. Ademas, si fuera comunicaciones entre maquinas me pareceria genial, pero meter modulitos de esos dentro de un mueble para comunicar partes, no me parece lo mas adecuado, creo que es mejor un simple cable plano.
Por otra parte, no tengo ni idea en como afecta el meter un wireless 2.4Ghz en el tema del marcado CE. No se si por utilizar wireless, necesita aplicarsele pruebas adicionales, por emitir a esa frecuencia.
Otra cosa es, que solo lleva microcontroladore la CPU, las placas receptoras no llevan microcontrador, solo drivers de leds, y creo que el Xbee necesita un micro que le acompañe no?

De todos modos, tambien tengo ganas de echarle la mano encima a ese tipo de modulitos.

Un saludo. Dani.

Desconectado damago

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 320
Re: max485 como ayuda para transmitir señales....
« Respuesta #10 en: 16 de Abril de 2008, 15:34:36 »
Hola Nocturno,

que sopresa! te dedicas al sector de juego? Yo tb he participado en la creacion de un par de tragaperras :P
Una de ellas use RS485 para comunicar las distintas cpus que llevaba, y en la otra CAN.

La respuesta a tu pregunta es si. Al principo mi cpu tenia salidas TTL que luego se trasladaban hasta la placa receptora por un cable plano megalargo. Lo mismo para los pulsadores, sensore, etc.. de las placas receptoras, que viajaban por un cable largo hasta llegar a la cpu como entradas.
El añadido es simplemente colocar en la cpu y en la placa receptora estos drivers y convertir esas señales unipolares en diferenciales. Sin ningun misterio mas, ni protocolos raros.
En mi caso opte por drivers RS422 en lugar de 485 porque son señales punto a punto (cpu-placa receptora) y uno solo envia y el otro solo recibe.

Un saludo. Dani.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18269
    • MicroPIC
Re: max485 como ayuda para transmitir señales....
« Respuesta #11 en: 16 de Abril de 2008, 15:38:20 »
Hola Nocturno,

que sopresa! te dedicas al sector de juego?
Jaja, si se puede decir que esto es una "dedicación" pues sí  :D

Es lo que tiene la bebida, que te lleva a otros vicios  :mrgreen:


 

anything