La configuración independiente de Atmega328p no funciona correctamente

He estado usando la placa de desarrollo arduino uno durante algunos meses y quería cambiar a una versión más pequeña de la misma. Para esto, utilicé el chip independiente Atmega328p AU usando un zócalo IC ( esquema ). El esquema no muestra condensadores de 22pf con el cristal que he usado.

Todo funcionó bien hasta el momento en que estaba usando mi mac para alimentar el circuito. Pero cuando uso el enchufe de pared para alimentar mi circuito, la configuración comienza a comportarse mal cada vez que opero (encendo o apagando los interruptores, girando las perillas del regulador del ventilador para cambiar la velocidad del ventilador, etc.) cualquier interruptor en el tablero de interruptores al que está conectado el enchufe de pared. enchufado. Toda la configuración no está relacionada con ningún otro interruptor o regulador. Simplemente está conectado al adaptador de enchufe de pared de 5v que conecté a la placa como se muestra en la imagen a continuación. Cada vez que enciendo o apago el interruptor o giro las perillas del regulador, creo que se ingieren algunos picos/sobretensiones a través del adaptador. Toda la configuración simplemente comienza a restablecerse regularmente o la mayoría de las veces se congela por completo. Sin embargo, el problema no aparece en la placa de desarrollo Uno conectada al mismo adaptador usando 5v y pin GND. No entiendo lo que está haciendo la diferencia entre los dos. ¿Es necesario algún desacoplamiento o aislamiento?

Cosas que he probado:

  1. Cambiando el cristal
  2. Cambiando el capacitor de 22pF por uno de 18pF.
  3. Cargué el código de parpadeo tanto en la placa Arduino como en el chip, aún persiste el mismo problema. El código de parpadeo y mi código funcionan bien con la placa Arduino, pero en el chip independiente da el mismo comportamiento errático (el LED permanece encendido, es decir, el código se congela).
  4. Recableó toda la configuración varias veces.
  5. Intenté mucho en los foros de arduino.

Las siguientes son algunas fotos de las configuraciones

Configuración

En la parte inferior izquierda de esta imagen, los dos cables que sostengo muestran la entrada de alimentación de 5 V al circuito de la placa de prueba. Tenga en cuenta que he dado la entrada al pin de 5v del chip y no a vcc (porque funciona bien sin pasar por el regulador de voltaje).

Las perillas del regulador de velocidad del ventilador no están conectadas al arduino. El único enlace es el adaptador, supongo.

Esquema http://files.wooler.me/buildatmega/ATMEGA328P-AU-Wire_guide(2).png

Lo más probable es que la fuente de alimentación de verruga de pared que está utilizando sea del tipo de doble aislamiento sin conexión a tierra. Para la supresión de EMI, hay condensadores dentro de la fuente de alimentación que provocan un ligero acoplamiento entre la red eléctrica y la salida como efecto secundario. En consecuencia, su circuito flota a un voltaje relativamente alto, y cada vez que toca algún componente, una corriente fluirá a través de usted hacia tierra. Estas corrientes perdidas luego causan estragos en su circuito
@jms ¿Por qué y cómo la placa arduino no reacciona a esto? ¿Y qué rectificaciones puedo hacer en mi circuito para salvaguardarlo de estos picos? (La batería no es factible en el caso que estoy usando)
Agregue un límite de 1000uF en la entrada de energía. Agregue un límite de desacoplamiento de 0.1uF en la MCU. ¿Estás usando el ADC? Intente desacoplar el vcc/Gnd analógico y digital como se sugiere en la hoja de datos. El cristal y las tapas de la placa de prueba son muy propensos a problemas de capacitiva/plano de tierra. ¿Has pensado en hacer o comprar un pcb Bare Bones Arduino? Todavía podría usar un zócalo, pero la placa de circuito impreso sería mejor para la configuración de cristal.
Además, utilice cables cortos. Los cables actuales de 20 cm agregan mucha inductancia a todo, y son especialmente inadecuados para conectar el cristal al AVR.
@Passerby ¿Crees que el esquema que proporcioné funcionará con el PCB básico? Además, no puedo enchufar un zócalo en la placa de pruebas ya que no quedará espacio en la placa de pruebas. Además, el pu/ DIP no funciona. Como dijiste que usar el capacitor de 1000uF resolverá el problema, ya lo probé. Todos los pares Vcc y GND también están conectados a un capacitor de desacoplamiento de 0.1uF, pero se dice que debe conectarse lo más cerca posible de Vcc y los pines GND en el chip, pero eso no es posible. Además, he notado un componente VT-47 24v en la placa arduino. ¿Eso resolverá el problema?
Los cables largos desde el chip hasta el cristal y viceversa (¡señal muy débil!) no me dan buenas vibraciones. ¿No puedes enchufar el chip en la placa de prueba y conectar al menos el cristal a las tapas más directamente?
@WoutervanOoijen Como le respondí a Passerby arriba, probé el mismo circuito con el pu/DIP IC de UNO. Además, llevar el IC a la protoboard no dejará espacio.
Sí, no hay nada en su esquema que no funcione en una placa de circuito impreso Bare Bones. Todo lo que es, es una pequeña ruptura para la MCU, pero con el cristal y las tapas colocadas justo al lado. Puede usar encabezados para poder usar una placa de prueba si lo desea.
Consulte thecustomgeek.com/kits/one-square-inch-of-goodness-build-it o JeeLabs JeeNode SMD, que son pequeños desgloses para TQFP atmega. Ambos tienen tableros desnudos o completos a la venta. Para la creación de prototipos, considere usar la versión DIP en la placa de prueba con el cristal y las tapas cerca, y tal vez una segunda placa de prueba o más grande, luego haga la versión final con el TQFP en una placa de circuito impreso.
@Passerby, volveré a intentarlo con el DIP con el circuito más corto posible y me pondré en contacto contigo.

Respuestas (2)

Un resumen de algunos de los comentarios realizados, ya que estoy de acuerdo con todos ellos:

  1. No utilice cables largos para su cristal. El cristal está destinado a producir una forma de onda que es crucial para la capacidad del microcontrolador de generar una señal de reloj interna estable. Este reloj impulsa toda la lógica dentro del chip, una desviación suficiente aquí puede conducir a un comportamiento muy extraño e indefinido. La resistencia parásita y la capacitancia en estos cables pueden degradar en gran medida la forma de onda del cristal.

  2. Agregue algunos condensadores más grandes a sus líneas de suministro de 5V. Comience con algo del orden de 10-100 uF en la entrada de la placa de pruebas y luego 0,1 uF más cerca del microcontrolador. Parece que en uno de sus comentarios ya ha intentado alimentar a través de un regulador lineal de 5 V con una entrada de 12 V (¿DC, con suerte?) Con los condensadores de acoplamiento correctos en su lugar ... De hecho, me quedaría con eso incluso si no No marca la diferencia, prefiero confiar en eso que en el suministro de pared de 5V.

He agregado la resistencia en el pin 29. (Cerca de la parte inferior derecha de la imagen detrás del cable rojo). Además, actualmente estoy condensando el circuito quitando tantos cables como sea posible. Actualizaré la pregunta a medida que salgan los resultados.
@AyushPahwa, gracias por señalar la resistencia de reinicio, fue difícil de ver :)

El Uno tiene reguladores lineales integrados que suavizan cualquier ondulación de alto voltaje no deseada presente en los adaptadores de enchufe de pared. Parece que sus adaptadores tienen una ondulación de alto voltaje en su salida y esto está causando reinicios aleatorios. Intente alimentar su configuración con una batería y vea qué sucede.

Intenté alimentar con un suministro regulado lineal de 5v a través de un suministro no regulado de 12v, usando un capacitor de 1000uF en la entrada, un capacitor de 470uF en la salida con un capacitor cerámico de 0.1uF tanto en la entrada como en la salida. Como ya dije, probé la alimentación con USB a través de mi computadora portátil, así que no tengo dudas de que funcionará con la batería. Pero como estoy trabajando en un producto de automatización del hogar, no es factible usar una batería.
También tenga en cuenta que cuando cargo mi computadora portátil, mientras enciendo el circuito a través del puerto USB de la computadora portátil, se observa el mismo comportamiento errático. He proporcionado el esquema del chip que estoy usando. Solo quiero saber qué es lo que marca la diferencia entre la placa de desarrollo de UNO y la configuración.
@Ayush si el problema es el ruido acoplado a CA, es probable que se deba a que las placas de prueba no son la mejor solución para los cristales. Por qué lo tiene en los cables en lugar de minimizar la distancia entre las partes (al tener el chip conectado directamente a la placa de prueba) podría ser una fuente de problemas. A ver si eso ayuda.
Esencialmente, ese 1/2 pie de cable entre el cristal y la MCU es el mayor problema que veo.