Problema: Obtengo errores al intentar conectarme al MicroController mediante la interfaz PDI. ¿Cómo se comporta un MicroController cuando no ha sido programado? ¿Hay un pin que cambiará para mostrarme que está bien? ¿Una especie de hardware "Hola mundo"?
Me gustaría una forma de confirmar si el MicroController ha fallado o si he hecho algo incorrecto.
Información adicional:
He diseñado y he fabricado una placa personalizada para un microcontrolador XMEGA de Atmel, ATXMega64D3 para ser exactos. Estoy utilizando el ATXMega192D3 para la creación de prototipos, pero estos chips son idénticos excepto Flash / SRAM / EEPROM.
En este punto, la fuente de alimentación es una fuente de alimentación verificada y estable de 3V3 Breadboard para todos los pines de alimentación en el MicroController y Los pines de alimentación del conector PDI. Tengo la mayoría de los Caps de desacoplamiento recomendados en AVR1012 : Lista de verificación de esquemas de XMEGA A, sección 2.1. Coloqué puentes en lugar de los inductores y amp; Las perlas especificadas, y no han instalado los condensadores electrolíticos.
Total de piezas instaladas = 6 qty 100nF Caps de desacoplamiento, 1 MicroController, 6-Pin header para PDI.
El MicroController es un TQFP de 64 patillas que soldé a mano con una ampliación de 7-14x. Luego inspeccionado para puentes de soldadura.
Vivo en el área de Seattle y ha estado lloviendo, soy nativo, así que no he encendido el calentador. Las probabilidades de daño estático son muy bajas.
El programador es un AVR Dragon, que utiliza el último (no beta) de Atmel Studio 6.0. Lo que lee correctamente el nivel de potencia de las placas pero no puede comunicarse realmente con el MicroController.
Mi teoría actual:
Revisé mi diseño y la traza del reloj PDI tiene una longitud de 15 mm y la traza de datos de la PDI tiene una longitud de 25 mm. ¿Es esta una diferencia suficiente para causar problemas de sincronización? Me gustaría una manera de confirmar esto antes de pasar por el tiempo y el dinero de tener una nueva junta directiva hecha.
Gracias por cualquier ayuda o idea.
Actualizar Todavía no funciona, pero he encontrado y solucionado los siguientes problemas.
- El MicroController se instaló 180 grados de lo que se requiere. El uC que tengo tiene 2 círculos en esquinas diagonales. Cuando lo instalé por primera vez, orienté el círculo más grande para alinearme con mi Sikscreen. Solo más tarde, cuando leí el logotipo, me di cuenta de que cuando el logotipo está orientado correctamente, el identificador del Pin # 1 (círculo más pequeño) está en la parte superior izquierda.
- Debido a que había comenzado con el Regulador de voltaje en la placa, mi fuente de alimentación estaba configurada a 5 V, que está más allá del voltaje máximo para este chip. Así que he reemplazado el MicroController con un extra que compré al mismo tiempo.
En este momento mi teoría es que el AVR Dragon es mi problema. La documentación indica que el Dragon puede conectarse a XMega con PDI, pero he encontrado varios comentarios que parecen mostrar una tasa de éxito del 30%, según el modelo de XMega.
Como un FYI con potencia aplicada, los pines sin alimentación se leen entre 50 mV y 300 mV. Una vez más, este es un uC no programado, por lo que no hay ningún código en ejecución. Esto podría ser un voltaje de fuga o podría ser la configuración predeterminada de los pines. No estoy seguro.
Solución
Usando el programador AVR JTAG ICE 3 apareció, lee la firma y se fusiona perfectamente.