6 votos

Reinicio intermitente del MCLR en el PIC32 - implica la conmutación de electroimanes

Estoy trabajando en un proyecto que implica mucha conmutación de electroimanes.

La conmutación está controlada por un microcontrolador de la serie PIC32MX6xx, que determina los estados necesarios de 80 electroimanes de 12 V CC (cada uno de los cuales consume entre 15 y 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 enciende/apaga un MOSFET, que a su vez enciende su respectivo electroimán.

El problema que estoy experimentando es que, cuando se conmutan los electroimanes, el PIC se reinicia intermitentemente. No hay ninguna secuencia/carga de conmutación en particular que provoque este reinicio, sino que ocurre de forma completamente aleatoria. A veces tarda unos 30 segundos de conmutación en reiniciarse, y otras veces casi 15 minutos.

Lo que sí sé es que es el reinicio del MCLR el que tiene lugar - lo determiné monitorizando el registro RCON, donde el bit EXTR-flag (evento de reinicio del MCLR) se pone en cada uno de esos reinicios. Este es el circuito inicial del PIC, con un enfoque específico en el pin MCLR y los condensadores de desacoplamiento como se recomienda en la hoja de datos del PIC.

MCLR pin and decoupling capacitors

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 observar la recomendación de un condensador en el pin MCLR para evitar reinicios involuntarios, añadí un condensador cerámico de 100 nF entre el pin MCLR y GND. Aún así, los reinicios siguen ocurriendo de forma intermitente, aunque parece que el intervalo entre reinicios es mayor que sin el condensador.

Con la esperanza de eliminar la ocurrencia del reinicio, sustituí la resistencia de 1k entre el interruptor y GND, así como la resistencia de 10k entre el pin MCLR y VDD por resistencias de 0 ohmios (cortocircuitos). Esto aseguraría que la clavija MCLR esté siempre conectada a VDD. El condensador de 100 nF también estaba presente. Por lo tanto, esencialmente el único componente conectado al pin MCLR es el condensador de 100 nF entre el pin MCLR y GND. Sin embargo, los reinicios intermitentes siguen ocurriendo.

El sistema está alimentado por un transformador industrial con una entrada trifásica de 380 VAC y una salida de 12 VDC. Esta salida de 12 VDC es la entrada de 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 VDC) hay un circuito supresor de sobretensiones formado por un MOV y un diodo snubber.

El circuito de conmutación MOSFET para cada electroimán es el siguiente: Electromagnet switching circuit

Como puede verse, el circuito de conmutación es una topología de circuito de conmutación de lado alto (común negativo), que utiliza tanto un transistor NMOS como PMOS para la conmutación. Nótese que también hay un diodo snubber/flyback. El LED sólo está ahí para indicar el estado del electroimán. Este es el circuito utilizado para cada electroimán del sistema.

Como el pin MCLR es una señal activa-baja, el único evento que puedo prever que desencadenaría el evento de reinicio es si hay una caída momentánea de VDD (ya que el pin MCLR está conectado directamente a VDD). Sin embargo, ya que VDD es proporcionada por un regulador de voltaje LM1085, mi conjetura sería que un repentino pico de voltaje "positivo" en el suministro de 12 VDC 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 la tensión de alimentación probablemente esté cayendo momentáneamente a un nivel tal que provoque una tensión lo suficientemente baja en la línea VDD que desencadene el evento de reinicio de la MCLR, aunque no puedo entender del todo cómo ocurriría eso. La única otra posibilidad en mi opinión podría ser que un pico de voltaje se propague en la señal GND, causando que el diferencial de voltaje entre VDD y GND se vuelva lo suficientemente pequeño como para estar dentro del rango considerado como una señal LOW en la línea MCLR, ya que la "tierra" del microcontrolador está momentáneamente por encima de 0 V durante la ocurrencia del pico de voltaje.

Algunas respuestas a posibles preguntas anticipadas:

  • Conectar los diodos flyback directamente a los electroimanes no es práctico debido a la ubicación de los electroimanes. Por ello, los diodos flyback se colocan junto con el circuito de conmutación MOSFET en la placa de circuito impreso de control.
  • Las salidas del circuito de control se terminan en un bloque Krone, donde también se terminan las líneas de señal positiva de los electroimanes. La distancia entre el bloque Krone y los electroimanes es de entre 2 y 10 metros.
  • Actualmente no tengo acceso a un osciloscopio para ver lo que realmente sucede en las líneas VDD y MCLR.

Teniendo en cuenta las precauciones que ya he tomado contra los picos de tensión/subidas, ¿qué me falta todavía? Es absolutamente crucial que el PIC no se reinicie intermitentemente como lo hace actualmente.

Se agradecerán mucho las aportaciones, los consejos y los comentarios.

Gracias de antemano.

1 votos

¿La salida del PIC está conectada directamente a la puerta del MOSFET?

0 votos

Excelente pregunta.

0 votos

@Trevor: No, es la salida del registro de desplazamiento la que está unida directamente a la puerta del MOSFET de canal N. ¿Es esto una preocupación?

3voto

RelaXNow Puntos 1164

Esto huele fuertemente a que las corrientes de retorno de los solenoides y las trayectorias de retroceso inductivo no están siendo manejadas adecuadamente. Hay grandes y rápidos picos de tensión en los solenoides. A veces uno de ellos se acopla lo suficiente al microcontrolador para confundir su lógica interna. El mecanismo de reinicio está siendo disparado, pero no por el pin externo MCLR.

Lo primero que debes hacer es AÑADIR UNA TAPA DE DERIVACIÓN a través de los pines de alimentación y tierra del micro. Coloca un tapón cerámico 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 bypass.

Aparte de eso, hay dos sospechosos obvios restantes: caminos de corriente de alimentación y de retorno mal diseñados, y retrocesos inductivos mal manejados.

Tu esquema no nos da ninguna idea de la disposición física de las corrientes de alimentación y 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 debería 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 de tierra, entonces las altas corrientes del solenoide en ese cable de tierra podrían causar un rebote de tierra para el micro.

Lo ideal es que haya alimentaciones separadas de energía y tierra para los solenoides y el circuito digital, y que éstas se conecten en un solo lugar cerca de la fuente de alimentación. Luego, por supuesto, tiene que haber una derivación adecuada de la energía en cada punto de uso en el lado digital.

Tienes un diodo que se supone que capta el retroceso inductivo, pero no has 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 alguna protección en el circuito conductor en caso de que ocurran cosas, pero para lidiar realmente con el contragolpe inductivo debe ser derivado tan cerca de la fuente como sea posible. Usted quiere contener la corriente desagradable en un bucle tan pequeño y local como sea posible. Lo pequeño minimiza su radiación y el acoplamiento capacitivo a otros lugares. Local evita que cause rebotes a tierra y similares a otras partes del circuito.

Como experimento, prueba a añadir diodos Schottky en sentido inverso a cada solenoide justo en el solenoide . Tal vez no pueda ponerlos en la producción final, pero haga el experimento de todos modos para ver si las cosas cambian.

Sospecho que observando 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 tapones de derivación, que colocara cuidadosamente las vías de corriente de retorno, que mantuviera los bucles pequeños, etc., y usted pensó "bypass schmypass, blah, blah" . Ahora ya sabes por qué es importante. Sí, a veces puedes prescindir de esto, pero tarde o temprano te alcanzará. Acaba de hacerlo.

0 votos

Muchas gracias por tu respuesta, Olin. Hay un montón de tapas de bypass lo más cerca posible de los pines de alimentación y tierra del PIC, como sugiere la hoja de datos. Estoy muy seguro de que las tapas de bypass son suficientes, pero volveré a comprobarlo. Según mis respuestas anteriores a los comentarios de otros carteles, uno de los culpables es el uso de rutas de retorno de tierra comunes (y líneas de alimentación) hacia y desde los solenoides. La separación de estos es sin duda una mejora del sistema. Actualmente tengo diodos 1N4007 y los sustituiré por los diodos Schottky según tu sugerencia.

0 votos

comentario anterior continuado Estoy seguro de que tengo una buena idea de cómo mejorar el diseño en torno a las líneas de tierra y de alimentación. La parte más complicada para mí para comprender / resolver adecuadamente es el manejo de la retroalimentación inductiva. Es extremadamente difícil llegar a los solenoides reales para añadir los diodos para un experimento. Lo mejor que puedo hacer es construir un pequeño equipo con solenoides similares y simular el sistema real y ver qué sucede. En cuanto a tu sugerencia de los diodos Schottky, ¿son éstos por lo general una opción mucho mejor que los diodos estándar 1N400x para una aplicación de este tipo?

0 votos

@wave: Los diodos Schottky suelen ser mejores para captar el contragolpe inductivo por sus rápidos tiempos de respuesta. Esto es esencial si se utiliza PWM, donde la corriente del pulso anterior sigue fluyendo cuando comienza un nuevo pulso. Los 1N400x son demasiado lentos para eso. Debido a la menor caída de tensión de los Schottkys, dejan que la corriente circule un poco más antes de apagarse. Esto puede ralentizar el tiempo de apagado de los relés. El tamaño correcto de la resistencia en serie se encarga de eso. Esencialmente se obtiene un voltaje de retroceso finito administrado de esa manera.

1voto

NuSkooler Puntos 2679

Al menos 4 caminos para alterar la MCU (1) acoplamiento de campos eléctricos a la RM (2) acoplamiento de campos magnéticos (3) colapso de VDD o sobretensión de VDD (4) Alteración de la GND, ya que las vías de retorno de los FETs comparten la GND con la MCU

Abordemos primero (4):

schematic

simular este circuito - Esquema creado con CircuitLab

Interesante, que una BATERIA LOCAL en los FET Drivers, usando inductores de 1uH en la línea de 12volt, con Rdampen de 0.03 ohm, aísla la basura de los FET Driver. Ese 1uH necesita manejar una alta corriente: 30 solenoides * 0,2amp = 6 amperios.

Observe la separación de GND entre los controladores FET y la MCU. Al hacer la BATERÍA LOCAL, las corrientes transitorias en GND son muy pequeñas; el condensador de 1.000uF proporciona las corrientes de sobretensión; si la conmutación de un solenoide tarda 10uS, a 0,2 amperios, la alteración de VDD en los FET Drivers es $$dV/dT = I/C$$ $$dV = I * T / C$$

$$dV = 0.2amp * 10uS / 0.001 Farad = 2e-6/1e-3 = 2 milliVolts$$

Si la BATERÍA LOCAL no detiene los reinicios, entonces una placa de blindaje puede ayudar. Para capturar la inyección de carga de Efield, ate el blindaje con un cable corto a la tierra de la MCU; ¿está usando un plano de tierra debajo de la MCU?

\===========================================

¿Qué tensión de perturbación, debido a las corrientes de conmutación rápida a través de MOSFETS? [advertencia: este ejemplo está destinado a perturbarle, para motivarle a atender a la planificación de la placa de circuito impreso ( o varias placas de circuito impreso) y los bucles. ]

Supongamos que tienes 0,2 amperios, que conmutan en 5 nanoSegundos. Fluyendo en un cable largo. Acoplándose magnéticamente en un bucle de 0,1 metros * 0,1 metros (4 pulgadas cuadradas). ¿Cuál es la tensión inducida, si la distancia es de 10 cm (0,1 metros)?

Utilice la fórmula $$Vinduce = [MU0*MuR*Area/2*pi*Distance] * dI/dT$$

Área = 0,1*0,1 = 0,01Metro. La distancia es de 0,1 metros. Mu0 es 4*I*10^-7. La fórmula se convierte en $$Vinduce = 2e-7 * Area/Distance * dI/dT$$

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 que conmutan simultáneamente: 1,6 voltios Tres FETS que conmutan simultáneamente: 2,4 voltios

Así que revisemos el sistema GND:

schematic

simular este circuito

0 votos

Gracias por la respuesta. Como señaló Trevor, las tierras compartidas entre los controladores FET/electroimanes y la MCU es una causa muy probable de los reinicios. En cuanto al concepto de BATERÍA LOCAL, ¿sugieres que añada el inductor de 1 uH y 1000 uF por cada 30 imanes? Si la alteración de la VDD (según tus cálculos) es de 2 mV por imán, ¿se sumaría proporcionalmente si se conmutan varios imanes simultáneamente? Además, ¿a qué te refieres con las "sobrecorrientes" que proporciona el condensador de 1000 uF? Hay un plano de tierra debajo de la MCU. Toda la superficie "no utilizada" en el PCB es un plano de tierra.

1 votos

La tapa de 1.000uF puede alimentar los 100 solenoides, si lo desea. Observe la resistencia de 0,03 ohmios, a la izquierda del 1uH. Ese valor se escoge de sqrt(L/C) para amortiguar, para evitar el timbre de ese L+C. Los cables largos a los solenoides, a 1uH/metro (regla de oro) son otra causa de timbre. Puedes escalonar la conmutación usando diferentes valores de resistencias desde el Shift Register a las puertas del FET; pero delta_R de 100 Ohms * 1000pF de Cgate es sólo 100nanosegundos de cambio en el retardo. Considera soldar un cable #22 en paralelo con la tierra existente, para unir varias piezas de GND. Sí, esos 2mV se suman.

0 votos

¿Entiendo correctamente que quieres decir que la tapa de 1000 uF filtra las corrientes de sobretensión, en lugar de proporcionarlas? Gracias por la aclaración sobre la resistencia de 0,03 ohmios. Veo que tu diagrama dice que es de 100 ohmios. ¿Es sólo un error tipográfico, o es esta resistencia allí, además de la resistencia de 0,03 ohmios, por lo que un total de 100,03 ohmios a la izquierda del inductor de 1 uH? Por "escalonar la conmutación", ¿te refieres a añadir resistencias de varios valores a las puertas del FET para tener en cuenta un promedio de las posibles longitudes de los cables a los electroimanes? No estoy muy seguro de lo que quieres decir con este "escalonamiento".

1voto

Callum Rogers Puntos 6769

Examinemos sus posibilidades.

El PIC tiene numerosas rutas de reinicio con varias banderas de registro para indicar el origen del reinicio. MCLR es una de ellas. Ya has probado a conectar el MCLR directamente a la vía de alimentación del PIC, así que puedes descartar que el ruido en ese pin sea la fuente de este evento.

El PIC también está equipado con un reinicio de encendido que se produce si se quita la alimentación y se vuelve a aplicar. Asumo que cuando dices que la bandera EXTR está activada, sólo está activada esa bandera, es decir, todas las demás banderas no están activadas. Por lo tanto, usted no perdió la energía en el chip.

Del mismo modo, la potencia no bajó ni se activó el indicador de caída de tensión.

Entonces, ¿qué nos deja eso... El chip hizo algo internamente que no se puede explicar.

¿Qué puede causar eso? El chip tiene un regulador de voltaje interno para manejar sus circuitos internos y requiere esa tapa C1, la tapa tiene que estar muy cerca del pin VCAP. Supongo que por ahora has seguido esas instrucciones.

Entonces, asumiendo que todo lo anterior es correcto, y que sabemos que el reinicio se produce al cambiar los solenoides, ¿qué puede estar pasando?

No has indicado en tus dibujos ni en el texto cómo está conectada la vía de retorno (masa) de los solenoides. Sin embargo, la posición del diodo fly-back D5, sugiere que las tierras son comunes entre la carga y la lógica. Eso sería un error. Las tierras de los solenoides tienen que volver al regulador de 12V a través de su propio camino, separado del sistema de tierra de 5V y el diodo fly-back tiene que estar conectado a esa tierra. El no hacerlo puede causar un pico significativo, o compensación, en la tierra de los PICs que hará cosas impredecibles internamente.

Dado que las longitudes de los cables son tan largas, también sugeriría añadir un pequeño circuito de amortiguación (R-C) a través del diodo fly-back.

Además, mirando tu circuito conductor, no veo ninguna resistencia a la puerta de Q25.

Los MOSFETS tienen una capacitancia significativa en la puerta tanto al drenaje como a la fuente. Esto significa que habrá un pico de corriente significativo en la salida del 74HC595 cuando enciendas y apagues el MOSFET. Además, cuando se apaga, el drenaje estará cerca de 12V y el 74HC595 tendrá que tirar de eso desde el condensador de la puerta. Cómo se vincula con el PIC y lo que hace a los internos del PIC es indeterminado.

0 votos

Gracias por la respuesta. Lamentablemente, no he comprobado si se han establecido otras banderas además de la bandera EXTR después del reinicio. Eso es algo que ciertamente tendré que volver a comprobar para estar seguro. El condensador está a unos 12 mm del pin VCAP debido al enrutamiento de las trazas de otros pines. Como has señalado, las conexiones a tierra entre los electroimanes y la lógica son comunes, lo que es una señal de alarma. Sobre el circuito snubber en el diodo flyback, ¿cuál sería una constante de tiempo adecuada para esto? ** comentario continuado en un nuevo comentario después de este **

0 votos

** Continuación del comentario anterior ** Efectivamente, no hay resistencia en la puerta de Q25. Tu comentario plantea una posible explicación para otro fenómeno: en algunos casos aislados, algunos transistores permanecieron "encendidos" después de que las salidas del 74HC595 cambiaran a 0 (apagado). Cuando esos electroimanes en particular se encendían de nuevo, los transistores NMOS se quemaban (la corriente máxima especificada para los transistores NMOS es de 0,5 A, mientras que los PMOS están especificados para 4,2 A). Este es otro problema que aún no he resuelto. Empezaré un hilo separado sobre esto pronto y pondré el enlace en la pregunta original.

1 votos

@wave.jaco El snubber RC tendrá que ser al menos *10 su tiempo mínimo de conmutación. Sí, esa pequeña resistencia en línea ayuda a proporcionar mucho aislamiento cuando se trata de cargas inductivas que crean picos bastante incómodos. Probablemente sea prudente añadir otra por encima del canal N a la puerta del canal P por la misma razón.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X