TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: Nocturno en 02 de Julio de 2010, 07:16:48
-
Compañeros, vengo a contaros el problema que he tenido con unos expansores de puertos MCP23017 de Microchip, que ofrecen dos puertos de 8 pines con las mismas prestaciones que si estuvieran integrados en el PIC: entrada, salida, interrupciones, pullups,... fácilmente gestionables mediante una conexión I2C (o SPI si se trata del modelo MCP23S17).
A priori son estupendos, van muy rápido, son muy sencillos de usar y muy versátiles.
Pero ojo, no los pongáis nunca cerca de un relé. El problema que he tenido con ellos me ha costado más de 600Km con el coche, un montón de horas invertidas y bastante dinero.
En una aplicación donde conviven estos expansores para manejar un panel de leds con unos TPL9202 para gestionar 20 relés, al principio se volvían locos y los leds se encendían y apagaban al ritmo de una bachata sin que el PIC pudiese hacer nada por evitarlo. Los TPL9202 seguían respondiendo bien y por tanto mi aplicación funcionaba aunque no mostraba información válida por los leds.
Pensé que una solución viable sería leer los MCP justo detrás de enviarles un dato, comparar lo leído con lo enviado y en caso de fallo resetear el expansor y escribir de nuevo. Lo implementé en mi librería I2C y los cabrones de los expansores no sólo se han quedado colgados de nuevo, sino que además dejaban a mi PIC en un bucle sin fin porque jamás podía validar que lo enviado era igual a lo leído.
En fin, que ayer decidí tirar los MCP a la basura y divorciarme de ellos para sustituirlos por un PIC que haga su misma función. Y en eso ando.
Pero necesitaba desahogarme y compartirlo para que nadie más cometa mi error: si usas un MCP, que sea muy lejos de cualquier cosa que pueda caerle mal, porque se cerrará en banda y no querrá trabajar más.
-
Hola Manolo
no tendras algun problema con el CEM(compatibilidad electro magnetica) en la placa??
-
Hola Manolo
Talvez ya hayas aplicado esto...
- Reducir la velocidad I2C a 100kHz o lo menor que el CI soporte
- Aplicar filtros a la alimentación del CI y a las resistencias pull-up
- Utilizar optos a la salida de cada pin del CI
Tendré en cuenta tu experiencia, gracias. :mrgreen:
-
Gracias por lo consejos, amigos.
Estoy seguro que el circuito podría mejorarse, pero he tomado un montón de precauciones:
- filtro de línea en la alimentación formado por dos bobinas y dos condensadores
- diodo en serie para protección de polaridad inversa
- condensadores de desacople por todas partes
- metido dentro de caja metálica de aluminio con conexión a masa para crear jaula de Faraday
Y por cierto, la velocidad del I2C la tenía puesta a 1KHz. Y no puse optos a la salida de los MCP porque su función era únicamente iluminar leds; sus entradas y salidas no salían fuera ni tenían relación con otros circuitos.
En fin, la prueba de que aquello no va mal es que está funcionando perfectamente, con el PIC y los 3 TPL9202 que ya están dentro. Insisto: si usáis los MCP, que os pillen confesados.
-
:D :D
Bueno, pues a buscar un reemplazo entonces... pero que no sea un PIC. :mrgreen:
-
Hola amigos,
Entiendo completamente tu rabia e impotencia ante una falla de algo que debería funcionar muy bien. Estoy seguro que no hay mucho que decir en tu PCB, tienes la experiencia y trabajos realizados para dar por descartado error de PCB. Te apoyo en decir que esos MCP23x17 son malos!!!
Muchos tal vez digan que uno no los sabe usar o que uno no sabe programarlos para que trabajen bien, otros dirán muchas cosas respaldando el dispositivo... Pero sus respuestas están dadas porque a ellos les va bien, pero eso depende netamente de la aplicación desarrollada por cada uno.
Hace un tiempo me resulto un trabajo a desarrollar en el que sin dudarlo tome un PIC18F4550-I/P ("Industrial")... para controlar un sistema de llenado y empacado en donde los Reles, Solenoides y demás fuentes y generadores de ruido electromagnético están a merced.
El resultado es que son MALOS!!, fallan y fallan y como bien te escuche decir en otro hilo.. en casa todo va bien y uno cree que esta perfecto, pero en donde deben hacer su trabajo NO LO HACEN. Se pierden, se desentienden de sus operaciones debidamente programadas y verificadas en taller. Y uno también se desespera al ver que en taller funciona perfecto pero donde el cliente no, cambias impresos, haces de todo y nada que se soluciona.. Sigues al pie de la letra el hilo "Luchando contra el ruido" y nada da resultado. Hasta llegaba al extremo de perder datos de la FLASH, se perdía el programa.
Al filo del desespero, pregunta a uno de mis profesores de Pregrado y me recordó algo que había escuchado hace tiempo pero no prestaba atención.. Los FREESCALE son mejores en ambientes industriales, por su método de fabricación del CHIP tienen grandes diferencias que los hacen la mejor opción en proyectos que no deben fallar.
Desde entonces, los uso y hasta ahora me han dado soluciones fiables.
En fin, todo esto que digo es solo para comentar que uno no debe casarse con una marca en especial, cada una ofrece características especiales que en algún momento dan solución a un problema concreto.
SALUDOS!
-
Me tomo muy buena nota de tu aviso porque tengo unos cuantos que quería utilizar y veo que hay que hacerlo con mucho, mucho, mucho cuidado, como bien dices parece que son iguales que los puertos verdaderos pero menos iguales de lo que parecería. Gracias maestro por el aviso.
-
Buenas..
Ya se escucho por muchos lados que los pic son sensibles al ruido para usos robustos. Entonces que me pueden decir , si alguien tiene una referencia, sobre los dspic para aplicaciones de control industrial???
Recuerdo que en el ultimo seminario de dspic alguien realizo la pregunta de que tan sensibles eran al ruido los dspic en ambientes industriales, y la logica respuesta de alguien que esta realizando un servicio para la compania, fue que estaban realizados especialmente para esas aplicaciones y que no tenian ningun problema...
Hoy en dia me encuentro aprendiendo un poco de dspic para realizar un control trifasico, algo asi como un variador de velocidad o inverter de una potencia considerable...
Entonces...
¿que me convendria mas?.. seguir aprendiendo con un dspic que tendria problemas para aplicarlo o cambiarme a un freescale o a un texas? que son palabras mayores y no tienen tanta informacion.
saludos
-
Por fin he resuelto el problema: como anticipaba le he puesto un PIC emulando a los expansores y ahora funciona de lujo.
Y como el PIC que he puesto tiene más de 32 pines, para colmo me sale más barato:
2 x MCP23017 = 2 x 1.23€ = 2.46€
1 x 16F887 = 2.34€
-
Vaya, qué cosas. Qué bueno que ya funciona.
-
Nocturno no probastes con un expansor de puertos de otras companias???
-
No, me decanté directamente por cambiar a un PIC.
-
Buenas..
Ya se escucho por muchos lados que los pic son sensibles al ruido para usos robustos. Entonces que me pueden decir , si alguien tiene una referencia, sobre los dspic para aplicaciones de control industrial???
Recuerdo que en el ultimo seminario de dspic alguien realizo la pregunta de que tan sensibles eran al ruido los dspic en ambientes industriales, y la logica respuesta de alguien que esta realizando un servicio para la compania, fue que estaban realizados especialmente para esas aplicaciones y que no tenian ningun problema...
Hoy en dia me encuentro aprendiendo un poco de dspic para realizar un control trifasico, algo asi como un variador de velocidad o inverter de una potencia considerable...
Entonces...
¿que me convendria mas?.. seguir aprendiendo con un dspic que tendria problemas para aplicarlo o cambiarme a un freescale o a un texas? que son palabras mayores y no tienen tanta informacion.
saludos
La verdad no puedo generalizar, porque los dsPIC nunca los probé, los PIC32 apenas empiezo y prometen mucho.. como bien decía cada uno puede dar opinión según sus experiencias.. Para mi parecer en 8 bits, Freescale es superior hasta lo que pude probar.. Lo que no me gustaba era que fueran poco flexibles con el oscilador al momento del arranque, decidir si se quiere XT, HS RC solo al programar considero era su talón de Aquiles. Entiendo que en los últimos que van saliendo al mercado, inclusive los 18FxxJxx de 8 bits ya se ha solucionado dicho problema.
-
Hola amigos,
Entiendo completamente tu rabia e impotencia ante una falla de algo que debería funcionar muy bien. Estoy seguro que no hay mucho que decir en tu PCB, tienes la experiencia y trabajos realizados para dar por descartado error de PCB. Te apoyo en decir que esos MCP23x17 son malos!!!
Muchos tal vez digan que uno no los sabe usar o que uno no sabe programarlos para que trabajen bien, otros dirán muchas cosas respaldando el dispositivo... Pero sus respuestas están dadas porque a ellos les va bien, pero eso depende netamente de la aplicación desarrollada por cada uno.
Hace un tiempo me resulto un trabajo a desarrollar en el que sin dudarlo tome un PIC18F4550-I/P ("Industrial")... para controlar un sistema de llenado y empacado en donde los Reles, Solenoides y demás fuentes y generadores de ruido electromagnético están a merced.
El resultado es que son MALOS!!, fallan y fallan y como bien te escuche decir en otro hilo.. en casa todo va bien y uno cree que esta perfecto, pero en donde deben hacer su trabajo NO LO HACEN. Se pierden, se desentienden de sus operaciones debidamente programadas y verificadas en taller. Y uno también se desespera al ver que en taller funciona perfecto pero donde el cliente no, cambias impresos, haces de todo y nada que se soluciona.. Sigues al pie de la letra el hilo "Luchando contra el ruido" y nada da resultado. Hasta llegaba al extremo de perder datos de la FLASH, se perdía el programa.
Al filo del desespero, pregunta a uno de mis profesores de Pregrado y me recordó algo que había escuchado hace tiempo pero no prestaba atención.. Los FREESCALE son mejores en ambientes industriales, por su método de fabricación del CHIP tienen grandes diferencias que los hacen la mejor opción en proyectos que no deben fallar.
Desde entonces, los uso y hasta ahora me han dado soluciones fiables.
En fin, todo esto que digo es solo para comentar que uno no debe casarse con una marca en especial, cada una ofrece características especiales que en algún momento dan solución a un problema concreto.
SALUDOS!
hola
Siemper he escuchado en algunos circulos, como que los pic no son muy bien vistos para desarrollos comerciales o industriales. La verdad que no he visto en entornos comerciales desarrollos con pic (que no quiere decir que no existan) y en comerciales solo he dado con un producto. ¿Para desarrollos comerciales es mejor utilizar otra cosa?. Porque los que casi siempre trabajamos con pic, si tenemos que portar algun codigo a otros micros que hemos utilizado pocas veces, pufff, el diseño se alarga aparte de no controlar hasta que punto va a funcionar. no se si los micros sencillos de freescale/atmel/etc se puedes programar asi mismos (como los bootloader). un amigo que controla de electronica me enseño a utilizar estos micros, pero lo basico (me dijo que luego avanzara yo que el tiene lio) y no se si se puede estas cosas.yo la verdad que he utilizado los pic para diseños basicos, mas digitales que otra cosa.
saludos de antonio
-
Buenas... Los paneles de comando de los Arrancadores suaves de Siemens (3RW44), estan hechos con PIC!!!, ese es un ejemplo de desarrollo comercial con pic. El unico que vi por cierto asi de una firma importante....
Saludos
-
Aquí una lista con varios expansores de puertos de Phillips (NXP) que incluso en el mismo empaque también incluyen EEPROM.
http://www.nxp.com/documents/application_note/AN469.pdf
-
Que tal los PCF8574 (http://www.nxp.com/documents/data_sheet/PCF8574.pdf). Alguien los ha probado?
-
Les dejo un enlace de la robustez de productos Microchip. Cuando los proyectos no salen porlo general le hechan la culpa al PIC. pero los errores vienen de una mala programacion o de un mal diseño de la tarjeta suceptible a los ruidos.
PIC EMC (http://www.microchip.com/stellent/groups/sitecomm_sg/documents/devicedoc/en552381.pdf)
-
Estoy usando un PCF8574 para manejar un LCD de 2x16 dentro de una fuente de PC modificada como medidor de voltaje, corriente y temperatura (http://www.todopic.com.ar/foros/index.php?topic=46441.60), con cargas pequeñas o en vacío, todo funciona bien, pero con cargas altas en la fuente, el LCD muestra caracteres erroneos de vez en cuando. El PIC que controla el expansor de puertos doy por echo que no se cuelga, pues al siguiente refresco de la pantalla funciona de forma normal.
El PCF8574 es uno montado en una de estas plaquitas:
http://www.nexuscyber.com/content/images/thumbs/0000141_blue-backlight-1602a-lcd-module-i2c-interface.jpeg
El esquema del modulito es este:
http://www.sunrom.com/media/content/1049/PCF8574-I2C-LCD-SCHEMATIC.gif
En mi PCB tengo puesto un condensador justo en el conector donde sale la alimentación al modulito.
Recordé este tema, y lo busqué ¿Alguien ha experimentado problemas con este expansor de puertos?
Gracias un saludo.
-
No pero encontre varios de esos integrados en placas de una empresa de telefono, por lo que parece les funcionaba bien :P
-
Les dejo un enlace de la robustez de productos Microchip. Cuando los proyectos no salen porlo general le hechan la culpa al PIC. pero los errores vienen de una mala programacion o de un mal diseño de la tarjeta suceptible a los ruidos.
PIC EMC (http://www.microchip.com/stellent/groups/sitecomm_sg/documents/devicedoc/en552381.pdf)
yo coincido con tigo, en verdad no hice muchas cosas con micros, pero ....... he estado leyendo tranquilo este tema y fijense que curioso:
Nocturno lo soluciono CON OTRO PIC !!!! algo con muchos reles que le daba problemas.
ademas, leo siempre de "ruido" pero nadie dice exactamente a que se refieren , yo trabajo ( no cosas complejas) desde hace 30 años y es innegable que las cosas salen TRANQUI TRANQUI...... lo que le paso a nocturno seguro que es malo, es un problema con algo ya hecho, eso es un dolor de huevos, esto no es pintar una pared.
y no tenes tranquilidad.
ojo, no tengo NPI de esos expansores, quizas , si lo mira tranquilo descubre la falla, que incluso puede ser un problema de microchip que este en alguna nota de aplicacion o de error, o de lo que sea.
jeeee ..... yo no se como hacen ustedes, pero la ultima vez que trabaje con un micro recuerdo , cualquier micro la datasheet son cientos de paginas.
ustedes programan en C . eso lso libera de muchas cosas...... anda a saber que pavada que esta en una pagina de las chiquicientas de la datasheet, o de alguna AN de esas adicionales.......
PD:
donde hay pic ??
protectores de trifasica ( que a veces soportan sobretensiones y bajas)
toda la linea blanca, dentro de lavarropas que bailan, soportan agua, cargas L
placas de chispero de calderas, en la misma placa la bobina de AT !!!!!! ..... en medio de la misma placa !!!!!
DE TODO !!!!!!!
pero esa gente NO hace una placa en la mesa y espera que en la planta funcione, no se desesperan por eso ( ojo, yo entiendo ) , esa gente DISEÑA y prueba en las peores condiciones, saben que fallaran cosas y las verifican y solucionan y bla bla bla......
Es como es la cosa, a mi ( disculpen , de nuevo NO estoy criticandolos ) , de verdad saben mucho y SE DEDICAN , son gajes de el oficio, ademas, para mi no es asi como se deberia trrabajar ( pero muchsiimas veces no queda otra) :
el clietne que pide un diseño deberia de valorar mas y pagar mas y aceptar y entender que parte de el diseño es que si falle en el campo , que se hagan pruebas de campo y se vayan solucionando problemas .
por desgracia en la practica no es asi ....... y mucha culpa de eso la tienen LOS FOROS.
que ?? ruido es ??
ruido en la linea ?? hay para eso muchas cosas adecuadas .
ruido electromagnetico ?? a que se refieren ? donde ?? .
Nocturno hablod e velocidad de 1Khz ...
buejhh.. un saludo
pavadas mias, pero de nuevo les digo :
pic he visto en montones de sitios , Y NO PUEDEN DECIR que una industria es muy distinta de un hogar que posee cosas electronicas , cargas inductivas.
es mas, miren .... si me van a decir que "tal industria" es dificil para un pìc les preguntare algo :
en esa dichosa industria nadie puede enchufar una radio ??
no se conectan equipos de PC en las oficinas ??
no ponen a cargar el celular empleados en la planta ??
un reloj enchufado a la pared??
un TV para distraerse??
la maquinita de cafe ??
la maquina que expende comida ??
TODO ESO SE DEBERIA DE VOLVER LOCO ya que no me diran que todas esas csoas se diseñan con freescale para ambientes industriales ??
me diran eso ???
ven al incoherencia
-
.................................................
-
Pues parece que elñato tiene razón, siempre me voy a lo más dificil, pensé en problemas de ruido, y al parecer es un error de programación al sobrepasar las direcciones de un array manejado como puntero, hice un copia-pega de la condición de salida del bucle, y no era la correcta.
Gracias, saludos!!!