Estoy trabajando en un proyecto que involucra muchos cambios de electroimanes.
La conmutación está controlada por un microcontrolador de la serie PIC32MX6xx, que determina los estados requeridos de 80 electroimanes de 12 V CC (cada uno con un consumo de aproximadamente 15-200 mA) y envía estos datos a una serie de registros de desplazamiento 74HC595 interconectados. Cada una de las salidas de estos registros de desplazamiento activa o desactiva un MOSFET, que a su vez activa su electroimán respectivo.
El problema que estoy experimentando es que, cuando se cambian los electroimanes, el PIC se reinicia de forma intermitente. No hay una secuencia/carga de conmutación en particular que provoque este restablecimiento: sucede completamente al azar. A veces se necesitan unos 30 segundos de cambio para restablecerlo y, en otras ocasiones, casi 15 minutos.
Lo que sí sé es que es el restablecimiento de MCLR lo que se lleva a cabo; lo determiné al monitorear el registro RCON, donde el bit de indicador EXTR (evento de restablecimiento de MCLR) se establece en cada uno de esos restablecimientos. Este es el circuito inicial del PIC, con un enfoque específico en el pin MCLR y los capacitores de desacoplamiento según lo recomendado por la hoja de datos del PIC.
Se puede ver en el diagrama que hay una resistencia de 1k entre GND y el interruptor, así como una resistencia pull-up de 10k en el pin MCLR. Después de notar la recomendación de un capacitor en el pin MCLR para evitar reinicios no intencionales, agregué un capacitor cerámico de 100 nF entre el pin MCLR y GND. Aún así, los reinicios aún ocurren de manera intermitente, aunque parece que el intervalo entre reinicios fuera más largo que sin el capacitor.
Con la esperanza de eliminar la ocurrencia de reinicio, reemplacé la resistencia de 1k entre el interruptor y GND, así como la resistencia de 10k entre el pin MCLR y VDD con resistencias de 0 ohmios (cortocircuitos). Esto aseguraría que el pin MCLR siempre esté conectado a VDD. El condensador de 100 nF también estaba todavía presente. Por lo tanto, esencialmente el único componente conectado al pin MCLR es el capacitor de 100 nF entre el pin MCLR y GND. Aún así, los reinicios intermitentes continúan ocurriendo.
El sistema es alimentado por un transformador industrial con entrada trifásica de 380 VAC y salida de 12 VDC. Esta salida de 12 VCC es luego la entrada a dos reguladores de voltaje LM1085: uno con una salida de 5 V (que alimenta todos los circuitos integrados lógicos) y el otro con una salida de 3,3 V (que alimenta el PIC). Justo antes de las entradas del regulador de voltaje (entradas de 12 V CC) también hay un circuito de supresión de sobretensiones que consiste en un MOV y un diodo amortiguador.
El circuito del interruptor MOSFET para cada electroimán es el siguiente:
Como puede verse, el circuito de conmutación es una topología de circuito de conmutación de lado alto (negativo común), que utiliza un transistor NMOS y PMOS para la conmutación. Tenga en cuenta que también hay un diodo de retorno/amortiguador en su lugar. El LED está puramente allí para indicar el estado del electroimán. Este es el circuito utilizado para cada electroimán en el sistema.
Dado que el pin MCLR es una señal baja activa, el único evento que puedo prever que desencadenaría el evento de reinicio es si hay una caída momentánea en VDD (ya que el pin MCLR está conectado directamente a VDD). Sin embargo, dado que VDD es proporcionado por un regulador de voltaje LM1085, supongo que un repentino pico de voltaje "positivo" en el suministro de 12 VCC no causaría tal caída en la salida del regulador de voltaje. Por lo tanto, la única explicación que se me ocurre es que el voltaje de suministro probablemente esté cayendo momentáneamente a un nivel tal que provoque un voltaje lo suficientemente bajo en la línea VDD que active el evento de reinicio de MCLR, aunque no puedo entender cómo sería eso. suceder. En mi opinión, la única otra posibilidad podría ser que un pico de voltaje se propague en la señal GND,
Algunas respuestas a posibles preguntas anticipadas:
Dadas las precauciones que ya tomé contra los picos/sobrevoltajes de voltaje, ¿qué me falta todavía? Es absolutamente crucial que el PIC no se reinicie de forma intermitente como lo hace actualmente.
Los aportes, consejos y comentarios serán muy apreciados.
Gracias de antemano.
Esto huele fuertemente a que las corrientes de retorno del solenoide y las rutas de retroceso inductivo no se manejan correctamente. Hay picos de voltaje grandes y rápidos en los solenoides. A veces, una de estas parejas es suficiente para el microcontrolador como para confundir su lógica interna. El mecanismo de reinicio se dispara, pero no por el pin MCLR externo.
¡Absolutamente lo primero que debe hacer es AÑADIR UN TAPÓN DE BYPASS a través de los pines de alimentación y tierra del micro! Coloque una tapa de cerámica de 1 µF físicamente lo más cerca posible entre los pines de alimentación y tierra. Este es exactamente el tipo de síntoma que causaría la falta de un tapón de derivación.
Aparte de eso, quedan dos sospechosos obvios: rutas de alimentación y corriente de retorno mal diseñadas, y contragolpes inductivos mal manejados.
Su esquema no nos da ninguna idea del diseño físico de la potencia y las corrientes de retorno a los solenoides. El bucle de corriente de la fuente de alimentación al solenoide y de vuelta a la fuente de alimentación debe tener lo menos posible en común con el bucle de alimentación del microcontrolador. Por ejemplo, si los dos comparten una sección significativa de un cable a tierra, entonces las altas corrientes de solenoide en ese cable a tierra podrían causar un rebote a tierra para el micro.
Idealmente, hay alimentaciones de energía y tierra separadas para los solenoides y el circuito digital, con estos conectados en un solo lugar cerca de la fuente de alimentación. Luego, por supuesto, debe haber una derivación adecuada de la energía en cada punto de uso en el lado digital.
Tiene un diodo que se supone que atrapa el retroceso inductivo, pero no ha mostrado ninguna especificación. No, un 1N400x no es apropiado aquí. Prefiero ver un diodo Schottky, debido a sus tiempos de respuesta muy rápidos.
La colocación del diodo también es importante. Es bueno tener algo de protección en el circuito del controlador en caso de que sucedan cosas, pero para lidiar realmente con el retroceso inductivo, debe derivarse lo más cerca posible de la fuente. Desea contener la corriente desagradable en un bucle lo más pequeño y local posible. Small minimiza su radiación y acoplamiento capacitivo a otros lugares. Local evita que provoque rebotes en el suelo y similares en otras partes del circuito.
Como experimento, intente agregar diodos Schottky en reversa a través de cada solenoide justo en el solenoide . Tal vez no pueda ponerlos allí en la producción final, pero haga el experimento de todos modos para ver si las cosas cambian.
Sospecho que al observar una higiene adecuada, las cosas funcionarán mucho mejor. Después de arreglar este lío, reflexione sobre todas las veces que le dijeron que usara tapas de derivación, coloque con cuidado las rutas de corriente de retorno, mantenga los bucles pequeños, etc., y pensó "bypass schmypass, blah, blah" . Ahora sabes por qué es importante. Sí, a veces puedes salirte con la tuya sin esto, pero tarde o temprano te alcanzará. Simplemente lo hizo.
Examinemos sus posibilidades.
El PIC tiene numerosas rutas de reinicio con varias banderas de registro para indicar la fuente del reinicio. MCLR es uno de ellos. Ya intentó vincular el MCLR directamente al riel de suministro para el PIC, por lo que puede descartar el ruido en ese pin como la fuente de este evento.
El PIC también está equipado con un reinicio de encendido que se produce si se desconecta y se vuelve a aplicar la alimentación. Asumo que usted dice que el indicador EXTR está configurado para que SOLO ese indicador esté configurado, es decir, todos los demás indicadores no están configurados. Como tal, no perdió energía en el chip.
De manera similar, la energía no se redujo o se establecería la bandera de apagón.
Entonces, ¿qué nos deja eso? El chip hizo algo internamente que no puedes explicar.
¿Qué podría causar eso? El chip tiene un regulador de voltaje interno para impulsar su circuito interno y requiere esa tapa C1. La tapa debe estar muy cerca del pin VCAP. Supongo que por ahora seguiste esas instrucciones.
Entonces, suponiendo que todo lo anterior es correcto y sabemos que el reinicio ocurre cuando cambia los solenoides, ¿qué podría estar sucediendo?
No ha indicado en sus dibujos o texto cómo se conectan las rutas de retorno (tierras) para los solenoides. Sin embargo, la posición del diodo de retorno D5 sugiere que las tierras son comunes entre la carga y la lógica. Eso sería un error. Las tierras de los solenoides deben regresar al regulador de 12 V a través de su propio camino, separadas del sistema de tierra de 5 V y el diodo de retorno debe conectarse a esa tierra. Si no lo hace, puede causar un aumento significativo, o una compensación, en el terreno de los PIC, lo que hará cosas impredecibles internamente.
Dado que las longitudes de sus cables son tan largas, también sugeriría agregar un pequeño circuito amortiguador (RC) a través del diodo de retorno.
Además, al observar el circuito de su controlador, no veo ninguna resistencia en la puerta de Q25.
Los MOSFET tienen una capacitancia significativa en la puerta tanto del drenaje como de la fuente. Eso significa que habrá un pico de corriente significativo en la salida del 74HC595 cuando encienda y apague el MOSFET. Además, cuando lo apague, el drenaje estará cerca de los 12 V y el 74HC595 tendrá que bajarlo del condensador de fuente de compuerta. Cómo se relaciona eso con el PIC y qué hace eso con las partes internas del PIC es indeterminado.
Al menos 4 rutas para trastornar la MCU (1) acoplamiento de campos eléctricos a MR (2) acoplamiento de campos magnéticos (3) colapso de VDD o sobretensión de VDD (4) alteración de GND, con las rutas de retorno FET que comparten GND con MCU
Abordemos (4) primero:
simular este circuito : esquema creado con CircuitLab
Es interesante que una BATERÍA LOCAL en los controladores FET, utilizando inductores de 1uH en la línea de 12 voltios, con 0,03 ohm Rdampen, aísle la basura del controlador FET. Ese 1uH necesita manejar alta corriente: 30 solenoides * 0.2amp = 6 amperios.
Observe la separación de GND entre los controladores FET y MCU. Al hacer la BATERÍA LOCAL, las corrientes transitorias en GND son muy pequeñas; el capacitor de 1,000uF proporciona las sobrecorrientes; si cambiar un solenoide toma 10uS, a 0.2 amperios, el VDD alterado en los controladores FET es
Si la BATERÍA LOCAL no detiene los reinicios, entonces una placa protectora puede ayudar. Para capturar la inyección de carga de Efield, ate el blindaje con CABLE CORTO a MCU TIERRA; ¿Está utilizando un plano de tierra debajo de la MCU?
===========================================
¿Qué voltaje alterado, debido a corrientes rápidamente conmutadas a través de MOSFET? [ advertencia: este ejemplo pretende molestarlo, motivarlo a que preste atención a la planificación de la PCB (o varias PCB) y los bucles. ]
Suponga que tiene 0,2 amperios, cambiando en 5 nanosegundos. Fluyendo en un cable largo. Acoplamiento magnético en un bucle de 0,1 metros * 0,1 metros (4 pulgadas cuadradas). ¿Cuál es el voltaje inducido, si la distancia es de 10 cm (0,1 metros)?
Usa la fórmula
Área = 0,1*0,1 = 0,01 metros. La distancia es de 0,1 metros. Mu0 es 4*I*10^-7. La fórmula se convierte
Vinduce = 2e-7 * 0,01/0,1 * 40 millones de amperios/segundo Vinduce = 2e-7 * 0,1 *40e+6 = 8 * e-7 * e+6 = 8 * e-1 = 0,8 voltios.
Dos FETS de conmutación simultánea: 1,6 voltios Tres FETS de conmutación simultánea: 2,4 voltios
Así que revisemos el sistema GND:
Trevor_G
analogsystemsrf
ola.jaco