TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: literatronic en 03 de Abril de 2008, 19:04:03

Título: Un problema con caída de corriente.
Publicado por: literatronic en 03 de Abril de 2008, 19:04:03
¡Un saludo a todos!

Estoy leyendo unas entradas digitales por un puerto de un PIC 16F873, estas entradas viene de unos relés, los cuales se energizan en un proceso industrial que estoy vigilando, entonces lo que hago es mandar 5 V regulados desde la placa y espero a que retornen como señales digitales al abrirse o cerrarse los contactos de los relés.

El problema es que el PIC deja de transmitir información, a un PC por red RS-485, de un momento a otro, pero cuando desconecto las entradas digitales funciona bien.  Digo que es caída de corriente porque mis 5 V tienen que recorrer como 10 metros (ida y vuelta) de donde está la tarjeta a los relés.

Si alguien sabe cómo puedo solucionar este problema agradecería mucho.

Hasta luego.
Título: Re: Un problema con caída de corriente.
Publicado por: migsantiago en 03 de Abril de 2008, 22:50:22
Hola  :mrgreen:

10 metros de alambre que pasa por una máquina industrial es una fuente de ruido y resistencia mala para el pic. Mi recomendación...

(http://img528.imageshack.us/img528/9011/dibujoml6.jpg)

El poco voltaje que viene del relevador activa el transistor de modo que...

- Cuando el relé está abierto, el PIC recibe un 1 lógico (5V).
- Cuando el relé está cerrado, el PIC recibe un 0 lógico (0V).

Esto solo resuelve el problema de la distancia pero no sabemos cómo vaya a actuar con el ruido inducido por el ambiente industrial, por ahora podrías empezar haciendo pruebas  :)

Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 04 de Abril de 2008, 14:26:59
Gracias migsantiago, es una idea excelente.  Por ahora lo que hice fue poner otra fuente de 5V en el lugar donde están los relés, ya no saco los 5V de mi tarjeta, uno los negativos y listo, con esto me ahorro 5 metros de recorrido de las señales.  Mejoró el funcionamiento, ya no se me pierde tan seguido, pero sigue dejando de responder esporádicamente;  creo que el problema, como lo mencionas, es ruido.

¿Qué se le podría agregar al circuito para eliminar ese ruido?

Muchas gracias.
Título: Re: Un problema con caída de corriente.
Publicado por: flacoclau en 04 de Abril de 2008, 16:28:43
Hola como dice Migsantiago el problema principal seguramente es el ruido, o quizás algun bug en el programa, pero me inclino más a lo primero, creo que la solución podría ser optoacopladores.
incluso dejas las tierras y las alimentaciones separadas.

(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=21179.0;attach=6578)
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 04 de Abril de 2008, 17:37:49
Gracias flacoclau por tu idea, también está muy buena y podría ser una solución excelente, pero por ahora, como ya tengo una tarjeta (PCB) montada me gustaría poder aprovecharla (para tarjetas futuras seguro que no voy cometer el mismo error), es decir, necesito eliminar ese ruido con dispositivos no muy robustos que pueda poner en las líneas de entrada por ejemplo;  en el hilo sobre ruido que está con chincheta vi que un circuito tenía condensadores de 1nF a tierra en unas entradas.

¿Ustedes creen que con estos condensadores podría solucionar mi problema?

Otra pregunta: leí también que poner un condensador y otra resistencia, fuera de la de 10K a +5V, en el pin MCLR servía para eliminar ruido, pero no entiendo cómo conectarlos, si alguien me puede mandar un esquema lo agradecería.

Hasta luego.
 
Título: Re: Un problema con caída de corriente.
Publicado por: Gonzalo_BlackHawk en 04 de Abril de 2008, 18:57:23
Hola a todos. Bueno, si ya tienes el PCB armado no te queda otra que emparchar el problema, los problemas de ruido no tienen porque ser un dolor de cabeza si se solucionan en la etapa del diseño pero en este caso haremos lo que podamos. Supongo que el ruido inducido es el de 50 o 60 Hz por lo que descartemos el uso de bobinas, ademas si ya tienes el PCB armado no es viable esta solucion. Recomiendo la colocacion de capacitores cerámicos de 100 nF en paralelo con un capacitor electrolitico de 10 uF entre los 5V y masa colocados lo mas cerca posible de la alimentacion del micro y otro para lo mas cerca posible de la salida de los reguladores de tensión. Ademas prueba de colocar a la entrada de la señal digital un filtro pasabajo pasivo (una red RC) con una frecuencia de corte baja, tal vez 10 o 20 Hz, puede ser una resistencia de 10 K y un capacitor de 1 uF (En lo posible de tantalio o OSCON, los electrolíticos de aluminio no son buenos para filtrar ruidos). Si esto no funciona tno desesperes, puede intentar usar TVS, varistores o como solución radical la utilización de cable apantallado.

Con respecto a los optoacopladores no deberian ser necesarios, y sin querer ofender a flacoclau, la gente tiende a usarlos en cualquier lugar para filtrar ruidos cuando en realidad no es ni la mejor solución para ello, ni la mas económica, ni la que ocupa menor espacio. Perdon flacoclau, jaja, es una opción válida sin embargo! En lo que si estoy de acuerdo con flacoclau es que utlizes masas separadas y alimentaciones separadas, es una muy buena aproximacion a la solución.

Por ultimo y segun lo comentado acerca del pin MCLR ya no puedes hacer mucho si tienes el PCB armado pero aqui te paso el circuito que yo utilizo en casi todos los casos de diseño y que ha demostrado ser mas que sencillo y robusto frente a los ruidos (obviamente tomando otros recaudos).

Saludos a todos.
Título: Re: Un problema con caída de corriente.
Publicado por: manex_1987 en 04 de Abril de 2008, 20:22:13
Ademas de todo eso, para minimizar el ruido generado por el cable de 10m, no estaria de mas que este fuera apantallado a tierra. Aunque a lo mejor ya no es posible.
Título: Re: Un problema con caída de corriente.
Publicado por: migsantiago en 04 de Abril de 2008, 22:46:31
Recomiendo la colocacion de capacitores cerámicos de 100 nF en paralelo con un capacitor electrolitico de 10 uF entre los 5V y masa colocados lo mas cerca posible de la alimentacion del micro y otro para lo mas cerca posible de la salida de los reguladores de tensión.

Esa es una buena recomendación, prácticamente no debe existir un circuito con pic sin esos capacitores, sea el ambiente que sea en donde se vaya a poner a trabajar.
Título: Re: Un problema con caída de corriente.
Publicado por: flacoclau en 04 de Abril de 2008, 22:59:27
Hola a todos. Bueno, si ya tienes el PCB armado no te queda otra que emparchar el problema, los problemas de ruido no tienen porque ser un dolor de cabeza si se solucionan en la etapa del diseño pero en este caso haremos lo que podamos. Supongo que el ruido inducido es el de 50 o 60 Hz por lo que descartemos el uso de bobinas, ademas si ya tienes el PCB armado no es viable esta solucion. Recomiendo la colocacion de capacitores cerámicos de 100 nF en paralelo con un capacitor electrolitico de 10 uF entre los 5V y masa colocados lo mas cerca posible de la alimentacion del micro y otro para lo mas cerca posible de la salida de los reguladores de tensión. Ademas prueba de colocar a la entrada de la señal digital un filtro pasabajo pasivo (una red RC) con una frecuencia de corte baja, tal vez 10 o 20 Hz, puede ser una resistencia de 10 K y un capacitor de 1 uF (En lo posible de tantalio o OSCON, los electrolíticos de aluminio no son buenos para filtrar ruidos). Si esto no funciona tno desesperes, puede intentar usar TVS, varistores o como solución radical la utilización de cable apantallado.

coincido plenamente contigo


Con respecto a los optoacopladores no deberian ser necesarios, y sin querer ofender a flacoclau, la gente tiende a usarlos en cualquier lugar para filtrar ruidos cuando en realidad no es ni la mejor solución para ello, ni la mas económica, ni la que ocupa menor espacio. Perdon flacoclau, jaja, es una opción válida sin embargo! En lo que si estoy de acuerdo con flacoclau es que utlizes masas separadas y alimentaciones separadas, es una muy buena aproximacion a la solución.


No coincido contigo  :D :D

Bueno hablando enserio, por favor no me ofendes para nada y espero tampoco tu te sientas así por disentir contigo  :)
 No descarto el uso de un transitor como separador, pero creo los opto son una buena herramienta para separar la señal del ruido, ya que de entrada tenemos los circutos aislados (masas y alimentaciones), mas allá de la pequeña capacitancia que pueda haber entre el transistor y el led internos del opto, nunca la señal que llega al micro va a sobrepasar la tensión de alimentación, siendo que con un transistor comparten la alimentación por lo que un buen pulso de tensión, proveniente del mismo relé o captado por el cable desde algún motor pasaría directamente a la alimentación de la placa original, incluso creo que los debería agregar en la salida hacia los relés, tampoco son algo caro, quizás unos centavos más que los transistores, en cuanto al espacio no sé si ocupan más que los transistores polarizados con todas sus resistencias, calculo que se podría hacer una plaquita con un par de conectores iguales a los de la placa original y luego interceptar los cables de entrada y salida a la misma sin modificar mucho el conjunto, siempre y cuando quede algún espacio en el gabinete.

saludos!!!








Título: Re: Un problema con caída de corriente.
Publicado por: Gonzalo_BlackHawk en 06 de Abril de 2008, 20:49:38
Hola a todos. Flacoclau, no me molesta que disientas conmigo, es mas me agrada poder enfrentar opiniones, uno siempre saca conocimientos de las refutaciones, si siempre estariamos todos de acuerdo, cuando aprenderiamos!?!! :D

Me he expresado mal o bien no se entendio mi idea, en realidad no opinamos tan distinto, los optoacopladores son muy buenos para AISLAR dos circuitos, es decir tal como tu lo has expresado, permiten separar masas y alimentaciones, lo que es sumamente importante. Yo siempre he predicado con el hecho de colocar planos de masa  y alimentaciónes separados para la parte de potencia, digital y analógica, es mas estoy casi en matrimonio con la configuración de estrella  :D (aunque hay casos donde no es conviente aplicarla). De ahi que en mi opinión recomende tu observación sobre utilizar masas y alimentaciones separadas.

A lo que referia mi mensaje es que los optoacopladores de cualquier tipo (BJT, UJT, SCR, TRIAC, ST) NO son buenos para FILTRAR señales, con filtrar me refiero a eliminar el ruido modulado sobre una señal que puede ser analógica o digital. Para ello hay soluciones que requieren un poco mas de calculo pero con las que se obtienen resultados mas concretos como son los filtros pasivos RC-RL-LC, los activos como el Sallen-Key, los TVS, los diodos Schottky, los varistores, las bobinas de choque, los filtros toroidales en modo común o diferencial, y bueno, si seguimos con la lista podemos terminar en los filtros digitales implementados mediante DSP. No voy a mentirles, yo uso optoacopladores en mi diseños para el manejo de señales, no soy enemigo de ellos ni mucho menos, pero los utilizo con discresión y en criterio a la aplicación para la que fueron diseñados, AISLAR. Generalemente, evito el uso de optoacopladores en el tratamiento de señales analógicas porque la mayoria, sino todos ellos, modifican y distorsionan la proporcionalidad o la curva de variación de la señal, y luego hay que aplicarles la correción correspondiente. Para lo que si lo utilizo es para aislar señales digitales pero siempre luego de haber aplicado el filtrado y las protecciónes contra sobretensiones , ya que por más robustos que sean los optoacopladores, sin protecciones antes de este, quien protege al diodo emisor del optoacoplador???

Bueno, vayamos a la cuestión por la que se creo este tema, que es el circuito expuesto por literatronic. En mi ultimo mensaje (despues de este claro esta!  :)) coloque una imagen con el circuito ahora con un filtro RC, flacoclau expuso correctamente que el transistor deberia ser reemplazado por un optoacoplador tal como el habia comentado a priori. La combinación de filtro-optoacoplador (el filtro antes del optoacoplador, o bien puedes agregar otro filtro despues del optoacoplador) seria la mejor solución a los problemas de literatronic. Sin embargo, y por eso es que no he colocado un optoacoplador, el PCB ya esta hecho y como en el se ha colocado un transistor pense en que solo deberia colocar el capacitor y la resistencia y dejar el resto del circuito como esta, para evitar tener que realizar demasiadas modificaciones. Pero tal como he dicho anteriormente y para concluir, tu solución flacoclau es muy válida tambien!!!

Saludos a todos desde Argentina.
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 07 de Abril de 2008, 11:49:43
Gonzalo muchas gracias por los esquemas, de verdad que antes de hacer este montaje no existía el ruido para mí, ahora a cambiar los diseños que funcionan también en el laboratorio, ja ja

Les cuento, lo que hice fue cambiar el cable que estaba utilizando por uno apantallado y la cosa mejoró, pero sigue fallando.  Ahora que he estado mirando todas las opciones que me han dado lo que me queda por hacer es empezar a filtrar esas señales digitales que vienen "sucias" desde los relés, y que como dice Gonzalo pueden ser por Voltaje de CA;  entonces, según lo que entendí, sería ponerle una resistencia y un condensador como muestro en la imagen adjunta, si estoy equivocado decirme cómo van por favor.

Otra cosa es que dicen que las tierras de las dos alimentaciones deben de ser independientes, pero si no las uno no me funciona, es decir, necesito la misma referencia para que mi PIC pueda leer las entradas digitales bien, o es que ¿estoy cometiendo algún error y no me he dado cuenta?

Muchas gracias.
Título: Re: Un problema con caída de corriente.
Publicado por: Gonzalo_BlackHawk en 07 de Abril de 2008, 13:59:17
Bien literatronic, el tema de la independencia y el ruteado de las masas y de las alimentaciones puede a veces ser bastante engorroso pero es tan importante que la mayoria de las veces es preferible complicar un PCB para poder hacer frente a las especificaciones "anti-ruido" por asi decirlo.

No se como te ha quedado el circuito, pero si has utilizado optoacoplador puedes independizar totalmente las alimentaciones utilizando dos fuentes, pero no es lo mas barato, ni lo mas compacto, ni lo mas recomendable en este caso pues tampoco tienes una condicion atmosferica de ruido critica. Sin embargo, si quieres hacerlo aqui te dejo un esquema:

Entrada digital de PIC con optoacoplador  (http://www.subirimagenes.com/otros-circuitocondosfue-297157.html)

No tomes el esquema tan en serio, es tan solo un esquema indicativo, faltan algunos filtros por ejemplo, no es el mejor ni mucho menos, estoy seguro que funciona pero mi intención era que observes que ninguna de las alimentaciones esta conectada entre si, lo cual favorece a la prohibición de transmisión de ruido a traves de la alimentación.

Ahora bien, si no vas a utilizar optoacoplador y si solo quieres utilizar una fuente, no puedes tener masas ni alimentaciones totalmente independientes, pero si puedes tomar ciertas consideraciones en el ruteado y el cableado para evitar que el ruido inducido en la linea de alimentación perturbe el circuito del PIC. El siguiente esquema tal vez te pueda aclarar el concepto:

Entrada digital de PIC sin optoacoplador (http://www.subirimagenes.com/otros-circuitoconunafue-297194.html)

Aunque a simple vista no haya diferencias apararentes en ambos circuitos, en el segundo las corrientes de alimentación del circuito del PIC y de los reles circulan por pistas diferentes lo que evita las caidas de tensión y las fluctuaciones provocadas por la conmutación de los reles y el ruido externo sobre el circuito digital del PIC. Te recomiendo que pruebes esta configuración pues no requiere grandes cambios en el PCB y en general da buenos resultados.

Mira, el tema de ruteado de alimentaciones en PCB es muy amplio y si uno quiere hilar fino debe ya entrar en el campo de la compatibilidad electrómagnetica y leer bastante teoria, si quieres informarte aunque sea un poco y rapidito puedes leerte algunos de los temas de este subforo como "Hablemos de ruido" entre otros. Hay personas que se han tomado el increible trabajo de sintetizar este complejo tema para que aquellos que lo desean puedan perderle el miedo al ruido  :mrgreen:. Estoy en estos momentos desarrollando una guia rapida para el desarrollo de PCBs que brinda consejos puntuales para diseñar un circuito sin entrar en tediosos desarrollos teóricos, mi intención es crear un pequeño apunte que sirva como guia para tener a mano a la hora de diseñar un PCB. Sin embargo, estoy bastante ocupado con la facultad y mis dos trabajos que te recomiendo que leas algo en este foro mas que esperar a volverte viejo para leer mi apunte  :D.

Esperamos a que nos cuentes como te ha ido. Saludos a todos.
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 07 de Abril de 2008, 14:23:38
Creo que voy por buen camino;  ya aterricé el blindaje del cable y mejoró, pero voy a montar en una tarjeta auxiliar los opto acopladores, como en el esquema de Gonzalo, a ver cómo funciona y por ahí derecho aprendo para futuras aplicaciones.  Ya les estaré contando como me va, gracias.
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 08 de Abril de 2008, 14:30:08
¡Listo el problema de ruido!

Utilicé los opto acopladores PC817 siguiendo el esquema de Gonzalo y está funcionando perfecto.

Muchas gracias a todos.
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 14 de Abril de 2008, 11:18:33
¡Listo el problema de ruido!

Utilicé los opto acopladores PC817 siguiendo el esquema de Gonzalo y está funcionando perfecto.

Muchas gracias a todos.

Todavía con problemas.

Pensé que ya lo había solucionado y que lo que faltaba era darle más tiempo al micro para responder a la pregunta del PC, pero se sigue perdiendo, le pregunto 5 veces y no responde, y es cuando trabajo con las 4 entradas digitales al mismo tiempo.

El esquema que utilicé fue el de flacoclau, el que está al principio del hilo, pero con los opto acopladores PC817.  No entiendo porque hay todavía ruido si las señales que vienen de los relés están aisladas de los pines del PIC por los optoacopladores (no tienen tierra común).

¿Será que sí le agrego algún condensador a las entradas digitales el problema se soluciona?
Título: Re: Un problema con caída de corriente.
Publicado por: flacoclau en 14 de Abril de 2008, 12:16:20
Ojo literatronic, fijate si el ruido además no está llegando por otro lado, como dicen los amigos, lo mejor es poner un condensador cerámico o similar soldado en las patas del zócalo del micro, otra cosa a ver es que alguna carga no te esté afectando la alimentación de 220V (caídas de tensión bruscas), si el gabinete es metálico, que tenga una tierra buena y real, o que el ruido no esté en el cable que va al pc o sea un bug del programa :shock:
bueno ya tienes donde buscar  :D :D :D
saludos amigo
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 14 de Abril de 2008, 12:28:02
lo mejor es poner un condensador cerámico o similar soldado en las patas del zócalo del micro

Me falta poner ese condensador flacoclau, si tenés un esquema de cómo conectarlo te agradecería;  es que me he puesto a hacerle un seguimiento exhaustivo al dispositivo y parece que se está reseteando y ahí es cuando deja de responder.

Muchas gracias.
Título: Re: Un problema con caída de corriente.
Publicado por: flacoclau en 14 de Abril de 2008, 13:26:32
En la placa donde está el micro de un lado tienes los componentes y del otro las pistas.
del lado de las pistas justo debajo del micro le sueldas un condensador de 10nf al positivo y a negativo de este micro.
Título: Re: Un problema con caída de corriente.
Publicado por: manex_1987 en 14 de Abril de 2008, 18:35:37
En la placa donde está el micro de un lado tienes los componentes y del otro las pistas.
del lado de las pistas justo debajo del micro le sueldas un condensador de 10nf al positivo y a negativo de este micro.

Yo siempre he visto y oido que es de 100nF... me gustaria oir una tercera opinion... (nose, 10nF tampoco parece mal pero bueno).

Coge como costumbre lo que dice flacoclau, pues dependiendo del circuito y del dia que tengas, es totalmente determinante ese condensador en si el diseño funciona o no.
Título: Re: Un problema con caída de corriente.
Publicado por: flacoclau en 14 de Abril de 2008, 21:08:12
Bueno mejor uno de 100nf que uno de 10nf  :)
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 15 de Abril de 2008, 10:48:51
Le puse uno de 10nF en donde dijo flacocalu y uno de 100nF de MCLR a tierra y nada,  pero ya se porque es que me deja de responder el prototipo, lo que pasa es lo siguiente: que el PIC que tengo con las entradas digitales manda esa información a otro PIC para que éste la transmita al PC, entonces, cuando el de las entradas digitales tiene problemas de ruido el de la comunicación se enloquece y deja de responder.

¿Qué podría hacer ahí?
Título: Un problema con caída de corriente.
Publicado por: Gonzalo_BlackHawk en 15 de Abril de 2008, 13:40:11
Hola literatronic, mira, por lo que veo el ruido en tu circuito ya se esta volviendo un tema pesado :shock: entonces va a haber que ser un poco mas especifico. Dejemos el hardware para unos parrafos mas adelante y centremosnos en el software. El problema es que tu tienes ya el PCB hecho y por lo tanto no me extraña que debas ajustar un poco tu programa para paliar un poco esta desventaja. ¿Estas ejecutando el programa con alguna proteccion antiruido? con protección antiruido me refiero a Checksum, chekpoints, flags de seguridad, llenado de memoria, tener el WDT activado, etc, etc. En que código hiciste el programa? Si es en C te puedo ayudar a volverlo un poco mas resistente, si es en ASM o en otro lenguaje, ya tienes que hablar con algun experto en el tema! Además puede influir mucho el protocolo en que transmites PIC a PIC, depende del tipo de transmisión se te puede estar colgando uno de los PIC por la interferencia del ruido sobre la linea de transmisión. Puedes subir aqui el programa si no te molesta y de seguro que habra gente para ayudarte.

Bueno, ahora vamos al hardware, tal como dijo flacoclau, hay tantas posibles causas de ruido que nunca hay que pensar que el PIC se cuelga por arte de magia, siempre tiene una explicación lógica y una solución en general simple, pero tan especifica y particular que es dificil de encontrarla en la mayoria de los casos. Primero te recomiendo que en el pin MCLR no pongas solamente la resistencia pull-up y el capacitor de 100 nF, he colgado anteriormente el circuito del MCLR que utilizo y si no utilizas el pulsador de reset, puedes quitarlo pero siempre debes dejar la resistencia de 2K2 entre el capacitor y el pin MCLR, para no sobrepasar las especificaciones de corriente de este pin cuando la corriente del capacitor fluye hacia el mismo debido a algun evento de ESD o de EOS, no me acuerdo donde lo lei, pero creo que aparece en los datasheet de todos los PIC. Además te recomiendo una resistencia de pull-up de menos de 40 K. Además recomiendo un capacitor de 10 uF en paralelo al ceramico de 100 nF en la alimentación del PIC, para proveerle suficiente corriente durante algun corto periodo de tiempo donde el PIC lo requiera. Es mas, deberias colocar el par 10uF, 100nF en todas las alimentaciones a IC que tengas en el PCB (menos los optoacopladores claro).

Mira, tienes muchas cosas para probar, flacoclau ya ha descrito algunas, el problema es que si realmente no quieres hacer el PCB de nuevo ni tampoco complicarlo (Lo cual me parece un pensamiento correcto) hay una solución radical y simple, pero que no es ni la mejor ni la mas eticamente correcta pero que puede ahorrarte que tu circuito impreso quede todo maltratado por hacerle modificaciones que no sabes si van a funcionar siquiera. Se trata de reforzar todo por software (yo sé que despues de este mensaje alguien me va a regañar por esto :D :D) pero me ha funcionado en ciertas ocasiones donde recibes un PCB realmente diseñado a ojo y que anda a duras penas y debes convertirlo en una joya sin gastar mucho dinero, ni mucho tiempo, ni dejar desprolijo el mismo. Puedes depurar, reforzar, consolidar, controlar, atrincherar, solidificar y encofrar el programa hasta hacerlo insusceptible a muchos problemas de hardware (Aunque no a todos aclaro). Bueno, esta solucion puede quedar para cuando no tengas mas ganas o esperanzas de modificar el hardware, jaja, por el momento puedes probar mientras algunas cositas que te hemos expuesto a lo largo de estos mensajes.

Mucha suerte con eso!!! Saludos a todos.
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 15 de Abril de 2008, 14:25:51
 :mrgreen: :mrgreen: :mrgreen:

Gracias Gonzalo, y a todos los que han opinado, por contestar y ayudarme.  Y bien, como decís, ya estoy cansado y me estoy volviendo pesado con este tema, así que antes de leer tu respuesta ya había empezado a reforzar el software y estoy esperando resultados;  hasta el momento ha mejorado, pero falta dejarlo más tiempo a ver cómo evoluciona.  Y ya empecé a diseñar otra tarjeta :)

Muchas gracias.
Título: Re: Un problema con caída de corriente.
Publicado por: Gonzalo_BlackHawk en 15 de Abril de 2008, 22:10:08
Perdona si se malinterpreto mi mensaje, no quise decir que tu eras pesado con el tema, los desafios estan buenos y no dudes que de este proyecto aprendimos todos algo. A lo que me referia es que el problema se esta volviendo pesado, severo por asi decirlo, lo que quiere decir que no se puede mas ir probando modificaciones por probar porque va a demorar mucho y a maltratar todo el PCB y que hay que hacer mas escuetas las soluciones en base a la informacion que tu puedas rastrear sobre el problema y asi tratar de encontrar la causa a este ruido que no quiere irse. Perdon si se entendio mal mi mensaje!!! Suerte!!

Saludos a todos.
Título: Re: Un problema con caída de corriente.
Publicado por: Azicuetano en 16 de Abril de 2008, 08:00:41
Hola literatronic!

La verdad es que todos los consejos que te ha dado Gonzalo son muy buenos.

Yo hecho de menos un esquema completo de tu diseño. Si lo pusieras podriamos ayudarte un poco mejor.

He leido, pero, no me hago una idea exácta de lo que tienes montado (y como).

PD: Gonzalo, tendremos que deliverar tácticas anti ruido  :D


Un saludo desde Alicante.
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 16 de Abril de 2008, 10:14:55
Este es el PCB que tengo montado en estos momentos, como pueden ver para mí el ruido no existía  :mrgreen:

Tengo otra tarjeta auxiliar, montada en una universal, que hice siguiendo el diseño de flacoclau, con la 4 entradas digitales que vienen de los transistores de los opto acopladores al conector IN DIG y con las señales que vienen de los relés alimentando los led que los activan (con alimentación independiente).

Agradezco la colaboración de todos ustedes.



 
Título: Re: Un problema con caída de corriente.
Publicado por: Azicuetano en 16 de Abril de 2008, 10:24:35
Poidrías poner también el esquema electrónico asociado al circuito impreso que has puesto?

Así será más facil ver de donde puede venir el problema.


Un saludo desde Alicante.
Título: Re: Un problema con caída de corriente.
Publicado por: Gonzalo_BlackHawk en 16 de Abril de 2008, 13:47:18
Hola a todos. Anduve viendo el PCB y no termino de espantarme  :D :D :D. Me recuerda a mis PCBs cuando no sabia ni lo que era la EMC (Compatibilidad electromagnetica). En realidad los mios eran peor, asi que no te preocupes literatronic, ya vienes adelantado a mi, jaja.

Veamos, puedo detectar algunos problemas viendo el PCB que, aunque no tienen porque ser los causantes de tus anormalidades de funcionamiento, pueden estar contribuyendo al problema principal o bien sumados se sinergizan y causan el reseteo que estas experimentando. Tal como ha dicho Azicuetano, si puedes colgar el esquematico podremos detectar causas con mas precisión. Paso a nombrar, que alguien me corrija si la embarro:

1) Veo un plano cuadrado de cobre sin conectar. Deberias conectar el plano a masa, eso es una verdadera antena para la EMI. Si no puedes conectarlo a masa quitalo del todo, es preferible que no este en esas condiciones.
2) Donde estan los pares de capacitores de desacoplo y de filtrado de cada integrado??!?! jaja, creo que segun nos has dicho, ya los has colocado, asi que es una cuestion menos.
3) No colocaste plano de masa ni plano de alimentación. Aunque en no todos los PCB pueda hacerse, si estas utilizando uno de doble cara es norma casi obligatoria utilizar un plano de masa y señales criticas en una cara y el plano de alimentación y las pistas de señal no criticas en la otra cara (Puede haber variaciones a la regla, lo importante es tener ambos planos y en caras distintas, lo de las señales es relativo). Ambos planos forman una capacitancia distribuida (Donde la placa vendria a ser el dielectrico) que filtra mejor que cualquier capacitor que coloques en el circuito. Como ya tienes hecho el pcb, no hay mucho que puedas hacer sobre este tema.
4) Los cristales no estan colocados a masa, si estas utilizando el encapsulado HC-49U (eso parece segun el PCB) puedes soldar la carcaza metalica a la masa.
5) La señales criticas que puedo reconocer a simple vista (no se si serán las que yo digo) no tienen pistas de guarda ni tampoco de shunt. Tampoco puedes hacer mucho sobre esto.
6) Veo pistas que corren paralelas en caras distintas y se superponen (adquieren ese color rosado que indica que coinciden a ambos lados de las caras) Si estas trasmitiendo a alta velocidad se te van a acoplar, no dudes de ello.
7) No reconozco buses en este circuito, pero si tienes alguno fijate que las pistas tengan casi la misma longitud y el mismo numero de vias (para que no halla reflexión y otras yerbas).
8 ) Colocar pistas de señal por debajo de los integrados es una muy buena idea.... si quieres que tu circuito no funcione! jaja, un a pequeña broma, trata de evitar esto, aunque reconozco que no hay PCB que halla hecho que no tenga una pista por debajo de algun integrado, pero siempre trato de evitarlo, lo mejor es que exista solo plano de masa debajo de los mismos.
9) Estan pasando pistas (no se que tipo de señal será) por encima de las señales de reloj de los integrados. No hace falta explicar porque no hay que hacerlo. No te preocupes, no hay que lamentarse, estas puedes quitarlas y hacer un bypass lejos de los cristales.
10) Yo coloco siempre anillos de guarda a los circuitos de reloj, pero bueno, no siempre puede hacerse  por cuestiones de ruteado.
11) Veo que algunas pistas adquieren angulos de 90º al doblar. Si estas pistas transportan señales a alta frecuencia, de seguro que en estos vertices se genera concentración de campo eléctrico y emisión de EMI. Lo mejor es utilizar angulos de 45º y ciertas proporciones en las longitudes respecto al ancho de pista que no voy a explicar porque ya entro a ser pesado.
12) Como no tienes plano de masa ni de alimentación puedes engrosar las pistas correspondientes para reducir la impedancia equivalente de ellas, con lo bueno que trae aparejado esta característica.
13) Las fichas de conexión no son adecuadas para utilizar cables mallados, pero creo que ya haz reparado sobre ese tema asi que un punto mas a tu favor!
14) Por ultimo, falta el filtrado de todas las entradas y salidas digitales, como decia Bob Perrin (Este señor diseña PLCs que dan miedo) "Pasa por un filtro todo lo que que entra y lo que sale tambien!".

Bueno, espero no haber quedado muy criticon con mi mensaje, solo quise exponerte las cuestiones que pueden estar ocasionando problemas con respecto al diseño del PCB, pueden regañarme si quieren :mrgreen:. Habria que ver el programa y el esquematico para poder ser un poco mas especifico, aparte no puedes hacer mucho sobre lo que te estuve nombrando, porque el PCB ya esta construido, pero no desesperes, lucharemos contra el ruido hasta hacerlo huir jaja. Suerte con las pruebas!

Saludos desde Argentina.

P.D: Azicuetano, cuando quieras intercambiamos ideas, yo que soy devoto utilizador de tus checkpoints! Si me han salvado esos numeritos!!! :D :D :D
Título: Re: Un problema con caída de corriente.
Publicado por: RICHI777 en 16 de Abril de 2008, 14:03:35
Hola Gonzalo, no creo que te conteste...despues de leer tu respuesta se suicido :S...
JAJAJAJA era una bromilla....
La tenes muy clara !!! se nota !!!
Saludos !
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 16 de Abril de 2008, 15:00:47
Nada de suicidio Richi777, al contrario, estoy muy contento con la respuesta de Gonzalo, con todos esos tics voy a poder hacer unas PCB mejores.

Lo de los filtros a todo lo que entra y sale del pic todavía lo puedo hacer con las señales que vienen de los relés, con las otras ni modo, si alguien tiene algún esquema con los valores del condensador y la resistencia lo agradecería mucho.

Muy agradecido Gonzalo, de verdad que por gente como vos es que estos foros salen adelante.

Azicuetano adjunto el esquema eléctrico para que lo miren y acaben de sorprenderse por la falta de protecciones  :mrgreen:
Título: Re: Un problema con caída de corriente.
Publicado por: flacoclau en 16 de Abril de 2008, 20:52:20
una duda me carcome, porqué tantos micros? que función cumple cada uno?
no se podría hacer que uno solo realice todo el trabajo?
saludos.
Título: Re: Un problema con caída de corriente.
Publicado por: Azicuetano en 17 de Abril de 2008, 07:56:07
Hola literatronic!

Con los 2 esquemas es más fácil ver lo que puede estar pasando  :mrgreen:

Te voy a comentar un par de cosas de vital importancia por orden de prioridad. Yo creo que si no cumples esas premisas es prácticamente imposible que te funcione.

Tienes que poner condensadores de desacoplo. Condensadores de 100nF entre Vcc y GND en cada integrado (lo más cerca de las patillas que puedas). No me explico como te funciona sin esos condensadores  :shock: (también recomiendo un condensador adicional de desacoplo de 10uF en paralelo con el de 100nF cuando hay relés de por medio).

Yo creo que si pones los condensadores de desacoplo reducirás enormemente el índice de cuelgues.

Otra cosa a tener muy en cuenta son los relés. En que pines están concretamente? Cual es el esquema definitivo que utilizas para las entradas digitales?

Concreta lo de los relés porfa.

También sería de utilidad que pusieras los fuses que utilizas en el programa.


Un saludo desde Alicante.
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 17 de Abril de 2008, 10:00:51

Tengo otra tarjeta auxiliar, montada en una universal, que hice siguiendo el diseño de flacoclau, con la 4 entradas digitales que vienen de los transistores de los opto acopladores al conector IN DIG y con las señales que vienen de los relés alimentando los led que los activan (con alimentación independiente).


Azicuetano gracias por tu interés y consejos  :)

Adjunto el esquema de como tengo conectadas las entradas digitales.

Lo de los condensadores de desacople no lo sabía, pero el amigo flacoclau ya me lo había recomendado y ya puse unos de 10nF, voy a cambiarlos por de 100nF. ¿En el AD595 y en el 75176 también?

Muchas gracias.
Título: Re: Un problema con caída de corriente.
Publicado por: Azicuetano en 17 de Abril de 2008, 10:50:35
Hola literatronic!

Los condensadores de desacoplo de 100nF los tienes que poner en todos los integrados que se tengan que alimentar con Vcc y GND (Microcontroladores, operacionales, etc. etc.). Que no se te olvide ponerlo lo más cerca que puedas de estas patillas.

Las entradas no tienen por que darte problemas si las tienes según el esquema que adjuntas (optoacopladas y con alimentaciones independientes). Pon todos los condensadores de desacoplo y dinos que tal te funciona. Así vamos descartando cosas.

Es importante que nos pongas la configuración de los fuses de tu programa.

Esperamos noticias  :o


Un saludo desde Alicante.
Título: Re: Un problema con caída de corriente.
Publicado por: flacoclau en 17 de Abril de 2008, 12:46:23
No se olviden de la exitación de las bobinas del relé,
ojo al piojo con esto
saludos!!
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 17 de Abril de 2008, 13:19:59
No se olviden de la exitación de las bobinas del relé,
ojo al piojo con esto
saludos!!

¿Flacoclau a qué te referís?

Azicuetano estoy utilizando dos 16F873A y dos 16F628A, uno de éstos (METROS) todavía no lo he puesto, entonces lo de los fuses se aplicaría sólo a un 16F628A, que es el que se encarga de la comunicación, y le he cargado dos fuses, pero sólo para probar.

Este es el programa:

'****************************************************************
'*  Name   : VES-TRACE.BAS                                                                     *
'*  Author  : [select VIEW...EDITOR OPTIONS]                                             *
'*  Notice   : Copyright (c) 2007 [select VIEW...EDITOR OPTIONS]                 *
'*              : All Rights Reserved                                                                 *
'*  Date     : 15/04/2008                                                                            *
'*  Version : 1.0                                                                                        *
'*  Notes    : PROGRAMA PARA EL PIC 16F628A EN DONDE ESTA LA              *
'*              : COMUNICACIÓN HACIA EL PC.                                                *
'****************************************************************

SYMBOL TXPIC = PORTB.7 'Para decirle al 16F873 que esta listo para recibir datos
SYMBOL RXPIC = PORTB.6 'Para saber que ocurrió un evento y para recibir los datos del 16F873
SYMBOL TX = PORTB.2    'Para enviar datos al PC
SYMBOL RX = PORTB.1    'Para recibir datos del PC
symbol TRANS = PORTB.5 'Para controlar la transmisión al PC por medio del 75176

UNIDAD  VAR BYTE[8]    'Donde se van a guardar los datos recibidos del PC

UNIT    VAR BYTE[16]   'Donde se van a guardar los datos recibidos del 16F873

i       VAR BYTE       'Para los ciclos for

'Definición de datos de CRC
CRCRX       var word     'registro donde se almacenara el resultado del CRCRX
CRCTX       var word     'registro donde se almacenara el resultado del CRCTX
cuenta1     var byte     'variable interna de la subrutina 1 del CRC
bit_dato1   var byte     'variable interna de la subrutina 1 del CRC
cuenta2     var byte     'variable interna de la subrutina 2 del CRC
bit_dato2   var byte     'variable interna de la subrutina 2 del CRC
CRCRX1      var CRCRX.BYTE0    'CRC1 es el primer byte del word CRCRX
CRCRX2      var CRCRX.byte1    'CRC2 es el segundo byte del word CRCRX
CRCTX1      var CRCTX.BYTE0    'CRC1 es el primer byte del word CRCTX
CRCTX2      var CRCTX.byte1    'CRC2 es el segundo byte del word CRCTX

'****************** PROGRAMA ************************************
@ DEVICE pic16f628A, MCLR_OFF 'Master Clear Externo desconectado
@ DEVICE pic16f628A, INTRC_OSC_NOCLKOUT 'Reloj interno solo

TRISB = %01011011
TRISA = %111111
PORTA = 0:PORTB = 0
UNIT[0] = 1

'RECEPCIÓN DE DATOS QUE VIENEN DEL 16F873A PRINCIPAL
SER_UNI1:
IF RXPIC = 1 THEN
GOSUB LIMP_UNIT
HIGH TXPIC
LOW TRANS
FOR i = 0 TO 15
    SERIN2 RXPIC,84,1000,SER_UNI2,[UNIT]
NEXT i
UNIT[0] = 1
LOW TXPIC
ENDIF

'RECEPCIÓN Y ENVIO DE DATOS DESDE Y HACIA EL PC
SER_UNI2:
GOSUB LIMP_UNIDAD
LOW TRANS
    SERIN2 RX,84,1000,SER_UNI1,[UNIDAD[0]]
IF UNIT[0] = UNIDAD[0] THEN         
FOR i = 1 TO 7
    SERIN2 RX,84,1000,SER_UNI1,[UNIDAD]
NEXT i
UNIT[1] = UNIDAD[1]
gosub CALC_CRC1
GOSUB CALC_CRC2
HIGH TRANS
HIGH TX
FOR i = 0 TO 15
    SEROUT2 TX,84,[UNIT
NEXT i
    SEROUT2 TX,84,[CRCTX2,CRCTX1] 
LOW TRANS
GOTO SER_UNI1
else
pause 6
goTO SER_UNI1
endif

'Subrutina de cálculo del CRC de la trama recibida desde el PC
CALC_CRC1:
CRCRX = $FFFF                        'inicio del CRCRX
FOR cuenta1 = 0 TO 5                 'bucle de análisis de byte
CRCRX = CRCRX ^ UNIDAD[cuenta1]      'or exclusiva
FOR bit_dato1 = 0 to 7               'bucle de análisis de bit de cada byte
if (crcRX&$01) = 1 then              'si el bit es uno
CRCRX = (CRCRX>>1)^ $A001            'desplaza y efectua or exclusiva
else 
crcRX = crcRX>>1                     'si el bit fué 0 sólo desplaza
ENDIF
NEXT bit_dato1
NEXT cuenta1
IF (CRCRX1 = UNIDAD[6]) AND (CRCRX2 = UNIDAD[7]) THEN RETURN 
GOTO SER_UNI1

'Subrutina de cálculo del CRC de la trama que se va a transmitir al PC
CALC_CRC2: 
CRCTX = $FFFF                        'inicio del CRCTX
FOR cuenta2 = 0 TO 15                'bucle de análisis de byte
CRCTX = CRCTX ^ unit[cuenta2]        'or exclusiva
FOR bit_dato2 = 0 to 7               'bucle de análisis de bit de cada byte
if (crcTX&$01) = 1 then              'si el bit es uno
CRCTX = (CRCTX>>1)^ $A001            'desplaza y efectua or exclusiva
else 
crcTX = crcTX>>1                     'si el bit fué 0 sólo desplaza
ENDIF
NEXT bit_dato2
NEXT cuenta2
RETURN

LIMP_UNIDAD:
FOR i = 0 TO 7
UNIDAD = 0
NEXT i
RETURN

LIMP_UNIT:
FOR i = 0 TO 15
UNIT = 0
NEXT i
RETURN

end
Título: Re: Un problema con caída de corriente.
Publicado por: Gonzalo_BlackHawk en 17 de Abril de 2008, 15:30:24
Hola a todos, bueno, acabo de ver el esquematico y termino de confirmar los tópicos que puse anteriormente para el PCB. Ahora viendo el programa (No se mucho de basic) creo que la cuestión pasa por el software. Veamos:

Según el fuse que haz colocado el pin MCLR no se utiliza como tal y por lo tanto se transforma en una entrada digital. Esto significa que si no le das un valor lógico a la misma este pin se transforma en una antena de AM, FM y televisión por cable  :D :D. No importa si es una resistencia a masa o a +5V porque total el MCLR se puentea interiormente a VDD. Veo que haz colocado una resistencia de pull-up de 10K, me parece perfecto, yo agregaria un capacitor de 100 nF entre esta entrada y masa porque este pin es muy susceptible al ESD (No me voy a explayar mucho sobre esto pero se que hay un post donde alguien tuvo problemas de ruido por no filtrar el pin de MCLR correctamente y la solución fue el capacitor que te estoy nombrando, si encuentro el post te paso el link).

Y tal como dice Azicuetano coloca los capacitores de desacoplo que te hemos mencionado. Utiliza 100 nF si tus PIC's trabajan a menos de 8MHz, a partir de esta frecuencia los capacitores de este valor entran en resonancia propia y dejan de comportarse como capacitores para comportarse como bobinas asi que no van a filtrar mucho del ruido digital que se induzca en la linea de alimentación si esto sucede. Por lo tanto que hayas colocado capacitores de 10 nF no me parece mal si tus PIC's trabajan a mas de esta frecuencia. Pero según estoy viendo, tienes tus 16F628A trabajando a 4 MHz por lo tanto yo colocaria capacitores de 100 nF (Salvo que los 16F873A esten clockeados por encima de los 8 MHz). Si todavia tienes dudas sobre que capacitor colocar hay una manera sencilla de sacarte del embrollo, coloca ambos valores de capacitores!.

Mira, has configurado los 16F628A para que trabajen con sus osciladores internos (de 4 MHz), asi que no necesitas ni los cristales ni los capacitores de corte de los mismos que colocaste. Deshazte de ellos y además configura tanto el OSC1/RA7 y el OSC2/RA6 como salidas digitales. Esto es importantisimo.

Debido al filtrado pobre que tienes de la alimentación yo activaría el fuse de Brownout, el PUT (Power-up timer) y el WDT (Watchdog timer) tambien, son fundamentales a la hora de reforzar un poquito las cosas. Y recuerda, no dejes ninguna entrada digital al aire, si no vas a darles un nivel lógico configuralas como salidas digitales.

Con respecto a lo de la excitación de las bobinas del rele que nombraba flacoclau, creo que teniendo una fuente separada del resto para alimentar los reles no tiene porque haber problemas de excitación, además tenemos los circuitos completamente aislados por los optoacopladores, así que no hay aparente relación entre los relés y el reset del PIC, salvo claro que los reles esten siendo activados por algun PIC de la placa en cuestión, pero no me acuerdo sinceramente como venia la cosa por ahi.

Bueno, creo que te hemos dejado bastante trabajo, jaja, luego nos cuentas como te fue. Saludos a todos.
Título: Re: Un problema con caída de corriente.
Publicado por: flacoclau en 17 de Abril de 2008, 16:28:36
Si me refiero a si los relés están aislados de la placa y como los has aislado,
ya que si lo haces con la misma alimentación creo que estamos en la misma, más si los relés son grandes.
saludos
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 17 de Abril de 2008, 17:30:51
Flacoclau los relés están en un gabinete que está como a 10 metros de la tarjeta con los PIC, se activan como parte del proceso industrial que estoy monitoreando, no están siendo activados por ningún PIC.

Gonzalo ya agregue los condensadores que me dijiste, en los MCLR y entre VCC y GND de todos los IC, también agregue los FUSES al programa del 16F628A;  ahora falta esperar y ver cómo se comporta.

Muchas gracias  :-/
Título: Re: Un problema con caída de corriente.
Publicado por: flacoclau en 17 de Abril de 2008, 20:58:58
Ah okis, mejor aún
Título: Re: Un problema con caída de corriente.
Publicado por: Azicuetano en 18 de Abril de 2008, 03:27:36
Es importante lo del Brownout y el Power-up timer (por eso te preguntaba los fuses) .

Antes cuando tenías alguna inestabilidad en la alimentación cabía la posibilidad de que el micro se colgara. Ahora con el Brownout activado lo que pasa es que cuando el PIC detecta algo raro en la alimentación se resetea (no se cuelga). Es imprescindible ponerlo (junto con el PUT y el WDT) si haces una aplicación seria.

Bueno, esperamos impacientes tus noticias.


Un saludo desde Alicante.
Título: Re: Un problema con caída de corriente.
Publicado por: literatronic en 18 de Abril de 2008, 11:36:14

Lo de los filtros a todo lo que entra y sale del pic todavía lo puedo hacer con las señales que vienen de los relés, con las otras ni modo, si alguien tiene algún esquema con los valores del condensador y la resistencia lo agradecería mucho.


Me falta hacer ésto para quedar más o menos listo con la PCB mal hecha que tengo  :mrgreen: 

En estos momentos el sistema está estable ya que al software en el PC, en Visual Basic, le he cambiado los tiempos, ésto es, le dí más tiempo para responder al PIC y le estoy preguntando tres veces, si ya no responde a la tercera ahí sí marco la falta de comunicación.

Un saludo a todos y muchas gracias.