Paso 2: ATXmega programación diseño
El diseño de
Mi diseño principal para el tablero vino de sugerencias de Atmel AVR042: consideraciones de Hardware guía así como echando un vistazo a diseños de referencia diferentes. La Junta acepta corriente continua y tiene un regulador incorporado para 3.3V limpia energía. Decidí usar el oscilador interno de 32MHz y sólo incluye un cristal de reloj de 32kHz para el manejo de reloj de tiempo real. También dispone de soporte para USART a USB mediante un chip FTDI en un USB BUB de Moderndevice.com por $14, por lo que los pines están en el tablero para. Soy un gran fan de indicación visual de la acción, por lo que he incluido un verde 3mm LED para indicar encendido y rojo 3mm LED conectados al botón de reset para verificar un hard reset del chip.
Mi objetivo principal, sin embargo, era producir un tablero que permite el acceso a la mayoría de los terminales sin tener que configurar los condensadores de desacoplamiento muchos necesarios para que cada nuevo chip a programar. Como se mencionó, la interfaz de programación es PDI porque no soporta SPI y no tengo un depurador/programador JTAG (está en mi lista de deseos) por lo que no hay soporte JTAG en el tablero.
Incluyen a continuación son fotos de lo último en diseño junto con Eagle CAD PDF y archivos de la Junta. También he creado un panel de fondo, tapa de espejo y serigrafía capas a 300dpi (posibilidad de impresión a 1200dpi) en formato PDF. Esto es lo que uso para imprimir en papel de transferencia de tóner o transparencia, por lo que he incluido como un servicio. Tómese un minuto para mirar la disposición de la Junta.
Idiomas de diseño de Hardware
Si usted ha tomado un minuto para mirar la Junta probablemente ha notado que puede ser roto en pequeños trozos que me gusta llamar a modismos de diseño Hardware (o patrones). Estos son pequeños circuitos que haces una y otra vez para los diseños de cada uno (o muchos). Yo he repartido todo el diseño en los siguientes idiomas:
- Energía
- RESET
- La disociación
- USB
- Cristal
- Programación
- Tomas de corriente
Energía
El subsistema de potencia es el componente Aproveche al máximo en mis consejos porque he encontrado tirando muchos mA de USB puede ocasionar graves problemas (una vez quemé un concentrador USB). Además de tener su propio subsistema de potencia le permite sólo puede conectarlo a una fuente DC de 5V a ~ 20V y ejecutar independiente mientras se programa. Una fuente externa de energía es necesaria si usas el AVRISP mkII no oferta la junta con energía como algunos de los programadores por ahí.
El diseño básico del componente de potencia es simple y directa. Un DC jack acepta un enchufe que entrega el poder con un capacitor polarizado bastante grande a través de los rieles positivos y negativos. Ejecutar (+) a un LDO regulador de 3.3V fijo seguido de dos más los condensadores de filtrado a 1uF y 0.1uF. No necesitan ser polarizado como indica el esquema.
El tren final (+) fuera el condensador pasado es un 3.3V muy estable y regulada. Puede utilizar componentes por-agujero sobre los componentes SMD que he usado y que es totalmente hasta usted. Utilizo lo que tengo en mano la mayor parte. También he utilizado un inductor 27uH en el puerto AVCC para hacer el poder analógico una aspiradora pequeña.
También he incluido dos otros componentes de la alimentación: un cabezal doble para la exportación de energía y un jumper de 3 pins utiliza para indicar si el poder viene de la toma de DC o desde el USB. Es tu opción. Imagen de abajo.
RESET
Yo casi siempre incluyen un circuito de reset en mis diseños. Es práctico. Este patrón de hardware consiste en lo siguiente:
- Tire hacia arriba! RESTABLECER a Vcc
- Conecte un lado del interruptor táctil a la! RESTABLECER con el otro lado conectado a un par de resistencia/LED va a tierra.
- Correa a 0.1uF condensador entre ambos lados del interruptor (es decir ambos pasadores usaste).
Nota: Tenga cuidado con la opción de condensador de como desactiva el uso del debugWIRE, si lo usas. Por otra parte, si lo usas, deberás añadir su propio conector al diseño.
Pulse el botón de reset, el rojo LED se enciende y suelte. El chip ATXmega es hardware reset y se reinicia. Ver la imagen de abajo.
La disociación
En diseños analógicos, disociación (o by-pass aquí) se utilizan para señales de alta frecuencia de la desviación en la línea a tierra. Esto se encuentra en la entrada de Vcc analógica. En diseños digitales, el objetivo es diferente. El amperaje de la MCU y dispositivos a bordo es un promedio y cuando muchos pernos están en uso y funcionamiento, la corriente puede ser cientos de mA o más. Los condensadores colocaron en el Vcc y tierra ley como mini depósitos de carga que puede proporcionar un puerto la corriente que necesita cuando la alimentación es a distancia. Es óptimo para colocar estos condensadores como increíblemente cerca del puerto son servicios como sea posible.
En mi diseño, encontrarás los condensadores de desacoplamiento en el chip de la compañía (es decir, entre las tomas de doble fila esta inclusión es importante en el ATXmega, AVR32, y brazo niveles porque muchos de estos chips tienen muchas conexiones de Vcc y AVcc que deben todos ser desconectadas. Es un dolor que hacerlo manualmente... simplemente no lo hacen. En la Junta de programación y hacer con ella.
VS.
A menudo, me gustaria tener una salida para la salida de depuración. Un LCD puede ser demasiado restrictivo para obtener muchos datos de depuración de su firmware. Por lo tanto, suelen incluir un encabezado de ángulo recto de 6 patillas que interfaces al módulo USB BUB de los dispositivos modernos. Le permite escribir simplemente a la USART del RS232 y se pasa por el puerto USB mediante un chip FTDI. En el PC, luego utilizar AVR Terminal para visualizar mis datos de depuración. Esto es inestimable (para mí al menos).
Usted puede elegir eliminar este si no tienes la capacidad USB, aunque por $14 el BUB USB es una gran compra. Imagen de abajo.
Cristal
Contrario el diseño de hardware encontrado en muchos diseños AVR, 16 MHz o 20 MHz cristal externo no se utiliza realmente para el reloj del sistema en Xmegas. Yo uso el oscilador interno de 32MHz y sólo incluye un cristal de reloj de 32kHz para el uso en modo de reloj de tiempo real. No es necesario utilizar, pero es en el tablero si necesita funcionalidad timekeeping. Una vez más, se ha capacitiva en paralelo y utiliza dos pequeños (generalmente 18pF a 22pF) capacitores a tierra.
Como beneficio adicional, el PLL puede utilizar el cristal externo de 32kHz para la compensación de tiempo de ejecución de la temperatura y deriva, mejorando aún más la precisión del oscilador de 32MHz.
Imagen de abajo.
Programación
Ahora, ¿qué sería una tabla de programación sin una interfaz de programación? Aquí usamos un simple encabezado de perno masculino de 2 x 3; la misma que utiliza para la programación de SPI. Busque a continuación el pinout de la interfaz de la PDI. Simplemente proporcionan energía y hacer que las dos conexiones apropiadas de la PDI y llamar un día. PDI elimina la necesidad de resistencias de aislamiento de SPI.
Tomas de corriente
Por lo tanto, a la Junta de programación/devel ATXmega, lo encontrará erizado con encabezados de zócalo. Hay cuatro (2 en paralelo) doble fila 2 x 8 mujer encabezados aceptar las cabeceras masculinas 2 x 8 de la tarjeta de portador de Xmega. También he intentado poner en evidencia como muchos pernos MCU para encabezados de acceso en el desarrollo y estos pueden encontrarse en los jefes femeninos de una hilera alrededor de los bordes exteriores. Estos están marcados con una capa de seda de la pantalla indicando qué pin es traído hacia fuera para que encaje.