Atmega328p se reinicia y falla al encender los solenoides

Tengo problemas con mi placa PCB basada en el microcontrolador atmega328p (muy similar a una placa Arduino independiente).

Este es mi esquema de PCB actual y la placa Eagle .

ESQUEMAS ACTUALIZADOS!

ingrese la descripción de la imagen aquí

Utilizo conectores en VSX, VDX, MOT1A, MOT2A, MOT2A, MOT2B para encender y apagar las válvulas de solenoide (las válvulas están clasificadas como 12 V CC, 2 A como máximo).

La placa funciona aleatoriamente bien solo durante unos segundos o minutos hasta que el micontrolador falla o se reinicia y creo que esto sucede debido al ruido de los solenoides.

La alimentación principal es de 12 V CC, 35 A (utilizada para las válvulas y el relé) y luego utilizo un regulador de voltaje de 5 V CC para encender el atmega328p.

Como puede ver, ya agregué diodos flyback en cada mosfet, pero puede que esto no sea suficiente para evitar el ruido del solenoide. También torcí cada par de cables (la longitud máxima del cable es de 90 cm) que conectan los pines de las válvulas a los conectores VSX, VDX, MOT1A, MOT2A, MOT2A, MOT2B y agregué un diodo adicional en paralelo en cada pin de válvula.

¿Cómo puedo resolver el problema? Estaba pensando en agregar tapas de cerámica de 100 nF entre VCC y GND y AREF y GND y AVCC y GND lo más cerca posible de las almohadillas del microcontrolador y otra tapa de 100 nF en paralelo en cada pin de válvula. ¿Crees que puede ser suficiente para resolver el problema?

Desafortunadamente, creo que no puedo separar la fuente de alimentación del solenoide de la fuente de alimentación atmega328p ya que actualmente comparten la misma TIERRA.

¿Qué puedo hacer para solucionar el problema si sigo usando la misma placa PCB?

No estoy exactamente seguro de qué se supone que debe hacer el relé en el extremo derecho de la PCB, pero si un par de terminales de tornillo es una entrada de red y el otro par es una salida conmutada por relé, no está cableado correctamente. Solo provocará un cortocircuito en la red eléctrica: Ilustración . También hay un segundo problema con ese relé; el espacio libre entre la bobina del relé y el terminal común del interruptor es innecesariamente pequeño. Si el relé se usa para cambiar la red, esto podría ser peligroso.
Gracias jms por tu apoyo. El relé no tiene función en esta placa y no lo estoy usando. Ni siquiera está montado en este diseño. Su tarea era cortocircuitar los dos terminales para que actuaran como un interruptor, pero no lo estoy usando.

Respuestas (2)

Corte ese rastro que corre desde el pin 22 y conéctelo directamente al pin del medio en el 7805 con un cable volador.

Agregue un límite de 10uF X7R o X5R directamente entre los pines 7 y 8.

Mejore el diseño la próxima vez o use un tablero de 4 capas.

Entonces, ¿debería cortar las trazas GND (pines 22 y 8) del atmega y conectarlas directamente al pin central 7805 (GND)?
Sí, puente desde el pin 8 directamente a GND en el 7805
¿Me puede explicar el propósito de esta operación, por favor? ¿El pin central de 7805 no es el mismo GND para todo el circuito? Quiero mejorar mis conocimientos de electrónica, así que me gustaría saber qué pasa si hago esto. ¡Gracias!
La corriente de los MOSFET fluye a través de la traza micro GND. El corte y el puente evitan que el suelo rebote. Esto puede no ser suficiente, pero puede ayudar. El siguiente paso es agregar resistencias de compuerta en serie de unos pocos cientos de ohmios.
¡Gracias! Ya tengo las resistencias de compuerta serie de 220R entre la salida atmega y la compuerta MOSFEST. ¿No son correctos?
@MarcusBarnet Las resistencias que ha agregado son resistencias paralelas , que se encuentran entre la puerta y el drenaje. No me malinterpreten, son una gran adición (se aseguran de que los MOSFET permanezcan apagados cuando el AVR se reinicia), pero no ayudarán contra los picos de voltaje causados ​​por una conmutación excesivamente rápida. Sus valores actuales (220 ohmios) son demasiado bajos, normalmente desea que esas resistencias paralelas tengan un valor de unos pocos miles de ohmios (por ejemplo, 10 k), especialmente si agrega las resistencias de la serie de puerta mencionadas (serie como entre el IO pasadores y las compuertas).
No los veo en el esquema... excepto Q1
Lo siento chicos, cometí un error y subí un esquema antiguo. Edité mi primer tema y lo reemplacé con los esquemas REALES. Como puede ver, estoy usando resistencias de la serie 220R. ¿Crees que están bien?
Sí, se ve bien. Incluso podrías subir más, pero probablemente no sea necesario.
Agregué un filtro de condensador principal de 1000uF a través de +12v y gnd con el conector principal. También agregué un límite de 100uF entre el pin 7 y el pin 8. Ya había un límite de 100uF entre aref y gnd, pero no estaba cerca del atmega, así que agregué otro límite directamente en las almohadillas aref y gnd. ¿Está bien o tengo que quitar la tapa vieja? He cortado la traza del pin 22 y la he conectado directamente al 7805 gnd. ¿Hay algo más que pueda hacer para mejorar el tablero?
Se solicita una tapa de cerámica: 100 uF suena un poco alto para ser de cerámica, aunque no imposible. Estos detalles sí importan. Una tapa electrolítica no funcionará tan bien en esa posición debido a la inductancia y la ESR.
Hice un error tipográfico en mi tema anterior, utilicé condensadores cerámicos de 100 nF. Desafortunadamente, la placa funcionó bien durante algunas horas y luego ¡comenzó a fallar nuevamente! :( Ahora, cada vez que lo enciendo, el atmega falla después de unos segundos. No puedo entender por qué los solenoides tan pequeños me dan tantos problemas. ¿Todavía hay algo que pueda hacer para resolver la situación? O tengo que rendirme ? :(
¿Tengo que limitar la corriente máxima para el solenoide? Dice que requiere una corriente máxima de 1.9A, pero no estoy limitando la corriente de ninguna manera. ¿O el solenoide solo pedirá 1.9A en cualquier caso? ¿Puede el solenoide agotar la corriente (más de 2 A) y quemarse? ¡Puede ser que el problema sea que necesito limitar la corriente! ¿Qué piensas sobre esto?

Es muy poco probable que algo ayude a arreglar este diseño de tablero. Este diseño de PCB tiene una base muy pobre, por lo que en algún lugar la tierra rebota y un problema técnico mata al procesador. ¿Por qué tanta gente aquí no está usando vertido en el suelo? Luego, la ruta de retorno a tierra para los relés debe separarse de la tierra para la electrónica de control de baja potencia. Debe ser diseñado en primer lugar. Luego, falta un capacitor principal, en el conector de entrada de 12 V, que es el riel de alimentación principal para todos los relés.

Hola Alí, gracias por tu respuesta. Esta es mi primera vez en el diseño de PCB, por lo que cometí varios errores. ¿Hay alguna forma de solucionar mi problema? Por ejemplo, ¿dónde puedo colocar el condensador principal? ¿A través de +12v y tierra?
¿100nF como condensador principal debería ser suficiente?
No. Yo le pondría 100uF o 2200uF o algo así. Tal vez pueda colocar cables azules gruesos para reforzar el retorno a tierra de la electrónica de potencia.
¿Y por qué tienes disipadores de calor en los FET? Los transistores deben estar operando en modo ON o OFF, y no disipan casi nada.
Y echo de menos el parámetro 35A. Claramente, las trazas (tal como están dibujadas) no pueden soportar este tipo de corriente. Puede intentar poner un cuarto de libra de soldadura encima para reforzarlos también.
No estoy usando los disipadores de calor en los FET, solo los agregué al diseño de la placa en Eagle, pero no los estoy usando de verdad. ¿Crees que tendré que agregar también condensadores de derivación en VCC y GND cerca del microcontrolador?
Solo estoy usando una batería de 12V, 35A, pero realmente no necesito todo ese amperio ya que seguramente freirán la placa. La corriente máxima que necesita la placa es de 2A para cada válvula.
Es imprescindible un bypass de 100nF en el microcontrolador. 2A por 10 válvulas sigue siendo mucho
¿Crees que el diodo D1 en la entrada de +12V es correcto? O tengo que quitarlo? Es un diodo 1N4004 que solo puede dibujar 1A. El cap PC1 es de 100uF, ¿debería reemplazarlo por el de 2200uF?
La tapa PC1 solo funciona para riel digital de 5V, 100uF definitivamente está bien. El diodo está bien, proporciona al menos algo de desacoplamiento del riel de alimentación principal. Sin un condensador extra grande en el conector de alimentación de 12 V, la inductancia de los cables de alimentación provocará caídas en el riel en cada interruptor de válvula.
Gracias, entonces necesito agregar un gran límite entre +12V y GND antes del diodo y PC1 si entendí bien.
Ali, los esquemas agregados a mi primer mensaje no eran los actualizados. Edité mi primer tema para agregar los esquemas reales.
¿Tengo que limitar la corriente máxima para el solenoide? Dice que requiere una corriente máxima de 1.9A, pero no estoy limitando la corriente de ninguna manera. ¿Puede el solenoide agotar la corriente (más de 2 A) y quemarse? ¡Puede ser que el problema sea que necesito limitar la corriente! ¿Qué piensas sobre esto?
Las bobinas de los solenoides deben manejarse de acuerdo con las especificaciones del fabricante del solenoide. Si es de 12 V, entonces debería ser de 12 V independientemente de la corriente que se tome. De lo contrario, es posible que no funcionen según sus especificaciones mecánicas.
El problema es que el fabricante dice que el solenoide es de 12VDC, 3.7 ohm y 1.9A. La corriente medida entre el mosfet y el solenoide es de 2,9 A, que es bastante más alta de lo esperado. Puede ser que este sea el problema que hace que la placa se bloquee.
Si uso un voltímetro en serie entre el mosfet y el solenoide para medir la corriente y enciendo la placa... ¡la placa funciona perfectamente! Si quitara el voltímetro, la placa no volvería a funcionar. ¡¡Esto es muy extraño!! ¿Por qué funciona correctamente solo si el voltímetro está conectado al circuito?
¿Es su DMM un DMM de rango automático?
O los cables DMM funcionan como inductancia, lo que ralentiza di/dt y provoca menos picos de conmutación y rebotes en el suelo