Nunca he tratado con partes defectuosas del estrecho de digikey, pero 3 nuevos Atmel ATmega164A que he recibido han sido exhibiendo muy extraño comportamiento.
Me condujo hacia algo que ver con el reloj y resultó que el resultado de la señal de reloj de la supuesta "calibrado de fábrica" oscilador interno fue el temblor entre 650-700 kHz en lugar de los sólidos de 1 MHz se supone que debe ser. Yo era capaz de escribir en la calibración de bytes para obtener esta muy cerca de la 1 MHz (todavía con algunos de jitter) y la mayoría de las cosas de trabajo pero las UARTs simplemente no se comportan correctamente, que parece salida de un flujo continuo de pulsos cortos no importa lo que usted les pida que hagan.
He tratado con la versión de baja potencia de este microcontrolador antes (164P) con cero problemas y decidió dejar en su lugar y comprobar la salida de reloj en la que, por su sólida de 1 MHz sin fluctuación. Me estoy inclinando hacia la conclusión de que estos 164A chips defectuosos, pero ¿hay otras pruebas de que pudiera tratar de confirmar eso?
Edit: Sólo pensé en describir el proceso por el cual estoy midiendo el reloj. He habilitado la salida de reloj fuse bits y se mide el pin apropiado con una lógica de analizadores de muestreo a una tasa muy alta. Tengo un programa que se escribe en el registro de calibración OSCCAL
y he sido capaz de ensayo y error a mi manera a 1 MHz.
Edición #2: Después de más investigación, parece que el microcontrolador comienza a actuar después de un cierto tamaño del programa umbral. Un escueto proyecto con un solo archivo de origen de parpadear un LED parece estar bien, pero compilar y vincular en cualquiera de mis otros ficheros (UART de la biblioteca o lo que sea) sin ni siquiera hacer una llamada de función a estos métodos hace que el microcontrolador se comportan en el comportamiento descrito anteriormente. Las conexiones eléctricas están bien y adecuada disociación ha sido ejercido. No tengo tiempo para depurar esta más en el momento, así que hemos salido adelante con la versión de baja potencia en su lugar. Estoy seguro de dónde está exactamente el problema podría ser 1) 164A y 164P no son compatible con el código 2) procedimiento de Programación es diferente para estos dos uC 3) Unidades son defectuosos. Tengo confianza en nuestro diseño de la placa y podría descartar problemas de alimentación. Por desgracia, realmente no puedo elegir una respuesta correcta, así que voy a dejar esta pregunta como es - tal vez voy a volver a el problema de nuevo en el futuro. Gracias a todos los que proporcionaron valiosos comentarios o respuestas, que pueden servir de utilidad a alguien más con la uC problemas fuera de la caja.