Eu nunca lidei com peças com defeito devido ao digikey, mas três novos Atmel ATmega164A que recebi exibiram um comportamento extremamente estranho.
Eu o reduzi a algo relacionado ao relógio, e o sinal do relógio resultante do oscilador interno supostamente "calibrado de fábrica" tremia entre 650-700 kHz em vez do sólido 1 MHz que deveria ser. Consegui escrever no byte de calibração para chegar perto de 1 MHz (ainda com alguma instabilidade) e a maioria das coisas funciona, mas os UARTs simplesmente não se comportam corretamente, eles parecem emitir um fluxo contínuo de pulsos curtos, não importa o que você pede para eles fazerem.
Eu lidei com a versão de baixo consumo de energia deste microcontrolador antes (164P) com zero problemas e decidi deixá-lo no lugar e verificar a saída do relógio, e é um sólido de 1 MHz sem tremulação. Estou me inclinando para a conclusão de que esses chips 164A estão com defeito, mas haveria outros testes que eu pudesse tentar confirmar?
Edit: Apenas pensei em descrever o processo pelo qual estou medindo o relógio. Ativei o bit de fusível da saída do relógio e medi o pino apropriado com um analisador lógico de amostragem a uma taxa muito alta. Eu tenho um programa que escreve no registro de calibração OSCCAL
e fui capaz de tentar e errar até 1 MHz.
Edit # 2: Após uma investigação mais aprofundada, parece que o microcontrolador começa a funcionar após um determinado tamanho de programalimite. Um projeto básico com um único arquivo de origem piscando em um LED parece estar bem, mas compilar e vincular qualquer um dos meus outros arquivos (por exemplo, biblioteca UART ou qualquer outra coisa) sem sequer fazer uma chamada de função para esses métodos faz com que o microcontrolador se comporte o comportamento descrito acima. As conexões de energia estão bem e a dissociação adequada foi exercida. Não tenho tempo para depurar isso ainda mais, por isso continuamos com a versão de baixa potência. Não sei ao certo onde exatamente o problema poderia ser 1) 164A e 164P não são compatíveis com o código 2) O procedimento de programação é diferente para essas duas unidades do uC 3) As unidades estão com defeito. Estou confiante no design de nossa placa e descartaria problemas de energia. Infelizmente, não consigo escolher a resposta correta, então deixarei a pergunta como está - talvez eu Voltarei ao problema novamente no futuro. Obrigado a todos que forneceram comentários ou respostas perspicazes, eles podem ser úteis para outras pessoas com problemas de UC fora da caixa.