¿Cuál es el conjunto mínimo de piezas para un circuito con este microcontrolador AVR?

Mi Arduino Uno tiene un microcontrolador ATMEGA328P-PU y muchas otras cosas en el tablero. Me gustaría programar el chip sin el software Arduino y solo el mínimo de otros componentes. Eventualmente quiero crear cosas sin el costo de Arduino, y quiero aprender sobre las otras partes en el tablero y agregarlas según sea necesario. Me siento cómodo con C y gcc, por lo que probablemente pueda descifrar la parte del software. Pero, ¿qué, en todo caso, además de estos dos productos a continuación, necesito tener en la placa de prueba con el microcontrolador?

Microcontrolador programador Atmel

Puede responder esta pregunta usted mismo buscando y leyendo la hoja de datos ATMEGA328P-PU.
Tal vez cuando sepa más. La hoja de datos tiene 550 páginas, soy un principiante y una lectura rápida no me reveló nada. Hago mucho autoaprendizaje, pero aprecio sitios como este donde puedo obtener algunas respuestas de humanos de vez en cuando. :)
@PhilFrost Ese es el peor consejo que podrías darle a un principiante.
@capcom El primer resultado de Google para "sitio: atmel.com aplicación típica atmega" encuentra consideraciones de diseño de hardware AVR . Esta nota de aplicación no solo tiene un circuito mínimo para que la MCU funcione, sino que también explica con gran detalle cómo conectar un puerto de programación, seleccionar osciladores, lidiar con los peligros de ESD, fallas potenciales en la línea de reinicio, conectar JTAG, PCB diseño, y básicamente todo lo que necesita un principiante. Encontrar esta información es la habilidad más útil que puede tener un principiante.
@PhilFrost Si bien estoy de acuerdo con usted en que encontrar información es probablemente la habilidad más esencial que puede tener un principiante, especialmente con la gran cantidad de información disponible gracias a Internet, abrir una hoja de datos por primera vez puede ser un poco intimidante. Una vez que alguien con más experiencia responde a su pregunta y les dice en qué parte de la hoja de datos encontraron la respuesta, el principiante puede volver a analizarla por sí mismo y comenzar a ganar algo de confianza. Además, el enlace que proporcionó no es una hoja de datos. Le dijiste que leyera la "hoja de datos de ATMEGA328P-PU", que no realizara una búsqueda en Google para obtener una respuesta.
OK, voy a reformular. Rob, debes saber que cualquier fabricante de un dispositivo no trivial publicará documentación para responder exactamente a esta pregunta. Los fabricantes tienen un claro interés en facilitarte el uso de su producto. Hojear la hoja de datos es la manera de comenzar. Para cosas complejas como los microcontroladores, puede haber una nota de aplicación separada. "aplicación típica" son las palabras mágicas que necesita usar en sus términos de búsqueda. No es que sea malo pedir ayuda, pero es bueno saber pescar.

Respuestas (3)

Todo lo que necesita, además del programador y el chip, es un par de tapas de desacoplamiento y alguna forma de conectar las señales de programación a la placa de prueba.

Asi que:

  • 1 tapa electrolítica grande (por ejemplo,> 100 uF) Tal vez pueda prescindir de esto si su fuente es agradable y silenciosa (por ejemplo, batería)
  • 1 cerámica de 100 nF en los pines de alimentación del micro
  • 1 resistencia de 10 kΩ para conectar desde el pin de reinicio a Vcc para mantener el micro fuera del reinicio.
  • Un poco de cable de puente para conectar los nodos en su protoboard (puede comprar cables de puente listos para usar, pero uso un rollo de 22 AWG y corté el mío, mucho más barato si hace esto mucho)
  • Un encabezado para enchufar el cable de su programador. De acuerdo con la guía del usuario , parece que necesita un encabezado de paso de 2,54 mm de 2x3 pines.

Opcional

  • Un botón para conectar su línea de reinicio a tierra si desea reiniciar físicamente el chip (no uso AVR, pero estoy 99.9% seguro de que el programador puede hacer esto desde el IDE)
  • Un cristal para usar en lugar del oscilador interno.
  • Condensadores de 2 * 22pF para el cristal (coloque de cualquier lado a tierra)
  • Componentes pasivos, LEDs, sensores, etc. para poder hacer algo útil con el código que escribes ;-)

Aparte del encabezado (que es de 10 pines con algunos pines sin usar; puede usar las etiquetas como guía para sus conexiones, los nombres son los mismos), este esquema es el más simple que pude encontrar con un Google rápido:

Esquema simple de AVR

Curiosamente, acabo de escribir un blog sobre cómo hacer más o menos lo mismo con un microcontrolador PIC (puede valer la pena echarle un vistazo, los dos son muy similares)

Si estamos hablando de un mínimo absoluto, no necesita la resistencia pullup en la línea de reinicio: el AVR tiene un pullup interno. Y si estamos hablando de aconsejable, también debe incluir un límite en la línea de reinicio; consulte esta nota de la aplicación: atmel.com/images/doc2521.pdf . Además, el encabezado ISP de 2x3 pines que mencionas es mucho más común que el 2x5 que se muestra en el esquema.
¡Gracias! Si el límite de 100 nF es para los pines de alimentación, ¿para qué es el límite de >100 µF?
@RobN, el condensador fornido es para filtrar/suavizar el ruido de la fuente de alimentación
@NickJohnson - gracias por los puntos más finos - no dude en editar mi respuesta si lo desea (como mencioné, no he usado un AVR, mi pequeño micro de elección es el PIC, o de hecho un ARM como el STM32F10xxx más a menudo hoy en día)
Si usa el marco Arduino, también necesita un capacitor de 100 nF entre la señal DTR del adaptador de serie a USB y la línea de reinicio; de lo contrario, se verá obligado a soldar a mano un adaptador platina en la placa perforada con un capacitor 0402 porque eso es el único paquete en el que tiene 100nF disponible, y nadie haría una cosa tan tonta.

Solo publico esto como una respuesta para ocultar las URL feas. Sin duda, debería echar un vistazo a Atmel Appnote AVR042: Consideraciones de diseño de hardware AVR .

+1 para una excelente referencia, estaba buscando algo como esto para complementar el consejo de configuración de micro pequeño "general". @RobN: debe leer detenidamente este documento.

También encontré este enlace útil de la gente de Arduino: https://www.arduino.cc/en/Main/Standalone Explica cómo pasar de un chip que acaba de obtener de DigiKey (o donde sea) para cargar el gestor de arranque y el componentes mínimos de soporte.